bmake-ify mr_sas
[unleashed.git] / usr / src / uts / common / io / cpqary3 / cpqary3_noe.h
blob447248c648becd23601a344319ae8e2e010eb46a
1 /*
2 * This file and its contents are supplied under the terms of the
3 * Common Development and Distribution License ("CDDL"), version 1.0.
4 * You may only use this file in accordance with the terms of version
5 * 1.0 of the CDDL.
7 * A full copy of the text of the CDDL should have accompanied this
8 * source. A copy of the CDDL is also available via the Internet at
9 * http://www.illumos.org/license/CDDL.
13 * Copyright (C) 2013 Hewlett-Packard Development Company, L.P.
16 #ifndef _CPQARY3_NOE_H
17 #define _CPQARY3_NOE_H
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
24 * Information from CPQARY3 on Notification of Events
25 * View Hardware API for more information
28 #define CISS_NOE_CDB_LEN 0x0D
29 #define CISS_CANCEL_NOE_CDB_LEN 0x10
30 #define BMIC_NOTIFY_ON_EVENT 0xD0
31 #define BMIC_CANCEL_NOTIFY_ON_EVENT 0xD1
32 #define NOE_BUFFER_LENGTH 0x200
34 #pragma pack(1)
36 typedef struct Noe_Buffer {
37 uint32_t relative_controller_time;
38 uint16_t event_class_code;
39 uint16_t event_subclass_code;
40 uint16_t event_detail_code;
41 uint8_t event_specific_data[64];
42 uint8_t ascii_message[80];
43 uint32_t event_tag;
44 uint16_t month_day;
45 uint16_t year;
46 uint32_t hms;
47 uint16_t pre_powerup_time;
48 uint8_t device_address[8];
49 uint8_t reserved[336];
50 } NoeBuffer;
52 #pragma pack()
54 #define CPQARY3_NOE_INIT 0
55 #define CPQARY3_NOE_RESUBMIT 1
56 #define CPQARY3_NOE_FAILED 3
59 * This hierarchy is described in the firmware spec.
60 * It provides various categories of reports to provide for
61 * notification to host regarding asynchronous phenomena.
63 #define CLASS_PROTOCOL 0 /* Event Notifier Protocol */
64 #define SUB_CLASS_NON_EVENT 0
65 #define DETAIL_DISABLED 1
66 #define SUB_CLASS_PROTOCOL_ERR 1
67 #define DETAIL_EVENT_Q_OVERFLOW 0
69 #define CLASS_HOT_PLUG 1 /* All Hot-Plug Operations */
70 #define SUB_CLASS_HP_CHANGE 0
73 * New events for HP Smart Array controllers - FW revision greater than 5.14
74 * or later
77 /* Storage Box HotPlug or Cabling Change */
78 #define SUB_CLASS_SB_HP_CHANGE 6
79 #define DETAIL_STORAGEBOX_REMOVED 0 /* Storage box Removed */
80 #define DETAIL_STORAGEBOX_ADDED 1 /* Storage Box Added */
81 /* Storage Box Redundant I/O Module Removed */
82 #define DETAIL_PATH_REMOVED 2
83 /* Storage Box Redundant I/O Module (or its path) Added */
84 #define DETAIL_PATH_ADDED 3
85 /* Storage Box (or its first path) Repaired (re-added after failure) */
86 #define DETIAL_STORAGEBOX_REPAIRED 4
87 /* Storage Box Redundant I/O Module (or its path) Repaired */
88 #define DETAIL_PATH_REPAIRED 5
90 /* Disk Drive Redundant Path Change */
91 #define SUB_CLASS_DD_PATH_CHANGE 7
92 /* Redundant path to configured disk drive is Hot Removed */
93 #define DETAIL_DD_HOT_REMOVED 0
95 #define CLASS_HARDWARE 2 /* Cable, Memory, Fan */
96 #define SUB_CLASS_RC_CHANGE 7 /* Redundant Cabling Change */
97 /* Unsupported Configuration Occurred Online */
98 #define DETAIL_UNSUPPORTED_CONFIGURATION 0
99 #define CLASS_ENVIRONMENT 3 /* Temperature, Power, Chasis, UPS */
101 #define CLASS_PHYSICAL_DRIVE 4 /* Physical drive Changes */
103 #define CLASS_LOGICAL_DRIVE 5 /* Logical drive Changes */
104 #define SUB_CLASS_STATUS 0
105 #define DETAIL_CHANGE 0
106 #define MEDIA_EXCHANGE 1
108 /* Spare Status States */
109 #define SPARE_UNDEFINED 0x00
110 #define SPARES_DESIGNATED 0x01
111 #define SPARE_REBUILDING 0x02
112 #define SPARE_REBUILT 0x04
113 #define SPARES_BAD 0x08
114 #define SPARE_ACTIVE 0x10
115 #define SPARE_AVAILABLE 0x20
117 #ifdef __cplusplus
119 #endif
121 #endif /* _CPQARY3_NOE_H */