#ifndef _CPQARY3_NOE_H
#define _CPQARY3_NOE_H
#ifdef __cplusplus
extern "C" {
#endif
#define CISS_NOE_CDB_LEN 0x0D
#define CISS_CANCEL_NOE_CDB_LEN 0x10
#define BMIC_NOTIFY_ON_EVENT 0xD0
#define BMIC_CANCEL_NOTIFY_ON_EVENT 0xD1
#define NOE_BUFFER_LENGTH 0x200
#pragma pack(1)
typedef struct Noe_Buffer {
uint32_t relative_controller_time;
uint16_t event_class_code;
uint16_t event_subclass_code;
uint16_t event_detail_code;
uint8_t event_specific_data[64];
uint8_t ascii_message[80];
uint32_t event_tag;
uint16_t month_day;
uint16_t year;
uint32_t hms;
uint16_t pre_powerup_time;
uint8_t device_address[8];
uint8_t reserved[336];
} NoeBuffer;
#pragma pack()
#define CPQARY3_NOE_INIT 0
#define CPQARY3_NOE_RESUBMIT 1
#define CPQARY3_NOE_FAILED 3
#define CLASS_PROTOCOL 0
#define SUB_CLASS_NON_EVENT 0
#define DETAIL_DISABLED 1
#define SUB_CLASS_PROTOCOL_ERR 1
#define DETAIL_EVENT_Q_OVERFLOW 0
#define CLASS_HOT_PLUG 1
#define SUB_CLASS_HP_CHANGE 0
#define SUB_CLASS_SB_HP_CHANGE 6
#define DETAIL_STORAGEBOX_REMOVED 0
#define DETAIL_STORAGEBOX_ADDED 1
#define DETAIL_PATH_REMOVED 2
#define DETAIL_PATH_ADDED 3
#define DETIAL_STORAGEBOX_REPAIRED 4
#define DETAIL_PATH_REPAIRED 5
#define SUB_CLASS_DD_PATH_CHANGE 7
#define DETAIL_DD_HOT_REMOVED 0
#define CLASS_HARDWARE 2
#define SUB_CLASS_RC_CHANGE 7
#define DETAIL_UNSUPPORTED_CONFIGURATION 0
#define CLASS_ENVIRONMENT 3
#define CLASS_PHYSICAL_DRIVE 4
#define CLASS_LOGICAL_DRIVE 5
#define SUB_CLASS_STATUS 0
#define DETAIL_CHANGE 0
#define MEDIA_EXCHANGE 1
#define SPARE_UNDEFINED 0x00
#define SPARES_DESIGNATED 0x01
#define SPARE_REBUILDING 0x02
#define SPARE_REBUILT 0x04
#define SPARES_BAD 0x08
#define SPARE_ACTIVE 0x10
#define SPARE_AVAILABLE 0x20
#ifdef __cplusplus
}
#endif
#endif