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,10 +19,11 @@
  * 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,11 +90,11 @@
 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 */
+                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,10 +136,19 @@
 
 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);