com_IPMI_PEF.h 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. /****************************************************************
  2. ****************************************************************
  3. ** **
  4. *** (C)Copyright 2005-2006, American Megatrends Inc. **
  5. ** **
  6. ** All Rights Reserved. **
  7. ** **
  8. ** 6145-F, Northbelt Parkway, Norcross, **
  9. ** **
  10. ** Georgia - 30071, USA. Phone-(770)-246-8600. **
  11. ** **
  12. ****************************************************************
  13. ****************************************************************
  14. *****************************************************************
  15. *
  16. * ipmi_PEF.h
  17. * AppDevice Commands Handler
  18. *
  19. * Author: Govind Kothandapani <govindk@ami.com>
  20. * : Rama Bisa <ramab@ami.com>
  21. * : Basavaraj Astekar <basavaraja@ami.com>
  22. * : Bakka Ravinder Reddy bakkar@ami.com>
  23. *
  24. *****************************************************************/
  25. #ifndef IPMI_PEFDEV_H
  26. #define IPMI_PEFDEV_H
  27. #include <stdint.h>
  28. #pragma pack( 1 )
  29. #define ALERT_STR_MAX_BLOCKS 0x3
  30. #define ALERT_STR_BLOCK_SIZE 0x10
  31. #define MAX_ALERT_ENTRIES 127
  32. #define MAX_PEF_ENTRIES 127
  33. #define MAX_ALERT_STRING_LENGTH 48
  34. #define MAX_PEF_CONF_PARAM 0x0F
  35. #define MIN_PEF_OEM_CONF_PARAM 96
  36. #define MAX_PEF_OEM_CONF_PARAM 127
  37. /**
  38. * @struct EvtFilterTblEntry_T
  39. * @brief Event Filter table entry format.
  40. **/
  41. typedef struct
  42. {
  43. uint8_t FilterConfig; /**< Filter configuration. */
  44. uint8_t EvtFilterAction; /**< Filter Action. */
  45. uint8_t AlertPolicyNum; /**< Alert Policy Number. */
  46. uint8_t EventSeverity; /**< Event Severity. */
  47. uint8_t GenIDByte1; /**< Event Gen ID Byte 1. */
  48. uint8_t GenIDByte2; /**< Channel Number/LUN. */
  49. uint8_t SensorType; /**< Sensor Type. */
  50. uint8_t SensorNum; /**< Sensor Number. */
  51. uint8_t EventTrigger; /**< Event Trigger Reading, 0xff - match any. */
  52. uint16_t EventData1OffsetMask; /**< Event Data1 offset Mask. */
  53. uint8_t EventData1ANDMask; /**< Event Data1 offset AND Mask. */
  54. uint8_t EventData1Cmp1; /**< Event Data1 Compare 1 Mask. */
  55. uint8_t EventData1Cmp2; /**< Event Data1 Compare 2 Mask. */
  56. uint8_t EventData2ANDMask; /**< Event Data1 offset AND Mask. */
  57. uint8_t EventData2Cmp1; /**< Event Data1 Compare 1 Mask. */
  58. uint8_t EventData2Cmp2; /**< Event Data1 Compare 2 Mask. */
  59. uint8_t EventData3ANDMask; /**< Event Data1 offset AND Mask. */
  60. uint8_t EventData3Cmp1; /**< Event Data1 Compare 1 Mask. */
  61. uint8_t EventData3Cmp2; /**< Event Data1 Compare 2 Mask. */
  62. } EvtFilterTblEntry_T;
  63. /**
  64. * @struct AlertPolicyTblEntry_T
  65. * @brief Alert Policy Entry structure
  66. **/
  67. typedef struct
  68. {
  69. uint8_t AlertNum; /**< Alert policy no. */
  70. uint8_t ChannelDestSel; /**< Destination selector. */
  71. uint8_t AlertStingkey; /**< Alert String key. */
  72. } AlertPolicyTblEntry_T;
  73. /**
  74. * @struct AlertStringTbl_T
  75. * Alert String Table
  76. **/
  77. typedef struct
  78. {
  79. uint8_t EventFilterSel;
  80. uint8_t AlertStringSet;
  81. uint8_t AlertString [ALERT_STR_MAX_BLOCKS] [ALERT_STR_BLOCK_SIZE];
  82. } AlertStringTbl_T;
  83. /* GetPEFCapRes_T */
  84. typedef struct
  85. {
  86. uint8_t CompletionCode;
  87. uint8_t PEFVersion;
  88. uint8_t ActionSupport;
  89. uint8_t TotalEntries;
  90. } GetPEFCapRes_T;
  91. /* ArmPEFTmrRes_T */
  92. typedef struct
  93. {
  94. uint8_t CompletionCode;
  95. uint8_t PresentTmrVal;
  96. } ArmPEFTmrRes_T;
  97. /* GetPEFConfigReq_T */
  98. typedef struct
  99. {
  100. uint8_t ParamSel;
  101. uint8_t SetSel;
  102. uint8_t BlockSel;
  103. } GetPEFConfigReq_T;
  104. /* GetPEFConfigRes_T */
  105. typedef struct
  106. {
  107. uint8_t CompletionCode;
  108. uint8_t PEFVersion;
  109. } GetPEFConfigRes_T;
  110. /* SetLastEvtIDReq_T */
  111. typedef struct
  112. {
  113. uint8_t SetRecIDType;
  114. uint16_t RecordID;
  115. } SetLastEvtIDReq_T;
  116. /* GetLastEvtIDRes_T */
  117. typedef struct
  118. {
  119. uint8_t CompletionCode;
  120. uint32_t RecentTimestamp;
  121. uint16_t LastSELRecord;
  122. uint16_t LastSWProcessedID;
  123. uint16_t LastBMCProcessedID;
  124. } GetLastEvtIDRes_T;
  125. /* AlertImmReq_T */
  126. typedef struct
  127. {
  128. uint8_t ChannelNo;
  129. uint8_t DestSel;
  130. uint8_t AlertStrSel;
  131. uint8_t GenID ;
  132. uint8_t EvMRev;
  133. uint8_t SensorType;
  134. uint8_t SensorNum;
  135. uint8_t EvtDirType;
  136. uint8_t EvtData1;
  137. uint8_t EvtData2;
  138. uint8_t EvtData3;
  139. } AlertImmReq_T;
  140. typedef struct
  141. {
  142. uint8_t CompletionCode;
  143. uint8_t Status;
  144. } AlertImmRes_T;
  145. /* PETAckReq_T */
  146. typedef struct
  147. {
  148. uint16_t SequenceNum;
  149. uint32_t Timestamp;
  150. uint8_t EventSrcType;
  151. uint8_t SensorDevice;
  152. uint8_t SensorNum;
  153. uint8_t EventData1;
  154. uint8_t EventData2;
  155. uint8_t EventData3;
  156. } PETAckReq_T;
  157. #pragma pack( )
  158. #endif /* IPMI_PEFDEV_H */