Print this page
NEX-2846 Enable Automatic/Intelligent Hot Sparing capability
Reviewed by: Jeffry Molanus <jeffry.molanus@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
Reviewed by: Saso Kiselkov <saso.kiselkov@nexenta.com>
re #13388 rb4382 fmd_api.h uses bool which is a C99/C++ keyword
*** 19,28 ****
--- 19,29 ----
* CDDL HEADER END
*/
/*
* Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2016 Nexenta Systems, Inc. All rights reserved.
*/
#ifndef _FMD_API_H
#define _FMD_API_H
*** 89,99 ****
typedef struct fmd_stat {
char fmds_name[32]; /* statistic name */
uint_t fmds_type; /* statistic type (see above) */
char fmds_desc[64]; /* statistic description */
union {
! int bool; /* FMD_TYPE_BOOL */
int32_t i32; /* FMD_TYPE_INT32 */
uint32_t ui32; /* FMD_TYPE_UINT32 */
int64_t i64; /* FMD_TYPE_INT64 */
uint64_t ui64; /* FMD_TYPE_UINT64, TIME, SIZE */
char *str; /* FMD_TYPE_STRING */
--- 90,100 ----
typedef struct fmd_stat {
char fmds_name[32]; /* statistic name */
uint_t fmds_type; /* statistic type (see above) */
char fmds_desc[64]; /* statistic description */
union {
! int b; /* FMD_TYPE_BOOL */
int32_t i32; /* FMD_TYPE_INT32 */
uint32_t ui32; /* FMD_TYPE_UINT32 */
int64_t i64; /* FMD_TYPE_INT64 */
uint64_t ui64; /* FMD_TYPE_UINT64, TIME, SIZE */
char *str; /* FMD_TYPE_STRING */
*** 135,144 ****
--- 136,154 ----
extern void fmd_hdl_opendict(fmd_hdl_t *, const char *);
extern struct topo_hdl *fmd_hdl_topo_hold(fmd_hdl_t *, int);
extern void fmd_hdl_topo_rele(fmd_hdl_t *, struct topo_hdl *);
+ typedef struct fmd_hdl_topo_node_info {
+ const char *device;
+ nvlist_t *fru;
+ nvlist_t *resource;
+ } fmd_hdl_topo_node_info_t;
+
+ extern fmd_hdl_topo_node_info_t *fmd_hdl_topo_node_get_by_devid(
+ fmd_hdl_t *hdl, char *device);
+
#define FMD_NOSLEEP 0x0 /* do not sleep or retry on failure */
#define FMD_SLEEP 0x1 /* sleep or retry if alloc fails */
extern void *fmd_hdl_alloc(fmd_hdl_t *, size_t, int);
extern void *fmd_hdl_zalloc(fmd_hdl_t *, size_t, int);