1275c9da8Seschrock /*
2275c9da8Seschrock  * CDDL HEADER START
3275c9da8Seschrock  *
4275c9da8Seschrock  * The contents of this file are subject to the terms of the
5275c9da8Seschrock  * Common Development and Distribution License (the "License").
6275c9da8Seschrock  * You may not use this file except in compliance with the License.
7275c9da8Seschrock  *
8275c9da8Seschrock  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9275c9da8Seschrock  * or http://www.opensolaris.org/os/licensing.
10275c9da8Seschrock  * See the License for the specific language governing permissions
11275c9da8Seschrock  * and limitations under the License.
12275c9da8Seschrock  *
13275c9da8Seschrock  * When distributing Covered Code, include this CDDL HEADER in each
14275c9da8Seschrock  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15275c9da8Seschrock  * If applicable, add the following below this CDDL HEADER, with the
16275c9da8Seschrock  * fields enclosed by brackets "[]" replaced with your own identifying
17275c9da8Seschrock  * information: Portions Copyright [yyyy] [name of copyright owner]
18275c9da8Seschrock  *
19275c9da8Seschrock  * CDDL HEADER END
20275c9da8Seschrock  */
21275c9da8Seschrock 
22275c9da8Seschrock /*
23*ac88567aSHyon Kim  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
24275c9da8Seschrock  */
25275c9da8Seschrock 
26*ac88567aSHyon Kim #ifndef	_FRAMEWORK_SES2_H
27*ac88567aSHyon Kim #define	_FRAMEWORK_SES2_H
28275c9da8Seschrock 
29275c9da8Seschrock #ifdef	__cplusplus
30275c9da8Seschrock extern "C" {
31275c9da8Seschrock #endif
32275c9da8Seschrock 
33275c9da8Seschrock /*
34275c9da8Seschrock  * Node properties
35275c9da8Seschrock  */
36275c9da8Seschrock typedef enum ses2_element_type {
37275c9da8Seschrock 	SES_ET_UNSPECIFIED = 0,
38275c9da8Seschrock 	SES_ET_DEVICE = 0x1,
39275c9da8Seschrock 	SES_ET_POWER_SUPPLY = 0x2,
40275c9da8Seschrock 	SES_ET_COOLING = 0x3,
41275c9da8Seschrock 	SES_ET_TEMPERATURE_SENSOR = 0x4,
42275c9da8Seschrock 	SES_ET_DOOR_LOCK = 0x5,
43275c9da8Seschrock 	SES_ET_AUDIBLE_ALARM = 0x6,
44275c9da8Seschrock 	SES_ET_ESC_ELECTRONICS = 0x7,
45275c9da8Seschrock 	SES_ET_SCC_ELECTRONICS = 0x8,
46275c9da8Seschrock 	SES_ET_NONVOLATILE_CACHE = 0x9,
47275c9da8Seschrock 	SES_ET_INVALID_OPERATION_REASON = 0xa,
48275c9da8Seschrock 	SES_ET_UPS = 0xb,
49275c9da8Seschrock 	SES_ET_DISPLAY = 0xc,
50275c9da8Seschrock 	SES_ET_KEY_PAD_ENTRY = 0xd,
51275c9da8Seschrock 	SES_ET_ENCLOSURE = 0xe,
52275c9da8Seschrock 	SES_ET_SCSI_PORT_XCVR = 0xf,
53275c9da8Seschrock 	SES_ET_LANGUAGE = 0x10,
54275c9da8Seschrock 	SES_ET_COMMUNICATION_PORT = 0x11,
55275c9da8Seschrock 	SES_ET_VOLTAGE_SENSOR = 0x12,
56275c9da8Seschrock 	SES_ET_CURRENT_SENSOR = 0x13,
57275c9da8Seschrock 	SES_ET_SCSI_TARGET_PORT = 0x14,
58275c9da8Seschrock 	SES_ET_SCSI_INITIATOR_PORT = 0x15,
59275c9da8Seschrock 	SES_ET_SIMPLE_SUBENCLOSURE = 0x16,
60275c9da8Seschrock 	SES_ET_ARRAY_DEVICE = 0x17,
61275c9da8Seschrock 	SES_ET_SAS_EXPANDER = 0x18,
62275c9da8Seschrock 	SES_ET_SAS_CONNECTOR = 0x19
63275c9da8Seschrock } ses2_element_type_t;
64275c9da8Seschrock 
65275c9da8Seschrock #define	SES_PROP_STATUS_CODE		"ses-status-code"
66275c9da8Seschrock typedef enum ses_element_status_code {
67275c9da8Seschrock 	SES_ESC_UNSUPPORTED = 0,
68275c9da8Seschrock 	SES_ESC_OK = 1,
69275c9da8Seschrock 	SES_ESC_CRITICAL = 2,
70275c9da8Seschrock 	SES_ESC_NONCRITICAL = 3,
71275c9da8Seschrock 	SES_ESC_UNRECOVERABLE = 4,
72275c9da8Seschrock 	SES_ESC_NOT_INSTALLED = 5,
73275c9da8Seschrock 	SES_ESC_UNKNOWN = 6,
74275c9da8Seschrock 	SES_ESC_UNAVAIL = 7,
75275c9da8Seschrock 	SES_ESC_NO_ACCESS = 8
76275c9da8Seschrock } ses_element_status_code_t;
77275c9da8Seschrock 
78275c9da8Seschrock #define	SES_PROP_ELEMENT_CLASS_INDEX	"ses-element-class-index" /* U64 */
79275c9da8Seschrock #define	SES_PROP_ELEMENT_INDEX		"ses-element-index"	/* U64 */
80*ac88567aSHyon Kim #define	SES_PROP_ELEMENT_ONLY_INDEX	"ses-element-only-index" /* U64 */
81275c9da8Seschrock #define	SES_PROP_BAY_NUMBER		"ses-bay-number"	/* U64 */
82275c9da8Seschrock #define	SES_PROP_PRDFAIL		"ses-failure-predicted"
83275c9da8Seschrock #define	SES_PROP_SWAP			"ses-swapped"
84275c9da8Seschrock #define	SES_PROP_DISABLED		"ses-disabled"
85275c9da8Seschrock #define	SES_PROP_IDENT			"ses-identify"
86275c9da8Seschrock #define	SES_PROP_WARN			"ses-warning"
87275c9da8Seschrock #define	SES_PROP_FAIL			"ses-failed"
88275c9da8Seschrock #define	SES_PROP_WARN_REQ		"ses-warning-indicator-requested"
89275c9da8Seschrock #define	SES_PROP_FAIL_REQ		"ses-failure-indicator-requested"
90275c9da8Seschrock #define	SES_PROP_REPORT			"ses-reported-via"
91275c9da8Seschrock #define	SES_PROP_RMV			"ses-ready-to-remove"
92275c9da8Seschrock #define	SES_PROP_OFF			"ses-off"
93275c9da8Seschrock #define	SES_PROP_REQUESTED_ON		"ses-requested-on"
94275c9da8Seschrock #define	SES_PROP_CLASS_DESCRIPTION	"ses-class-description"	/* S */
95275c9da8Seschrock #define	SES_PROP_DESCRIPTION		"ses-description"	/* S */
96275c9da8Seschrock #define	SES_PROP_HOT_SWAP		"ses-hot-swappable"
97275c9da8Seschrock 
989af3851aSeschrock #define	SES_PROP_CRIT_OVER		"ses-critical-over"
999af3851aSeschrock #define	SES_PROP_CRIT_UNDER		"ses-critical-under"
1009af3851aSeschrock #define	SES_PROP_WARN_OVER		"ses-warning-over"
1019af3851aSeschrock #define	SES_PROP_WARN_UNDER		"ses-warning-under"
1029af3851aSeschrock 
103275c9da8Seschrock #define	SES_FC_PROP_NODE_NAME		"ses-fc-node-name"	/* U64 */
104275c9da8Seschrock #define	SES_FC_PROP_LOOP_POS		"ses-fc-loop-position"	/* U64 */
105275c9da8Seschrock #define	SES_FC_PROP_REQ_HARDADDR	"ses-fc-requested-hard-address"
106275c9da8Seschrock #define	SES_FC_PROP_N_PORT_ID		"ses-fc-n_port-identifier" /* U64 */
107275c9da8Seschrock #define	SES_FC_PROP_N_PORT_NAME		"ses-fc-n_port-name"	/* U64 */
108275c9da8Seschrock #define	SES_FC_PROP_PORTS		"ses-fc-ports"		/* NVA */
109275c9da8Seschrock 
110275c9da8Seschrock #define	SES_SAS_PROP_DEVICE_TYPE	"ses-sas-device-type"	/* U64 */
111275c9da8Seschrock /*
112275c9da8Seschrock  * SAS2r11 7.8.2 Table 123
113275c9da8Seschrock  */
114275c9da8Seschrock typedef enum sas_device_type {
115275c9da8Seschrock 	SAS_DT_END_DEVICE = 0x01,
116275c9da8Seschrock 	SAS_DT_EXPANDER = 0x02,
117275c9da8Seschrock 	SAS_DT_LEGACY_EXPANDER = 0x3
118275c9da8Seschrock } sas_device_type_t;
119275c9da8Seschrock 
120275c9da8Seschrock #define	SES_SAS_PROP_SMPI_PORT		"ses-sas-smp-initiator-port"
121275c9da8Seschrock #define	SES_SAS_PROP_STPI_PORT		"ses-sas-stp-initiator-port"
122275c9da8Seschrock #define	SES_SAS_PROP_SSPI_PORT		"ses-sas-ssp-initiator-port"
123275c9da8Seschrock #define	SES_SAS_PROP_SATA_DEVICE	"ses-sas-sata-device"
124275c9da8Seschrock #define	SES_SAS_PROP_SMPT_PORT		"ses-sas-smp-target-port"
125275c9da8Seschrock #define	SES_SAS_PROP_STPT_PORT		"ses-sas-stp-target-port"
126275c9da8Seschrock #define	SES_SAS_PROP_SSPT_PORT		"ses-sas-ssp-target-port"
127275c9da8Seschrock #define	SES_SAS_PROP_ATT_ADDR		"ses-sas-attached-address" /* U64 */
128275c9da8Seschrock #define	SES_SAS_PROP_ADDR		"ses-sas-address"	/* U64 */
129275c9da8Seschrock #define	SES_SAS_PROP_PHY_ID		"ses-sas-phy-identifier" /* U64 */
130275c9da8Seschrock #define	SES_SAS_PROP_PHYS		"ses-sas-phys"		/* NVA */
131275c9da8Seschrock #define	SES_PROP_CE_IDX			"ses-connector-element-index" /* U64 */
132275c9da8Seschrock #define	SES_PROP_OE_IDX			"ses-other-element-index" /* U64 */
133275c9da8Seschrock 
134275c9da8Seschrock #define	SES_PROP_THRESH_CRIT_HI		"ses-high-critical-threshold" /* U64 */
135275c9da8Seschrock #define	SES_PROP_THRESH_WARN_HI		"ses-high-warning-threshold" /* U64 */
136275c9da8Seschrock #define	SES_PROP_THRESH_CRIT_LO		"ses-low-critical-threshold" /* U64 */
137275c9da8Seschrock #define	SES_PROP_THRESH_WARN_LO		"ses-low-warning-threshold" /* U64 */
138275c9da8Seschrock 
139275c9da8Seschrock /*
140275c9da8Seschrock  * Audible Alarm properties
141275c9da8Seschrock  */
142275c9da8Seschrock #define	SES_ALARM_PROP_UNRECOV		"ses-indicating-unrecoverable"
143275c9da8Seschrock #define	SES_ALARM_PROP_CRIT		"ses-indicating-critical"
144275c9da8Seschrock #define	SES_ALARM_PROP_NONCRIT		"ses-indicating-noncritical"
145275c9da8Seschrock #define	SES_ALARM_PROP_INFO		"ses-indicating-informational"
146275c9da8Seschrock #define	SES_ALARM_PROP_REMIND		"ses-reminder-mode"
147275c9da8Seschrock #define	SES_ALARM_PROP_MUTED		"ses-muted"
148275c9da8Seschrock #define	SES_ALARM_PROP_RQST_MUTE	"ses-mute-requested"
149275c9da8Seschrock 
150275c9da8Seschrock /*
151275c9da8Seschrock  * Nonvolatile Cache properties
152275c9da8Seschrock  */
153275c9da8Seschrock #define	SES_CACHE_PROP_SIZE		"ses-cache-size"	/* U64 */
154275c9da8Seschrock 
155275c9da8Seschrock /*
156275c9da8Seschrock  * Cooling Element properties
157275c9da8Seschrock  */
158275c9da8Seschrock #define	SES_COOLING_PROP_FAN_SPEED	"ses-fan-speed"		/* U64 */
159275c9da8Seschrock #define	SES_COOLING_PROP_SPEED_CODE	"ses-fan-speed-code"	/* U64 */
160275c9da8Seschrock typedef enum ses_cooling_fan_speed {
161275c9da8Seschrock 	SES_COOLING_FAN_SPEED_STOPPED = 0,
162275c9da8Seschrock 	SES_COOLING_FAN_SPEED_LOWEST = 1,
163275c9da8Seschrock 	SES_COOLING_FAN_SPEED_LOWER = 2,
164275c9da8Seschrock 	SES_COOLING_FAN_SPEED_LOW = 3,
165275c9da8Seschrock 	SES_COOLING_FAN_SPEED_INTERMEDIATE = 4,
166275c9da8Seschrock 	SES_COOLING_FAN_SPEED_HIGH = 5,
167275c9da8Seschrock 	SES_COOLING_FAN_SPEED_HIGHER = 6,
168275c9da8Seschrock 	SES_COOLING_FAN_SPEED_HIGHEST = 7
169275c9da8Seschrock } ses_cooling_fan_speed_t;
170275c9da8Seschrock 
171275c9da8Seschrock /*
172275c9da8Seschrock  * Device/Array Device properties
173275c9da8Seschrock  */
174275c9da8Seschrock #define	SES_DEV_PROP_SLOT_ADDR		"ses-slot-address"	/* U64 */
175275c9da8Seschrock #define	SES_DEV_PROP_PRDFAIL		"ses-failure-predicted"
176275c9da8Seschrock #define	SES_DEV_PROP_READY_TO_INSERT	"ses-ready-to-insert"
177275c9da8Seschrock #define	SES_DEV_PROP_ENC_BYP_A		"ses-enclosure-bypassed-a"
178275c9da8Seschrock #define	SES_DEV_PROP_ENC_BYP_B		"ses-enclosure-bypassed-b"
179275c9da8Seschrock #define	SES_DEV_PROP_DO_NOT_REMOVE	"ses-do-not-remove"
180275c9da8Seschrock #define	SES_DEV_PROP_APP_BYP_A		"ses-app-client-bypassed-a"
181275c9da8Seschrock #define	SES_DEV_PROP_APP_BYP_B		"ses-app-client-bypassed-b"
182275c9da8Seschrock #define	SES_DEV_PROP_DEV_BYP_A		"ses-device-bypassed-a"
183275c9da8Seschrock #define	SES_DEV_PROP_DEV_BYP_B		"ses-device-bypassed-b"
184275c9da8Seschrock #define	SES_DEV_PROP_BYP_A		"ses-bypassed-a"
185275c9da8Seschrock #define	SES_DEV_PROP_BYP_B		"ses-bypassed-b"
186275c9da8Seschrock #define	SES_DEV_PROP_FAULT_RQSTD	"ses-fault-requested"
187275c9da8Seschrock #define	SES_DEV_PROP_FAULT_SENSED	"ses-fault-sensed"
188275c9da8Seschrock #define	SES_DEV_PROP_SAS_NOT_ALL_PHYS	"ses-sas-not-all-phys"
189275c9da8Seschrock 
190275c9da8Seschrock /* Control only */
191275c9da8Seschrock #define	SES_DEV_PROP_REQ_MISSING	"ses-request-missing"
192275c9da8Seschrock #define	SES_DEV_PROP_REQ_ACTIVE		"ses-request-activity"
193275c9da8Seschrock 
194275c9da8Seschrock #define	SES_AD_PROP_RR_ABORT		"ses-remap-rebuild-abort"
195275c9da8Seschrock #define	SES_AD_PROP_REBUILD		"ses-remap-rebuild"
196275c9da8Seschrock #define	SES_AD_PROP_IN_FAILED_ARRAY	"ses-in-failed-array"
197275c9da8Seschrock #define	SES_AD_PROP_IN_CRIT_ARRAY	"ses-in-critical-array"
198275c9da8Seschrock #define	SES_AD_PROP_CONS_CHK		"ses-consistency-check"
199275c9da8Seschrock #define	SES_AD_PROP_HOT_SPARE		"ses-hot-spare"
200275c9da8Seschrock #define	SES_AD_PROP_RSVD_DEVICE		"ses-reserved-device"
201275c9da8Seschrock #define	SES_AD_PROP_OK			"ses-ok"
202275c9da8Seschrock 
203275c9da8Seschrock /*
204275c9da8Seschrock  * Display Element properties
205275c9da8Seschrock  */
206275c9da8Seschrock #define	SES_DPY_PROP_CHAR		"ses-displayed-character" /* U16 */
207275c9da8Seschrock #define	SES_DPY_PROP_MODE		"ses-display-mode"	/* U64 */
208275c9da8Seschrock /*
209275c9da8Seschrock  * SES-2r17 Table 96, 7.3.14
210275c9da8Seschrock  */
211275c9da8Seschrock typedef enum ses_display_mode_ctl {
212275c9da8Seschrock 	SES_DISPLAY_MC_NOCHG = 0,
213275c9da8Seschrock 	SES_DISPLAY_MC_ESP = 1,
214275c9da8Seschrock 	SES_DISPLAY_MC_SET = 2
215275c9da8Seschrock } ses_display_mode_ctl_t;
216275c9da8Seschrock 
217275c9da8Seschrock typedef enum ses2_display_mode_status {
218275c9da8Seschrock 	SES_DISPLAY_MS_NOTSUP = 0,
219275c9da8Seschrock 	SES_DISPLAY_MS_ESP = 1,
220275c9da8Seschrock 	SES_DISPLAY_MS_SET = 2
221275c9da8Seschrock } ses_display_mode_status_t;
222275c9da8Seschrock 
223275c9da8Seschrock /*
224275c9da8Seschrock  * Current Sensor properties
225275c9da8Seschrock  */
226275c9da8Seschrock #define	SES_CS_PROP_CURRENT_MA		"ses-current"		/* I64 */
227275c9da8Seschrock 
228275c9da8Seschrock /*
229275c9da8Seschrock  * Door Lock properties
230275c9da8Seschrock  */
231275c9da8Seschrock #define	SES_LOCK_PROP_UNLOCKED		"ses-unlocked"
232275c9da8Seschrock 
233275c9da8Seschrock /*
234275c9da8Seschrock  * SCSI Initiator or Target Port properties
235275c9da8Seschrock  */
236275c9da8Seschrock #define	SES_ITP_PROP_ENABLED		"ses-enabled"
237275c9da8Seschrock 
238275c9da8Seschrock /*
239275c9da8Seschrock  * Language Module properties
240275c9da8Seschrock  */
241275c9da8Seschrock #define	SES_LANG_PROP_LANGCODE		"ses-language-code"	/* U64 */
242275c9da8Seschrock 
243275c9da8Seschrock /*
244275c9da8Seschrock  * SCSI Port/Transceiver properties
245275c9da8Seschrock  */
246275c9da8Seschrock #define	SES_PX_PROP_XMIT_FAIL		"ses-transmitter-failure"
247275c9da8Seschrock #define	SES_PX_PROP_LOL			"ses-loss-of-link"
248275c9da8Seschrock 
249275c9da8Seschrock /*
250275c9da8Seschrock  * Power Supply properties
251275c9da8Seschrock  */
252275c9da8Seschrock #define	SES_PSU_PROP_DC_OVER_CURRENT	"ses-dc-over-current"
253275c9da8Seschrock #define	SES_PSU_PROP_DC_UNDER_VOLTAGE	"ses-dc-under-voltage"
254275c9da8Seschrock #define	SES_PSU_PROP_DC_OVER_VOLTAGE	"ses-dc-over-voltage"
255275c9da8Seschrock #define	SES_PSU_PROP_DC_FAIL		"ses-dc-fail"
256275c9da8Seschrock #define	SES_PSU_PROP_AC_FAIL		"ses-ac-fail"
257275c9da8Seschrock #define	SES_PSU_PROP_TEMP_WARN		"ses-temperature-warning" /* I64 */
258275c9da8Seschrock #define	SES_PSU_PROP_OVERTEMP_FAIL	"ses-overtemperature-failure"
259275c9da8Seschrock 
260275c9da8Seschrock /*
261275c9da8Seschrock  * SAS Expander properties
262275c9da8Seschrock  */
263275c9da8Seschrock #define	SES_EXP_PROP_SAS_ADDR		"ses-expander-sas-address" /* U64 */
264275c9da8Seschrock 
265275c9da8Seschrock /*
266275c9da8Seschrock  * SAS Connector properties
267275c9da8Seschrock  */
268275c9da8Seschrock #define	SES_SC_PROP_PHYSICAL_LINK	"ses-sas-physical-link"	/* U64 */
269275c9da8Seschrock #define	SES_SC_PROP_CONNECTOR_TYPE	"ses-sas-connector-type" /* U64 */
270275c9da8Seschrock /*
271275c9da8Seschrock  * SES2r17 Table 122, 7.3.26
272275c9da8Seschrock  */
273275c9da8Seschrock typedef enum ses_sasconn_type {
274275c9da8Seschrock 	SES_SASCONN_T_UNKNOWN = 0,
275275c9da8Seschrock 	SES_SASCONN_T_SFF_8470 = 0x1,
276275c9da8Seschrock 	SES_SASCONN_T_SFF_8088 = 0x2,
277275c9da8Seschrock 	SES_SASCONN_T_VENDOR_EXT = 0xf,
278275c9da8Seschrock 	SES_SASCONN_T_SFF_8484 = 0x10,
279275c9da8Seschrock 	SES_SASCONN_T_SFF_8087 = 0x11,
280275c9da8Seschrock 	SES_SASCONN_T_SFF_8482_R = 0x20,
281275c9da8Seschrock 	SES_SASCONN_T_SATA_HOST = 0x21,
282275c9da8Seschrock 	SES_SASCONN_T_SFF_8482_P = 0x22,
283275c9da8Seschrock 	SES_SASCONN_T_SATA_DEV = 0x23,
284275c9da8Seschrock 	SES_SASCONN_T_VIRTUAL = 0x2f,
285275c9da8Seschrock 	SES_SASCONN_T_VENDOR_INT = 0x3f,
286275c9da8Seschrock 	SES_SASCONN_T_VENDOR_70 = 0x70,
287275c9da8Seschrock 	SES_SASCONN_T_VENDOR_71 = 0x71,
288275c9da8Seschrock 	SES_SASCONN_T_VENDOR_72 = 0x72,
289275c9da8Seschrock 	SES_SASCONN_T_VENDOR_73 = 0x73,
290275c9da8Seschrock 	SES_SASCONN_T_VENDOR_74 = 0x74,
291275c9da8Seschrock 	SES_SASCONN_T_VENDOR_75 = 0x75,
292275c9da8Seschrock 	SES_SASCONN_T_VENDOR_76 = 0x76,
293275c9da8Seschrock 	SES_SASCONN_T_VENDOR_77 = 0x77,
294275c9da8Seschrock 	SES_SASCONN_T_VENDOR_78 = 0x78,
295275c9da8Seschrock 	SES_SASCONN_T_VENDOR_79 = 0x79,
296275c9da8Seschrock 	SES_SASCONN_T_VENDOR_7A = 0x7a,
297275c9da8Seschrock 	SES_SASCONN_T_VENDOR_7B = 0x7b,
298275c9da8Seschrock 	SES_SASCONN_T_VENDOR_7C = 0x7c,
299275c9da8Seschrock 	SES_SASCONN_T_VENDOR_7D = 0x7d,
300275c9da8Seschrock 	SES_SASCONN_T_VENDOR_7E = 0x7e,
301275c9da8Seschrock 	SES_SASCONN_T_VENDOR_7F = 0x7f
302275c9da8Seschrock } ses_sasconn_type_t;
303275c9da8Seschrock 
304275c9da8Seschrock /*
305275c9da8Seschrock  * Simple Subenclosure properties
306275c9da8Seschrock  */
307275c9da8Seschrock #define	SES_SS_PROP_SHORT_STATUS	"ses-short-status"	/* U64 */
308275c9da8Seschrock 
309275c9da8Seschrock /*
310275c9da8Seschrock  * Temperature Sensor properties
311275c9da8Seschrock  */
312275c9da8Seschrock #define	SES_TEMP_PROP_TEMP		"ses-temperature"	/* I64 */
313275c9da8Seschrock 
314275c9da8Seschrock /*
315275c9da8Seschrock  * Uninterruptible Power Supply properties
316275c9da8Seschrock  */
317275c9da8Seschrock #define	SES_UPS_PROP_TIMELEFT		"ses-battery-time-remaining" /* U64 */
318275c9da8Seschrock #define	SES_UPS_PROP_INTF_FAIL		"ses-interface-failure"
319275c9da8Seschrock #define	SES_UPS_PROP_WARN		"ses-low-battery-warning"
320275c9da8Seschrock #define	SES_UPS_PROP_UPS_FAIL		"ses-ups-failure"
321275c9da8Seschrock #define	SES_UPS_PROP_DC_FAIL		"ses-dc-failure"
322275c9da8Seschrock #define	SES_UPS_PROP_AC_FAIL		"ses-ac-failure"
323275c9da8Seschrock #define	SES_UPS_PROP_AC_QUAL		"ses-ac-quality-exception"
324275c9da8Seschrock #define	SES_UPS_PROP_AC_HI		"ses-ac-overvoltage-exception"
325275c9da8Seschrock #define	SES_UPS_PROP_AC_LO		"ses-ac-undervoltage-exception"
326275c9da8Seschrock #define	SES_UPS_PROP_BPF		"ses-battery-failure-predicted"
327275c9da8Seschrock #define	SES_UPS_PROP_BATT_FAIL		"ses-battery-failure"
328275c9da8Seschrock 
329275c9da8Seschrock /*
330275c9da8Seschrock  * Voltage Sensor properties
331275c9da8Seschrock  */
332275c9da8Seschrock #define	SES_VS_PROP_VOLTAGE_MV		"ses-voltage"		/* I64 */
333275c9da8Seschrock 
334275c9da8Seschrock /*
335275c9da8Seschrock  * Enclosure Services Controller properties (Control only)
336275c9da8Seschrock  */
337275c9da8Seschrock #define	SES_ESC_PROP_SELECT		"ses-select-element"
338275c9da8Seschrock 
339275c9da8Seschrock /*
340275c9da8Seschrock  * Primary/Subenclosure properties
341275c9da8Seschrock  */
342275c9da8Seschrock #define	SES_EN_PROP_EID			"ses-enclosure-id"	/* U64 */
343275c9da8Seschrock #define	SES_EN_PROP_ESPID		"ses-enclosure-service-proc-id"
344275c9da8Seschrock #define	SES_EN_PROP_NESP		"ses-enclosure-service-proc-count"
345275c9da8Seschrock #define	SES_EN_PROP_LID			"ses-logical-id"		/* NV */
346275c9da8Seschrock #define	SES_EN_PROP_VID			"ses-vendor-id"		/* S */
347275c9da8Seschrock #define	SES_EN_PROP_PID			"ses-product-id"	/* S */
348275c9da8Seschrock #define	SES_EN_PROP_REV			"ses-product-revision"	/* S */
349275c9da8Seschrock #define	SES_EN_PROP_VS			"ses-product-vendor-specific" /* BA */
350275c9da8Seschrock 
351275c9da8Seschrock #define	SES_EN_PROP_UNRECOV		"ses-status-unrecoverable"
352275c9da8Seschrock #define	SES_EN_PROP_CRIT		"ses-status-critical"
353275c9da8Seschrock #define	SES_EN_PROP_NONCRIT		"ses-status-noncritical"
354275c9da8Seschrock #define	SES_EN_PROP_INFO		"ses-status-informational"
355275c9da8Seschrock #define	SES_EN_PROP_INVOP		"ses-status-invalid-operation"
356275c9da8Seschrock #define	SES_EN_PROP_HELP		"ses-help-text"		/* S */
357275c9da8Seschrock #define	SES_EN_PROP_STRING		"ses-string-in-data"	/* BA */
358275c9da8Seschrock #define	SES_EN_PROP_SHORT		"ses-short-status"	/* U64 */
359275c9da8Seschrock #define	SES_EN_PROP_UCODE		"ses-microcode-dl-status" /* U64 */
360275c9da8Seschrock typedef enum ses2_dl_ucode_status {
361275c9da8Seschrock 	SES2_DLUCODE_S_NOP = 0,
362275c9da8Seschrock 	SES2_DLUCODE_S_INPROGRESS = 0x1,
363275c9da8Seschrock 	SES2_DLUCODE_S_SAVING = 0x2,
364275c9da8Seschrock 	SES2_DLUCODE_S_INTERIM_3 = 0x3,
365275c9da8Seschrock 	SES2_DLUCODE_S_INTERIM_4 = 0x4,
366275c9da8Seschrock 	SES2_DLUCODE_S_INTERIM_5 = 0x5,
367275c9da8Seschrock 	SES2_DLUCODE_S_INTERIM_6 = 0x6,
368275c9da8Seschrock 	SES2_DLUCODE_S_INTERIM_7 = 0x7,
369275c9da8Seschrock 	SES2_DLUCODE_S_INTERIM_8 = 0x8,
370275c9da8Seschrock 	SES2_DLUCODE_S_INTERIM_9 = 0x9,
371275c9da8Seschrock 	SES2_DLUCODE_S_INTERIM_A = 0xa,
372275c9da8Seschrock 	SES2_DLUCODE_S_INTERIM_B = 0xb,
373275c9da8Seschrock 	SES2_DLUCODE_S_INTERIM_C = 0xc,
374275c9da8Seschrock 	SES2_DLUCODE_S_INTERIM_D = 0xd,
375275c9da8Seschrock 	SES2_DLUCODE_S_INTERIM_E = 0xe,
376275c9da8Seschrock 	SES2_DLUCODE_S_INTERIM_F = 0xf,
377275c9da8Seschrock 	SES2_DLUCODE_S_COMPLETE_NOW = 0x10,
378275c9da8Seschrock 	SES2_DLUCODE_S_COMPLETE_AT_RESET = 0x11,
379275c9da8Seschrock 	SES2_DLUCODE_S_COMPLETE_AT_POWERON = 0x12,
380275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_70 = 0x70,
381275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_71 = 0x71,
382275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_72 = 0x72,
383275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_73 = 0x73,
384275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_74 = 0x74,
385275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_75 = 0x75,
386275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_76 = 0x76,
387275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_77 = 0x77,
388275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_78 = 0x78,
389275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_79 = 0x79,
390275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_7A = 0x7a,
391275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_7B = 0x7b,
392275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_7C = 0x7c,
393275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_7D = 0x7d,
394275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_7E = 0x7e,
395275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_7F = 0x7f,
396275c9da8Seschrock 	SES2_DLUCODE_S_PAGE_ERR = 0x80,
397275c9da8Seschrock 	SES2_DLUCODE_S_IMAGE_ERR = 0x81,
398275c9da8Seschrock 	SES2_DLUCODE_S_TIMEOUT = 0x82,
399275c9da8Seschrock 	SES2_DLUCODE_S_INTERNAL_NEEDIMAGE = 0x83,
400275c9da8Seschrock 	SES2_DLUCODE_S_INTERNAL_SAFE = 0x84,
401275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_ERR_F0 = 0xf0,
402275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_ERR_F1 = 0xf1,
403275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_ERR_F2 = 0xf2,
404275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_ERR_F3 = 0xf3,
405275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_ERR_F4 = 0xf4,
406275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_ERR_F5 = 0xf5,
407275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_ERR_F6 = 0xf6,
408275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_ERR_F7 = 0xf7,
409275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_ERR_F8 = 0xf8,
410275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_ERR_F9 = 0xf9,
411275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_ERR_FA = 0xfa,
412275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_ERR_FB = 0xfb,
413275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_ERR_FC = 0xfc,
414275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_ERR_FD = 0xfd,
415275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_ERR_FE = 0xfe,
416275c9da8Seschrock 	SES2_DLUCODE_S_VENDOR_ERR_FF = 0xff
417275c9da8Seschrock } ses2_dl_ucode_status_t;
418275c9da8Seschrock 
419275c9da8Seschrock typedef enum ses_dl_ucode_mode {
420275c9da8Seschrock 	SES_DLUCODE_M_WITH_OFFS = 6,
421275c9da8Seschrock 	SES_DLUCODE_M_WITH_OFFS_SAVE = 7
422275c9da8Seschrock } ses_dl_ucode_mode_t;
423275c9da8Seschrock 
424275c9da8Seschrock #define	SES_EN_PROP_UCODE_A		"ses-microcode-dl-addl-status" /* U64 */
425275c9da8Seschrock #define	SES_EN_PROP_UCODE_SZ		"ses-microcode-maximum-size" /* U64 */
426275c9da8Seschrock #define	SES_EN_PROP_UCODE_BUF		"ses-microcode-buffer-id" /* U64 */
427275c9da8Seschrock #define	SES_EN_PROP_UCODE_OFF		"ses-microcode-buffer-offset" /* U64 */
428275c9da8Seschrock 
429275c9da8Seschrock #define	SES_EN_PROP_NICK		"ses-nickname"		/* S */
430275c9da8Seschrock #define	SES_EN_PROP_NICK_STATUS		"ses-nickname-status"	/* U64 */
431275c9da8Seschrock typedef enum ses_subnick_status {
432275c9da8Seschrock 	SES_SNS_NO_ERROR = 0x0,
433275c9da8Seschrock 	SES_SNS_ERR_PAGE = 0x80,
434275c9da8Seschrock 	SES_SNS_ERR_INT_NICKLOST = 0x81,
435275c9da8Seschrock 	SES_SNS_ERR_INT_PRESERVED = 0x82
436275c9da8Seschrock } ses_subnick_status_t;
437275c9da8Seschrock 
438275c9da8Seschrock #define	SES_EN_PROP_NICK_ADDL_STATUS	"ses-nickname-additional-status"
439275c9da8Seschrock #define	SES_EN_PROP_NICK_LANG		"ses-nickname-language"	/* U64 */
440275c9da8Seschrock 
441275c9da8Seschrock #define	SES_EN_PROP_POWER_DELAY		"ses-power-cycle-delay"	/* U64 */
442275c9da8Seschrock #define	SES_EN_PROP_POWER_DURATION	"ses-power-cycle-duration" /* U64 */
443275c9da8Seschrock #define	SES_EN_PROP_POWER_REQUEST	"ses-power-cycle-request" /* U64 */
444275c9da8Seschrock 
445275c9da8Seschrock typedef enum ses_power_delay {
446275c9da8Seschrock 	SES_PDL_NONE = 0x0,
447275c9da8Seschrock 	SES_PDL_IMMEDIATE = 0x3f
448275c9da8Seschrock } ses_power_delay_t;
449275c9da8Seschrock 
450275c9da8Seschrock typedef enum ses_power_duration {
451275c9da8Seschrock 	SES_PDR_NONE = 0x0,
452275c9da8Seschrock 	SES_PDR_MANUAL = 0x3f
453275c9da8Seschrock } ses_power_duration_t;
454275c9da8Seschrock 
455275c9da8Seschrock typedef enum ses_power_request {
456275c9da8Seschrock 	SES_PRQ_NONE = 0x0,
457275c9da8Seschrock 	SES_PRQ_SET = 0x1,
458275c9da8Seschrock 	SES_PRQ_CANCEL = 0x2
459275c9da8Seschrock } ses_power_request_t;
460275c9da8Seschrock 
461275c9da8Seschrock /*
462275c9da8Seschrock  * IEEE logical IDs (for SES_EN_PROP_LID)
463275c9da8Seschrock  */
464275c9da8Seschrock #define	SPC3_NAA_INT			"naa-id-integer"	/* U64 */
465275c9da8Seschrock #define	SPC3_NAA_ID_TYPE		"naa-id-type"		/* U64 */
466275c9da8Seschrock #define	SPC3_NAA_COMPANY_ID		"naa-company-id"	/* U64 */
467275c9da8Seschrock #define	SPC3_NAA_VS_A			"naa-vendor-specific-a"	/* U64 */
468275c9da8Seschrock #define	SPC3_NAA_VS_B			"naa-vendor-specific-b"	/* U64 */
469275c9da8Seschrock 
470275c9da8Seschrock /*
471275c9da8Seschrock  * SES-2 Diagnostic page codes (Table 5, 6.1.1).  The set of exported pages
472275c9da8Seschrock  * constitutes an inter-plugin interface and is therefore part of the public
473275c9da8Seschrock  * header file.
474275c9da8Seschrock  */
475275c9da8Seschrock typedef enum ses2_diag_page {
476275c9da8Seschrock 	SES2_DIAGPAGE_SUPPORTED_PAGES = 0x00,
477275c9da8Seschrock 	SES2_DIAGPAGE_CONFIG = 0x01,
478275c9da8Seschrock 	SES2_DIAGPAGE_ENCLOSURE_CTL_STATUS = 0x02,
479275c9da8Seschrock 	SES2_DIAGPAGE_HELP_TEXT = 0x03,
480275c9da8Seschrock 	SES2_DIAGPAGE_STRING_IO = 0x04,
481275c9da8Seschrock 	SES2_DIAGPAGE_THRESHOLD_IO = 0x05,
482275c9da8Seschrock 	SES2_DIAGPAGE_ELEMENT_DESC = 0x07,
483275c9da8Seschrock 	SES2_DIAGPAGE_SHORT_STATUS = 0x08,
484275c9da8Seschrock 	SES2_DIAGPAGE_ENCLOSURE_BUSY = 0x09,
485275c9da8Seschrock 	SES2_DIAGPAGE_ADDL_ELEM_STATUS = 0x0a,
486275c9da8Seschrock 	SES2_DIAGPAGE_SUBENCLOSURE_HELP_TEXT = 0x0b,
487275c9da8Seschrock 	SES2_DIAGPAGE_SUBENCLOSURE_STRING_IO = 0x0c,
488275c9da8Seschrock 	SES2_DIAGPAGE_SUPPORTED_SES_PAGES = 0x0d,
489275c9da8Seschrock 	SES2_DIAGPAGE_DL_MICROCODE_CTL_STATUS = 0x0e,
490275c9da8Seschrock 	SES2_DIAGPAGE_SUBENCLOSURE_NICKNAME_CTL_STATUS = 0x0f,
491275c9da8Seschrock 	SES2_DIAGPAGE_VENDOR_0 = 0x10,
492275c9da8Seschrock 	SES2_DIAGPAGE_VENDOR_1 = 0x11,
493275c9da8Seschrock 	SES2_DIAGPAGE_VENDOR_2 = 0x12,
494275c9da8Seschrock 	SES2_DIAGPAGE_VENDOR_3 = 0x13,
495275c9da8Seschrock 	SES2_DIAGPAGE_VENDOR_4 = 0x14,
496275c9da8Seschrock 	SES2_DIAGPAGE_VENDOR_5 = 0x15,
497275c9da8Seschrock 	SES2_DIAGPAGE_VENDOR_6 = 0x16,
498275c9da8Seschrock 	SES2_DIAGPAGE_VENDOR_7 = 0x17,
499275c9da8Seschrock 	SES2_DIAGPAGE_VENDOR_8 = 0x18,
500275c9da8Seschrock 	SES2_DIAGPAGE_VENDOR_9 = 0x19,
501275c9da8Seschrock 	SES2_DIAGPAGE_VENDOR_A = 0x1a,
502275c9da8Seschrock 	SES2_DIAGPAGE_VENDOR_B = 0x1b,
503275c9da8Seschrock 	SES2_DIAGPAGE_VENDOR_C = 0x1c,
504275c9da8Seschrock 	SES2_DIAGPAGE_VENDOR_D = 0x1d,
505275c9da8Seschrock 	SES2_DIAGPAGE_VENDOR_E = 0x1e,
506275c9da8Seschrock 	SES2_DIAGPAGE_VENDOR_F = 0x1f
507275c9da8Seschrock } ses2_diag_page_t;
508275c9da8Seschrock 
509275c9da8Seschrock #define	SES_CTL_OP_SETPROP		"ses-ctl-setprop"
510275c9da8Seschrock #define	SES_CTL_OP_DL_UCODE		"ses-ctl-dl-ucode"
511275c9da8Seschrock 
512275c9da8Seschrock #define	SES_CTL_PROP_UCODE_DATA		"ses-ctl-ucode-data"
513275c9da8Seschrock #define	SES_CTL_PROP_UCODE_BUFID	"ses-ctl-ucode-bufid"
514275c9da8Seschrock #define	SES_CTL_PROP_UCODE_MODE		"ses-ctl-ucode-mode"
515*ac88567aSHyon Kim #define	SES_CTL_PROP_UCODE_DATA_LEN	"ses-ctl-ucode-data-length" /* U64 */
516275c9da8Seschrock 
517275c9da8Seschrock #ifdef	__cplusplus
518275c9da8Seschrock }
519275c9da8Seschrock #endif
520275c9da8Seschrock 
521*ac88567aSHyon Kim #endif	/* _FRAMEWORK_SES2_H */
522