Add linux compatibility
[zfs.git] / module / zfs / include / sys / fm / protocol.h
index 767fb07..1ee2212 100644 (file)
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 #ifndef        _SYS_FM_PROTOCOL_H
@@ -44,11 +43,13 @@ extern "C" {
 #define        FM_CLASS                        "class"
 #define        FM_VERSION                      "version"
 
-/* FM event class values */
+/* FM protocol category 1 class names */
 #define        FM_EREPORT_CLASS                "ereport"
 #define        FM_FAULT_CLASS                  "fault"
+#define        FM_DEFECT_CLASS                 "defect"
 #define        FM_RSRC_CLASS                   "resource"
 #define        FM_LIST_EVENT                   "list"
+#define        FM_IREPORT_CLASS                "ireport"
 
 /* FM list.* event class values */
 #define        FM_LIST_SUSPECT_CLASS           FM_LIST_EVENT ".suspect"
@@ -68,10 +69,17 @@ extern "C" {
 /* ereport payload member names */
 #define        FM_EREPORT_DETECTOR             "detector"
 #define        FM_EREPORT_ENA                  "ena"
+#define        FM_EREPORT_TIME                 "time"
 
 /* list.* event payload member names */
 #define        FM_LIST_EVENT_SIZE              "list-sz"
 
+/* ireport.* event payload member names */
+#define        FM_IREPORT_DETECTOR             "detector"
+#define        FM_IREPORT_UUID                 "uuid"
+#define        FM_IREPORT_PRIORITY             "pri"
+#define        FM_IREPORT_ATTRIBUTES           "attr"
+
 /*
  * list.suspect, isolated, updated, repaired and resolved
  * versions/payload member names.
@@ -83,6 +91,7 @@ extern "C" {
 #define        FM_SUSPECT_FAULT_LIST           "fault-list"
 #define        FM_SUSPECT_FAULT_SZ             "fault-list-sz"
 #define        FM_SUSPECT_FAULT_STATUS         "fault-status"
+#define        FM_SUSPECT_INJECTED             "__injected"
 #define        FM_SUSPECT_MESSAGE              "message"
 #define        FM_SUSPECT_RETIRE               "retire"
 #define        FM_SUSPECT_RESPONSE             "response"
@@ -122,6 +131,7 @@ extern "C" {
 #define        FM_RSRC_ASRU_REPAIRED           "repaired"
 #define        FM_RSRC_ASRU_REPLACED           "replaced"
 #define        FM_RSRC_ASRU_ACQUITTED          "acquitted"
+#define        FM_RSRC_ASRU_RESOLVED           "resolved"
 #define        FM_RSRC_ASRU_UNUSABLE           "unusable"
 #define        FM_RSRC_ASRU_EVENT              "event"
 
@@ -170,6 +180,7 @@ extern "C" {
 
 /* FMRI authority-type member names */
 #define        FM_FMRI_AUTH_CHASSIS            "chassis-id"
+#define        FM_FMRI_AUTH_PRODUCT_SN         "product-sn"
 #define        FM_FMRI_AUTH_PRODUCT            "product-id"
 #define        FM_FMRI_AUTH_DOMAIN             "domain-id"
 #define        FM_FMRI_AUTH_SERVER             "server-id"
@@ -189,6 +200,7 @@ extern "C" {
 #define        FM_FMRI_SCHEME_PKG              "pkg"
 #define        FM_FMRI_SCHEME_LEGACY           "legacy-hc"
 #define        FM_FMRI_SCHEME_ZFS              "zfs"
+#define        FM_FMRI_SCHEME_SW               "sw"
 
 /* Scheme versions */
 #define        FMD_SCHEME_VERSION0             0
@@ -212,6 +224,8 @@ extern "C" {
 #define        FM_SVC_SCHEME_VERSION           SVC_SCHEME_VERSION0
 #define        ZFS_SCHEME_VERSION0             0
 #define        FM_ZFS_SCHEME_VERSION           ZFS_SCHEME_VERSION0
+#define        SW_SCHEME_VERSION0              0
+#define        FM_SW_SCHEME_VERSION            SW_SCHEME_VERSION0
 
 /* hc scheme member names */
 #define        FM_FMRI_HC_SERIAL_ID            "serial"
@@ -243,6 +257,7 @@ extern "C" {
 
 /* dev scheme member names */
 #define        FM_FMRI_DEV_ID                  "devid"
+#define        FM_FMRI_DEV_TGTPTLUN0           "target-port-l0id"
 #define        FM_FMRI_DEV_PATH                "device-path"
 
 /* pkg scheme member names */
@@ -295,15 +310,31 @@ extern "C" {
 #define        FM_FMRI_ZFS_POOL                "pool"
 #define        FM_FMRI_ZFS_VDEV                "vdev"
 
+/* sw scheme member names - extra indentation for members of an nvlist */
+#define        FM_FMRI_SW_OBJ                  "object"
+#define        FM_FMRI_SW_OBJ_PATH                     "path"
+#define        FM_FMRI_SW_OBJ_ROOT                     "root"
+#define        FM_FMRI_SW_OBJ_PKG                      "pkg"
+#define        FM_FMRI_SW_SITE                 "site"
+#define        FM_FMRI_SW_SITE_TOKEN                   "token"
+#define        FM_FMRI_SW_SITE_MODULE                  "module"
+#define        FM_FMRI_SW_SITE_FILE                    "file"
+#define        FM_FMRI_SW_SITE_LINE                    "line"
+#define        FM_FMRI_SW_SITE_FUNC                    "func"
+#define        FM_FMRI_SW_CTXT                 "context"
+#define        FM_FMRI_SW_CTXT_ORIGIN                  "origin"
+#define        FM_FMRI_SW_CTXT_EXECNAME                "execname"
+#define        FM_FMRI_SW_CTXT_PID                     "pid"
+#define        FM_FMRI_SW_CTXT_ZONE                    "zone"
+#define        FM_FMRI_SW_CTXT_CTID                    "ctid"
+#define        FM_FMRI_SW_CTXT_STACK                   "stack"
+#define        FM_NVA_FREE             0       /* free allocator on nvlist_destroy */
+#define        FM_NVA_RETAIN           1       /* keep allocator on nvlist_destroy */
+
 extern nv_alloc_t *fm_nva_xcreate(char *, size_t);
 extern void fm_nva_xdestroy(nv_alloc_t *);
-
 extern nvlist_t *fm_nvlist_create(nv_alloc_t *);
 extern void fm_nvlist_destroy(nvlist_t *, int);
-
-#define        FM_NVA_FREE     0               /* free allocator on nvlist_destroy */
-#define        FM_NVA_RETAIN   1               /* keep allocator on nvlist_destroy */
-
 extern void fm_ereport_set(nvlist_t *, int, const char *, uint64_t,
     const nvlist_t *, ...);
 extern void fm_payload_set(nvlist_t *, ...);
@@ -311,15 +342,15 @@ extern int i_fm_payload_set(nvlist_t *, const char *, va_list);
 extern void fm_fmri_hc_set(nvlist_t *, int, const nvlist_t *, nvlist_t *,
     int, ...);
 extern void fm_fmri_dev_set(nvlist_t *, int, const nvlist_t *, const char *,
-    const char *);
+    const char *, const char *);
 extern void fm_fmri_de_set(nvlist_t *, int, const nvlist_t *, const char *);
 extern void fm_fmri_cpu_set(nvlist_t *, int, const nvlist_t *, uint32_t,
     uint8_t *, const char *);
 extern void fm_fmri_mem_set(nvlist_t *, int, const nvlist_t *, const char *,
     const char *, uint64_t);
-extern void fm_authority_set(nvlist_t *, int, const char *, const char *,
-    const char *, const char *);
 extern void fm_fmri_zfs_set(nvlist_t *, int, uint64_t, uint64_t);
+extern void fm_fmri_hc_create(nvlist_t *, int, const nvlist_t *, nvlist_t *,
+    nvlist_t *, int, ...);
 
 extern uint64_t fm_ena_increment(uint64_t);
 extern uint64_t fm_ena_generate(uint64_t, uchar_t);