IPMI_DCM.h 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. /****************************************************************
  2. ****************************************************************
  3. ** **
  4. ** (C)Copyright 2008-2009, American Megatrends Inc. **
  5. ** **
  6. ** All Rights Reserved. **
  7. ** **
  8. ** Suite 200, 5555 Oakbrook Pkwy, Norcross **
  9. ** **
  10. ** Georgia - 30093, USA. Phone-(770)-246-8600. **
  11. ** **
  12. ****************************************************************
  13. ****************************************************************
  14. ****************************************************************
  15. *
  16. * IPMI_DCM.h
  17. * DCMDevice Commands Handler structures & macros
  18. *
  19. * Author: Rama Bisa <ramab@ami.com>
  20. *
  21. *****************************************************************/
  22. #ifndef IPMI_DCMDEV_H
  23. #define IPMI_DCMDEV_H
  24. #include "Types.h"
  25. #pragma pack( 1 )
  26. /* SupportedDCMICap_T */
  27. typedef struct
  28. {
  29. INT8U MandatoryPlatformCaps;
  30. INT8U OptionalPlatformCaps;
  31. INT8U ManageAccessCaps;
  32. } PACKED SupportedDCMICap_T;
  33. /* MandatoryPlatformAttr_T */
  34. typedef struct
  35. {
  36. INT16U SELAttribs;
  37. INT8U IdentifyAttribs;
  38. INT8U TempMonitoring;
  39. INT8U TempMonitoringSampleFreq;
  40. } PACKED MandatoryPlatformAttr_T;
  41. /* OptionalPlatformAttr_T */
  42. typedef struct
  43. {
  44. INT8U PMDeviceSlaveAddr;
  45. INT8U PMControllerChannelNumber;
  46. } PACKED OptionalPlatformAttr_T;
  47. /* ManageAccessAttr_T */
  48. typedef struct
  49. {
  50. INT8U PrimaryLANChannelNum;
  51. INT8U SecondaryLANChannelNum;
  52. INT8U SerialTMODEChannelNum;
  53. } PACKED ManageAccessAttr_T;
  54. typedef struct
  55. {
  56. INT8U NumberofRollingTimePeriods;
  57. INT8U RollingTimePeriods;
  58. }EnhancedSystemAttr_T;
  59. /* DCMICapUn_T */
  60. typedef union
  61. {
  62. SupportedDCMICap_T SupDCMICap;
  63. MandatoryPlatformAttr_T ManPlatformAttr;
  64. OptionalPlatformAttr_T OptionalPlatformAttr;
  65. ManageAccessAttr_T ManageAccessAttr;
  66. EnhancedSystemAttr_T EnhancedSystemAttr;
  67. } DCMICapUn_T;
  68. /* GetDCMICapReq_T */
  69. typedef struct
  70. {
  71. INT8U GroupExtnID;
  72. INT8U ParamSelector;
  73. } PACKED GetDCMICapReq_T;
  74. /* GetDCMICapRes_T */
  75. typedef struct
  76. {
  77. INT8U CompletionCode;
  78. INT8U GroupExtnID;
  79. INT8U DCMIMajorVersion;
  80. INT8U DCMIMinorVersion;
  81. INT8U ParamRevision;
  82. DCMICapUn_T CapData;
  83. } PACKED GetDCMICapRes_T;
  84. /* GetDCMICCRev_T */
  85. typedef struct
  86. {
  87. INT8U CompletionCode;
  88. INT8U GroupExtnID;
  89. INT8U DCMIMajorVersion;
  90. INT8U DCMIMinorVersion;
  91. INT8U ParamRevision;
  92. } PACKED GetDCMICCRev_T;
  93. /* GetAssetTagReq_T */
  94. typedef struct
  95. {
  96. INT8U GroupExtnID;
  97. INT8U OffsetToRead;
  98. INT8U NumBytesToRead;
  99. } PACKED GetAssetTagReq_T;
  100. #define READ_LIMIT_IN_ONE_TRANSACTION 0x10
  101. /* GetAssetTagRes_T */
  102. typedef struct
  103. {
  104. INT8U CompletionCode;
  105. INT8U GroupExtnID;
  106. INT8U TotalAssetTagLen;
  107. INT8U Data [READ_LIMIT_IN_ONE_TRANSACTION];
  108. } PACKED GetAssetTagRes_T;
  109. /* GetDCMISensorInfoReq_T */
  110. typedef struct
  111. {
  112. INT8U GroupExtnID;
  113. INT8U SensorType;
  114. INT8U EntityID;
  115. INT8U EntiryInstance;
  116. INT8U StartingEntityInstance;
  117. } PACKED GetDCMISensorInfoReq_T;
  118. #define MAX_RECORD_IDS_IN_ONE_TRANSACTION 8
  119. /* GetDCMISensorInfoRes_T */
  120. typedef struct
  121. {
  122. INT8U CompletionCode;
  123. INT8U GroupExtnID;
  124. INT8U TotalInstances;
  125. INT8U NumRecordIDs;
  126. INT16U Data [MAX_RECORD_IDS_IN_ONE_TRANSACTION];
  127. } PACKED GetDCMISensorInfoRes_T;
  128. /* GetPowerReadingReq_T */
  129. typedef struct
  130. {
  131. INT8U GroupExtnID;
  132. INT8U Mode;
  133. INT8U Reserved1;
  134. INT8U Reserved2;
  135. } PACKED GetPowerReadingReq_T;
  136. /* GetPowerReadingRes_T */
  137. typedef struct
  138. {
  139. INT8U CompletionCode;
  140. INT8U GroupExtnID;
  141. INT16U CurPwrInWatts;
  142. INT16U MinPwrInWatts;
  143. INT16U MaxPwrInWatts;
  144. INT16U AvgPwrInWatts;
  145. INT32U TimeStamp;
  146. INT32U TimePeriodForStatsInMsec;
  147. INT8U PwrReadingState;
  148. } PACKED GetPowerReadingRes_T;
  149. /* GetPowerLimitReq_T */
  150. typedef struct
  151. {
  152. INT8U GroupExtnID;
  153. INT8U Reserved1;
  154. INT8U Reserved2;
  155. } PACKED GetPowerLimitReq_T;
  156. /* GetPowerLimitRes_T */
  157. typedef struct
  158. {
  159. INT8U CompletionCode;
  160. INT8U GroupExtnID;
  161. INT8U Reserved1;
  162. INT8U Reserved2;
  163. INT8U ExceptionAction;
  164. INT16U PwrLimitInWatts;
  165. INT32U CorrectionTimeLimitInMsec;
  166. INT8U Reserved3;
  167. INT8U Reserved4;
  168. INT16U MangSamplingTimeInSecs;
  169. } PACKED GetPowerLimitRes_T;
  170. /* SetPowerLimitReq_T */
  171. typedef struct
  172. {
  173. INT8U GroupExtnID;
  174. INT16U Reserved1;
  175. INT8U Reserved2;
  176. INT8U ExceptionAction;
  177. INT16U PwrLimitInWatts;
  178. INT32U CorrectionTimeLimitInMsec;
  179. INT16U Reserved3;
  180. INT16U MangSamplingTimeInSecs;
  181. } PACKED SetPowerLimitReq_T;
  182. /* SetPowerLimitRes_T */
  183. typedef struct
  184. {
  185. INT8U CompletionCode;
  186. INT8U GroupExtnID;
  187. } PACKED SetPowerLimitRes_T;
  188. /* ActivatePwrLimitReq_T */
  189. typedef struct
  190. {
  191. INT8U GroupExtnID;
  192. INT8U PowerLimitActivation;
  193. INT16U Reserved;
  194. } PACKED ActivatePwrLimitReq_T;
  195. /* ActivatePwrLimitRes_T */
  196. typedef struct
  197. {
  198. INT8U CompletionCode;
  199. INT8U GroupExtnID;
  200. } PACKED ActivatePwrLimitRes_T;
  201. /* SetAssetTagReq_T */
  202. typedef struct
  203. {
  204. INT8U GroupExtnID;
  205. INT8U OffsetToWrite;
  206. INT8U DataLen;
  207. INT8U Data [READ_LIMIT_IN_ONE_TRANSACTION];
  208. } PACKED SetAssetTagReq_T;
  209. /* SetAssetTagRes_T */
  210. typedef struct
  211. {
  212. INT8U CompletionCode;
  213. INT8U GroupExtnID;
  214. INT8U TotalAssetTagLen;
  215. } PACKED SetAssetTagRes_T;
  216. /* GetManagementControllerIdStringReq_T */
  217. typedef struct
  218. {
  219. INT8U GroupExtnID;
  220. INT8U OffsetToRead;
  221. INT8U NumBytesToRead;
  222. } PACKED GetManagementControllerIdStringReq_T;
  223. /* GetManagementControllerIdStringRes_T */
  224. typedef struct
  225. {
  226. INT8U CompletionCode;
  227. INT8U GroupExtnID;
  228. INT8U TotalLen;
  229. INT8U Data [READ_LIMIT_IN_ONE_TRANSACTION];
  230. } PACKED GetManagementControllerIdStringRes_T;
  231. /* SetManagementControllerIdStringReq_T */
  232. typedef struct
  233. {
  234. INT8U GroupExtnID;
  235. INT8U OffsetToWrite;
  236. INT8U DataLen;
  237. INT8U Data [READ_LIMIT_IN_ONE_TRANSACTION];
  238. } PACKED SetManagementControllerIdStringReq_T;
  239. /* SetManagementControllerIdStringRes_T */
  240. typedef struct
  241. {
  242. INT8U CompletionCode;
  243. INT8U GroupExtnID;
  244. INT8U LastOffsetWritten;
  245. } PACKED SetManagementControllerIdStringRes_T;
  246. #define MAX_TEMP_INSTANCE 0xFF
  247. /*GetThermalLimitReq_T*/
  248. typedef struct
  249. {
  250. INT8U GroupExtnID;
  251. INT8U EntityID;
  252. INT8U EntityInst;
  253. }PACKED GetThermalLimitReq_T;
  254. /*GetThermalLimitRes_T*/
  255. typedef struct
  256. {
  257. INT8U CompletionCode;
  258. INT8U GroupExtnID;
  259. INT8U ExceptionAction;
  260. INT8U TempLimit;
  261. INT16U ExceptionTime;
  262. }PACKED GetThermalLimitRes_T;
  263. /*SetThermalLimitReq_T*/
  264. typedef struct
  265. {
  266. INT8U GroupExtnID;
  267. INT8U EntityID;
  268. INT8U EntityInst;
  269. INT8U ExceptionAction;
  270. INT8U TempLimit;
  271. INT16U ExceptionTime;
  272. }PACKED SetThermalLimitReq_T;
  273. /*SetThermalLimitRes_T*/
  274. typedef struct
  275. {
  276. INT8U CompletionCode;
  277. INT8U GroupExtnID;
  278. }PACKED SetThermalLimitRes_T;
  279. /*GetTemperatureReadingReq_T*/
  280. typedef struct
  281. {
  282. INT8U GroupExtnID;
  283. INT8U SensorType;
  284. INT8U EntityID;
  285. INT8U EntityInst;
  286. INT8U EntityInstStart;
  287. }PACKED GetTemperatureReadingReq_T;
  288. /*GetTemperatureReadingRes_T*/
  289. typedef struct
  290. {
  291. INT8U CompletionCode;
  292. INT8U GroupExtnID;
  293. INT8U TotalInstances;
  294. INT8U NoofInstance;
  295. INT16U Data[MAX_RECORD_IDS_IN_ONE_TRANSACTION];
  296. }PACKED GetTemperatureReadingRes_T;
  297. #pragma pack( )
  298. #endif /* IPMI_DCMDEV_H */