123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423 |
- /*****************************************************************
- *****************************************************************
- *** **
- *** (C)Copyright 2005-2006, American Megatrends Inc. **
- *** **
- *** All Rights Reserved. **
- *** **
- *** 6145-F, Northbelt Parkway, Norcross, **
- *** **
- *** Georgia - 30071, USA. Phone-(770)-246-8600. **
- *** **
- *****************************************************************
- *****************************************************************
- *****************************************************************
- ******************************************************************
- *
- * SDRRecord.h
- * SDR record structures.
- *
- * Author: Govind Kothandapani <govindk@ami.com>
- *
- ******************************************************************/
- #ifndef IPMI_SDR_RECORD_H
- #define IPMI_SDR_RECORD_H
- #include "Types.h"
- #pragma pack( 1 )
- /**
- * @brief SDR Type
- **/
- #define FULL_SDR_REC 0x01
- #define COMPACT_SDR_REC 0x02
- #define EVENT_ONLY_SDR_REC 0x03
- #define ENTITY_ASSOCIATION_SDR_REC 0x08
- #define DEV_REL_ENTITY_ASSOCIATION_SDR_REC 0x09
- #define GENERIC_DEVICE_LOCATOR_SDR_REC 0x10
- #define FRU_DEVICE_LOCATOR_SDR_REC 0x11
- #define MGMT_CTRL_DEV_LOCATOR_SDR_REC 0x12
- #define MGMT_CTRL_CONFIRMATION_SDR_REC 0x13
- #define BMC_MSG_CHANNEL_INFO_REC 0x14
- #define OEM_SDRFRU_REC 0xD0
- #define OEM_SDRNM_REC 0xC0
- /**
- * @brief Maximum Length of the ID String
- **/
- #define MAX_ID_STR_LEN 16
- #define MAX_FRU_SDR_STR_SIZE 40
- /**
- * @struct SDRRecHdr_T
- * @brief SDR Record Header
- **/
- /*
- typedef struct
- {
- INT16U ID;
- INT8U Version;
- INT8U Type;
- INT8U Len;
- } PACKED SDRRecHdr_T;
- */
- /**
- * @struct FullSensorRec_T
- * @brief Full Sensor Record
- **/
- typedef struct
- {
- /* SENSOR RECORD HEADER */
- SDRRecHdr_T hdr;
- /* RECORD KEY BYTES */
- INT8U OwnerID;
- INT8U OwnerLUN;
- INT8U SensorNum;
- /* RECORD BODY BYTES */
- INT8U EntityID;
- INT8U EntityIns;
- INT8U SensorInit;
- INT8U SensorCaps;
- INT8U SensorType;
- INT8U EventTypeCode;
- INT16U AssertionEventMask;
- INT16U DeAssertionEventMask;
- INT16U DiscreteReadingMask;
- INT8U Units1;
- INT8U Units2;
- INT8U Units3;
- INT8U Linearization;
- INT8U M;
- INT8U M_Tolerance;
- INT8U B;
- INT8U B_Accuracy;
- INT8U Accuracy;
- INT8U R_B_Exp;
- INT8U Flags;
- INT8U NominalReading;
- INT8U NormalMax;
- INT8U NormalMin;
- INT8U MaxReading;
- INT8U MinReading;
- INT8U UpperNonRecoverable;
- INT8U UpperCritical;
- INT8U UpperNonCritical;
- INT8U LowerNonRecoverable;
- INT8U LowerCritical;
- INT8U LowerNonCritical;
- INT8U PositiveHysterisis;
- INT8U NegativeHysterisis;
- INT8U Reserved1;
- INT8U Reserved2;
- INT8U OEMField;
- INT8U IDStrTypeLen;
- INT8S IDStr [MAX_ID_STR_LEN];
- } PACKED FullSensorRec_T;
- /**
- * @struct CompactSensorRec_T
- * @brief Compact Sensor Record
- **/
- typedef struct
- {
- /* SENSOR RECORD HEADER */
- SDRRecHdr_T hdr;
- /* RECORD KEY BYTES */
- INT8U OwnerID;
- INT8U OwnerLUN;
- INT8U SensorNum;
- /* RECORD BODY BYTES */
- INT8U EntityID;
- INT8U EntityIns;
- INT8U SensorInit;
- INT8U SensorCaps;
- INT8U SensorType;
- INT8U EventTypeCode;
- INT16U AssertionEventMask;
- INT16U DeAssertionEventMask;
- INT16U DiscreteReadingMask;
- INT8U Units1;
- INT8U Units2;
- INT8U Units3;
- INT16U RecordSharing;
- INT8U PositiveHysteris;
- INT8U NegativeHysterisis;
- INT8U Reserved1;
- INT8U Reserved2;
- INT8U Reserved3;
- INT8U OEMField;
- INT8U IDStrTypeLen;
- INT8S IDStr [MAX_ID_STR_LEN];
- } PACKED CompactSensorRec_T;
- /**
- * @struct
- * @brief Common structure for both Full and Compact sensor Record.
- */
- typedef struct
- {
- /* SENSOR RECORD HEADER */
- SDRRecHdr_T hdr;
- /* RECORD KEY BYTES */
- INT8U OwnerID;
- INT8U OwnerLUN;
- INT8U SensorNum;
- /* RECORD BODY BYTES */
- INT8U EntityID;
- INT8U EntityIns;
- INT8U SensorInit;
- INT8U SensorCaps;
- INT8U SensorType;
- INT8U EventTypeCode;
- INT16U AssertionEventMask;
- INT16U DeAssertionEventMask;
- INT16U DiscreteReadingMask;
- INT8U Units1;
- INT8U Units2;
- INT8U Units3;
- } PACKED CommonSensorRec_T;
- /**
- * @struct EvtOnlySensorRec_T
- * @brief Event only Sensor Record
- **/
- typedef struct
- {
- /* SENSOR RECORD HEADER */
- SDRRecHdr_T hdr;
- /* RECORD KEY BYTES */
- uint8 OwnerID;
- uint8 OwnerLUN;
- uint8 SensorNum;
- /* RECORD BODY BYTES */
- uint8 EntityID;
- uint8 EntityIns;
- uint8 SensorType;
- uint8 EventTypeCode;
- uint16 RecordSharing;
- uint8 Reserved1;
- uint8 OEMField;
- uint8 IDStrTypeLen;
- char IDStr [MAX_ID_STR_LEN];
- } PACKED EvtOnlySensorRec_T;
- /**
- * @struct MgmtCtrlrConfirmRec_T
- * @brief Management Controller Confirmation Record
- **/
- typedef struct
- {
- /* SENSOR RECORD HEADER */
- SDRRecHdr_T hdr;
- /* RECORD KEY BYTES */
- INT8U DevSlaveAddr;
- INT8U DevID;
- INT8U ChannelNum;
- /* RECORD BODY BYTES */
- INT8U FirmwareRev1;
- INT8U FirmwareRev2;
- INT8U IPMIVer;
- INT8U MftrID [3];
- INT8U ProdID [2];
- INT8U DevGUID [MAX_ID_STR_LEN];
- } PACKED MgmtCtrlrConfirmRec_T;
- /**
- * @struct MgmtCtrlrDevLocator_T
- * @brief Management Controller Device Locator Record
- **/
- typedef struct
- {
- /* SENSOR RECORD HEADER */
- SDRRecHdr_T hdr;
- /* RECORD KEY BYTES */
- INT8U DevSlaveAddr;
- INT8U ChannelNum;
- /* RECORD BODY BYTES */
- INT8U PowerStateNotification;
- INT8U DeviceCaps;
- INT8U reserved [3];
- INT8U EntityID;
- INT8U EntityIns;
- INT8U OEMField;
- INT8U IDStrLen;
- INT8S DevIdStr [MAX_ID_STR_LEN];
- } PACKED MgmtCtrlrDevLocator_T;
- /**
- * @struct GnrcDevLocatorRec_T
- * @brief Generic Device Locator Record
- **/
- typedef struct
- {
- /* SENSOR RECORD HEADER */
- SDRRecHdr_T hdr;
- /* RECORD KEY BYTES */
- INT8U DevAccessAddr;
- INT8U DevSlaveAddr;
- INT8U LUNBusID;
- /* RECORD BODY BYTES */
- INT8U AddrSpan;
- INT8U Reserved;
- INT8U DevType;
- INT8U DevTypeModifier;
- INT8U EntityID;
- INT8U EntityIns;
- INT8U OEMField;
- INT8U IDStrLen;
- INT8S DevIdStr [MAX_ID_STR_LEN];
- } PACKED GnrcDevLocatorRec_T;
- /**
- * @struct FRUcDevLocatorRec_T
- * @brief FRU Device Locator Record
- **/
- typedef struct
- {
- /* SENSOR RECORD HEADER */
- SDRRecHdr_T hdr;
- /* RECORD KEY BYTES */
- INT8U DevAccessAddr;
- INT8U FRUIDSlaveAddr;
- INT8U AccessLUNBusID;
- INT8U ChannelNumber;
- /* RECORD BODY BYTES */
- INT8U Reserved;
- INT8U DevType;
- INT8U DevTypeModifier;
- INT8U EntityID;
- INT8U EntityIns;
- INT8U OEMField;
- INT8U IDStrLen;
- INT8S DevIdStr [MAX_ID_STR_LEN];
- } PACKED FRUDevLocatorRec_T;
- /**
- * @struct OEM_FRURec_T
- * @brief OEM FRU Record Info
- **/
- typedef struct
- {
- /*SENSOR RECORD HEADER*/
- SDRRecHdr_T hdr;
- /*RECORD BODY BYTES*/
- INT8U Mfg_ID1;
- INT8U Mfg_ID2;
- INT8U Mfg_ID3;
- INT8U OEM_Fru;
- INT8U DeviceID;
- INT16U Size;
- INT8U AccessType;
- INT8U EntityID;
- INT8U EntityIns;
- INT8U IDStrLen;
- INT8S FilePath[MAX_FRU_SDR_STR_SIZE];
- } PACKED OEM_FRURec_T;
- /**
- * @struct OEM_NMRec_T
- * @brief OEM NM Record Info
- **/
- typedef struct
- {
- /*SENSOR RECORD HEADER */
- SDRRecHdr_T hdr;
- /*RECORD BODY BYTES*/
- INT8U Mfg_ID1;
- INT8U Mfg_ID2;
- INT8U Mfg_ID3;
- INT8U RecordSubType;
- INT8U VersionNo;
- INT8U NMDevSlaveAddress;
- INT8U ChannelNumber;
- INT8U NMHealthEvtSensor;
- INT8U NMExceptionEvtSensor;
- INT8U NMOpCapSensor;
- INT8U NMAlertThresExSensor;
- }PACKED OEM_NMRec_T;
- /**
- * @struct BMCMsgChannelInfoRec_T
- * @brief BMC Mesage Channel info Record
- **/
- typedef struct
- {
- /* SENSOR RECORD HEADER */
- SDRRecHdr_T hdr;
- /* RECORD BODY BYTES */
- INT8U MsgChannel0Info;
- INT8U MsgChannel1Info;
- INT8U MsgChannel2Info;
- INT8U MsgChannel3Info;
- INT8U MsgChannel4Info;
- INT8U MsgChannel5Info;
- INT8U MsgChannel6Info;
- INT8U MsgChannel7Info;
- INT8U MessagingINTType;
- INT8U EvtMsgBufINTType;
- INT8U Reserved;
- } PACKED BMCMsgChannelInfoRec_T;
- /**
- * @struct SDRRec_T
- * @brief Complete unionized record structure with unions for
- * easy reference to different types
- **/
- typedef struct
- {
- SDRRecHdr_T hdr;
- union
- {
- FullSensorRec_T full_sensor_rec;
- CompactSensorRec_T compact_sensor_rec;
- MgmtCtrlrConfirmRec_T mc_confim_rec;
- MgmtCtrlrDevLocator_T mc_dev_locator_rec;
- GnrcDevLocatorRec_T gen_dev_locator_rec;
- FRUDevLocatorRec_T fru_dev_locator_rec;
- BMCMsgChannelInfoRec_T bmc_msg_chnl_info_rec;
- }
- type;
- } PACKED SDRRec_T;
- #pragma pack( )
- #endif /* IPMI_SDR_RECORD_H */
|