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