IPMI_OBSM+.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791
  1. /****************************************************************
  2. ** **
  3. ** (C)Copyright 2007-2008, American Megatrends Inc. **
  4. ** **
  5. ** All Rights Reserved. **
  6. ** **
  7. ** 5555, Oakbrook Parkway, Suite 200, Norcross, **
  8. ** **
  9. ** Georgia - 30093, USA. Phone-(770)-246-8600. **
  10. ** **
  11. ****************************************************************/
  12. /****************************************************************
  13. * @file IPMI_OBSM+.h
  14. * @author Velu <velmuruganv@amiindia.co.in>
  15. * @brief
  16. ****************************************************************/
  17. #ifndef IPMI_OBSMCMM_H
  18. #define IPMI_OBSMCMM_H
  19. #include "Types.h"
  20. #include "OBSMPort.h"
  21. /*** Definitions and Macros ***/
  22. #define OPEN_BLADE_ID 0x02
  23. #define DEFAULT_MODULE_FRU_DEV_ID 0x00
  24. #define CHASSIS_INVENTORY_FRU_ID 1
  25. #define MAX_PWR_SLOT_OFFSET 8
  26. #define MAX_NUM_PWR_LEVEL 21
  27. #define MAX_NUM_SLOTS_PER_MODULE 8
  28. #define MAX_SERVICE_NAME_LEN 32
  29. #define MAX_STRING_LEN 32
  30. #define MAX_TICKET_LEN 128
  31. #define MAX_URI_LEN 128
  32. #define PWR_DRAW_CURRENT_LEVEL 0x00
  33. #define PWR_DRAW_DESIRED_LEVEL 0x01
  34. #define PWR_DRAW_DISCRETE_LEVEL 0x00
  35. #define PWR_DRAW_RANGE_BASED 0x01
  36. #define SUPPORT_DYNAMIC_PWR_CONFIG 0x80
  37. #define SUPPORT_PWR_DRAW_FORMAT 0x40
  38. #define EVT_MSG_GEN_TYPE_MASK 0x01
  39. #define EVT_MSG_LUN_MASK 0x03
  40. #define EVT_MSG_GEN_TYPE_MNG_CONTRLR 0x00
  41. #define EVT_MSG_GEN_TYPE_SYS_SOFTWARE 0x01
  42. #define GET_SLOT_MODULECLASS(VAL) ((VAL & 0xF0) >> 4)
  43. #define GET_SLOT_MODULETYPE(VAL) (VAL & 0x0F)
  44. #define GET_SLOT_INSTANCE(VAL) ((VAL & 0xC0) >> 6)
  45. #define GET_SLOT_ID(VAL) (VAL & 0x3F)
  46. #define MOD_ACTIVATION 0x01
  47. #define MOD_DEACTIVATION 0x00
  48. #define PWR_PROPS_REQ_PWR_LEVEL(x) ((x) & 0x1F)
  49. #define SET_PWR_TYPE_SLOT_BYTE(T,S) (((T & 0x03)<<3) | (S & 0x07))
  50. #define ADDR_KEY_TYPE_PHY_SLOT_NUM 0x00
  51. #define ADDR_KEY_TYPE_BMI_ADDR 0x01
  52. #define OPEN_BLADE_SLOT_MAP_REC_ID 0x10
  53. #define OPEN_BLADE_INTER_CONN_REC_ID 0x11
  54. #define OPEN_BLADE_PWR_DOM_REC_ID 0x12
  55. #define OPEN_BLADE_PWR_UNIT_RED_REC_ID 0x13
  56. #define OPEN_BLADE_OUTPUT_CURR_REC_ID 0x14
  57. #define OPEN_BLADE_CHASSIS_COOL_REC_ID 0x15
  58. #define IFDOWN_ALL "/sbin/ifdown -a"
  59. #define IFUP_ALL "/sbin/ifup -a"
  60. /*** Typedef ***/
  61. /**
  62. * @enum OBSMModuleClass_E
  63. * @brief Module Class Definitions
  64. **/
  65. typedef enum{
  66. MODCLASS_BLADE,
  67. MODCLASS_SWITCH,
  68. MODCLASS_CHASSISMNGR,
  69. MODCLASS_POWER,
  70. MODCLASS_COOLING,
  71. MODCLASS_DISK,
  72. MODCLASS_OEM,
  73. MODCLASS_RESERVED /* 7h - Fh : Reserved */
  74. } OBSMModuleClass_E;
  75. /**
  76. * @enum OBSMBladeClassModuleType_E
  77. * @brief Blade Class Module Type Definitions
  78. **/
  79. typedef enum
  80. {
  81. BLADECLASS_TYPE_COMPUTEBLADE,
  82. BLADECLASS_TYPE_STORAGE,
  83. BLADECLASS_TYPEOEM,
  84. BLADECLASS_TYPE_RESERVED, /* 3h - Fh : Reserved */
  85. } OBSMBladeClassModuleType_E;
  86. /**
  87. * @enum OBSMSwitchClassModuleType_E
  88. * @brief Switch Class Module Type Definitions
  89. **/
  90. typedef enum
  91. {
  92. SWITCHCLASS_TYPE_PRIMARY,
  93. SWITCHCLASS_TYPE_SECONDARY,
  94. SWITCHCLASS_TYPE_PATCHBOARD,
  95. SWITCHCLASS_TYPE_OEM,
  96. SWITCHCLASS_TYPE_RESERVED, /* 4h - Fh : Reserved */
  97. } OBSMSwitchClassModuleType_E;
  98. /**
  99. * @enum OBSMChassisMngrClassModuleTye_E
  100. * @brief Chassis Manager Class Module Type Definitions
  101. **/
  102. typedef enum
  103. {
  104. CHASSISMNGRCLASS_TYPE_CMM,
  105. CHASSISMNGRCLASS_TYPE_RESERVED, /* 1h - Fh : Reserved */
  106. } OBSMChassisMngrClassModuleType_E;
  107. /**
  108. * @enum OBSMPwrClassModuleTye_E
  109. * @brief Power Class Module Type Definitions
  110. **/
  111. typedef enum
  112. {
  113. PWRCLASS_TYPE_PWRUNITCTLR,
  114. PWRCLASS_TYPE_PWRSUPPLY,
  115. } OBSMPwrClassModuleType_E;
  116. /**
  117. * @enum OBSMCoolingClassModuleType_E
  118. * @brief Cooling Class Module Type Definitions
  119. **/
  120. typedef enum
  121. {
  122. COOLINGCLASS_TYPE_COOLINGCTLR,
  123. COOLINGCLASS_TYPE_COOLINGMODULE,
  124. COOLINGCLASS_TYPE_RESERVED /* 2h - Fh : Reserved */
  125. } OBSMCoolingClassModuleType_E;
  126. /**
  127. * @enum OBSMModuleSiteType_E
  128. * @brief Module Site Type definitions
  129. **/
  130. typedef enum
  131. {
  132. SITETYPE_RESERVED0,
  133. SITETYPE_OPEN_BLADE_COMP_BLADE = 0x01,
  134. SITETYPE_ETHERNET_SWITCH,
  135. SITETYPE_FIBRE_CHANNEL_SWITCH,
  136. SITETYPE_PCI_EXP_SWITCH,
  137. SITETYPE_INFINIBAND_SWITCH,
  138. SITETYPE_DED_CHASSIS_MANAGEMENT_MODULE,
  139. SITETYPE_CHASSIS_CONFIG_INFORMATION,
  140. SITETYPE_PWR_UNIT_MODULE,
  141. SITETYPE_PWR_SUPPLY_MODULE,
  142. SITETYPE_FAN_COOLING_MODULE,
  143. SITETYPE_ALARM_BOARD,
  144. SITETYPE_MEZZ_BOARD,
  145. SITETYPE_MEMORY_MODULE,
  146. SITETYPE_STORAGE_CTRL_MODULE,
  147. SITETYPE_GENERIC_MODULE,
  148. } OBSMModuleSiteType_E;
  149. #pragma pack(1)
  150. /**
  151. * @struct GetOpenBladePropsReq_T
  152. * @brief Get Open Blade Properties command request structure
  153. **/
  154. typedef struct
  155. {
  156. INT8U openBladeId;
  157. } PACKED GetOpenBladePropsReq_T;
  158. /**
  159. * @struct GetOpenBladePropsRes_T
  160. * @brief Get Open Blade Properties command response structure
  161. **/
  162. typedef struct
  163. {
  164. INT8U completionCode;
  165. INT8U openBladeId;
  166. INT8U openBladeExtVer;
  167. INT8U slotCount;
  168. INT8U maxFRUDevId;
  169. } PACKED GetOpenBladePropsRes_T;
  170. /**
  171. * @struct GetAddrInfoReq_T
  172. * @brief Get Address Info request structure
  173. **/
  174. typedef struct
  175. {
  176. INT8U openBladeId;
  177. INT8U fruDevId;
  178. INT8U addrKeyType;
  179. INT8U addrKey;
  180. } PACKED OBSMGetAddrInfoReq_T;
  181. /**
  182. * @struct GetAddrInfoRes_T
  183. * @brief Get Address Info response structure
  184. **/
  185. typedef struct
  186. {
  187. INT8U completionCode;
  188. INT8U openBladeId;
  189. INT8U fruDevId;
  190. INT8U slotsOccupied;
  191. INT8U bmiAddr;
  192. INT8U siteType;
  193. } PACKED OBSMGetAddrInfoRes_T;
  194. /**
  195. * @struct OBSMPlatEvntMsgReq_T
  196. * @brief OBSM Platform Event Message request structure
  197. **/
  198. typedef struct
  199. {
  200. INT8U openBladeId;
  201. INT8U genId[2];
  202. INT8U evMRev;
  203. INT8U sensorType;
  204. INT8U sensorNum;
  205. INT8U evtDirType;
  206. INT8U evtData1;
  207. INT8U evtData2;
  208. INT8U evtData3;
  209. } PACKED OBSMPlatEvntMsgReq_T;
  210. /**
  211. * @struct OBSMPlatEvntMsgRes_T
  212. * @brief OBSM Platform Event Message response structure
  213. **/
  214. typedef struct
  215. {
  216. INT8U completionCode;
  217. INT8U openBladeId;
  218. } PACKED OBSMPlatEvntMsgRes_T;
  219. /**
  220. * @struct MgdModBMICtrlReq_T
  221. * @brief Managed Module BMI Control request structure
  222. **/
  223. typedef struct
  224. {
  225. INT8U openBladeId;
  226. INT8U ipmbCtrl;
  227. } PACKED MgdModBMICtrlReq_T;
  228. /**
  229. * @struct MgdModBMICtrlRes_T
  230. * @brief Managed Module BMI Control response structure
  231. **/
  232. typedef struct
  233. {
  234. INT8U completionCode;
  235. INT8U openBladeId;
  236. INT8U ipmbState;
  237. } PACKED MgdModBMICtrlRes_T;
  238. /**
  239. * @struct MgdModPayldCtrlReq_T
  240. * @brief Managed Module Payload Control request structure
  241. **/
  242. typedef struct
  243. {
  244. INT8U openBladeId;
  245. INT8U fruDevId;
  246. INT8U payloadId;
  247. INT8U payldCtrlOpt;
  248. } PACKED MgdModPayldCtrlReq_T;
  249. /**
  250. * @struct MgdModPayldCtrlRes_T
  251. * @brief Managed Module Payload Control response structure
  252. **/
  253. typedef struct
  254. {
  255. INT8U completionCode;
  256. INT8U openBladeId;
  257. } PACKED MgdModPayldCtrlRes_T;
  258. /**
  259. * @struct SetSysEvntLogPolicyReq_T
  260. * @brief Set System Event Log Policy request structure
  261. **/
  262. typedef struct
  263. {
  264. INT8U openBladeId;
  265. INT8U policyCtrl;
  266. } PACKED SetSysEvntLogPolicyReq_T;
  267. /**
  268. * @struct SetSysEvntLogPolicyRes_T
  269. * @brief Set System Event Log Policy response structure
  270. **/
  271. typedef struct
  272. {
  273. INT8U completionCode;
  274. INT8U openBladeId;
  275. INT8U currentPolicy;
  276. } PACKED SetSysEvntLogPolicyRes_T;
  277. /**
  278. * @struct SetModActvnPolicyReq_T
  279. * @brief Set Module Activation Policy request structure
  280. **/
  281. typedef struct
  282. {
  283. INT8U openBladeId;
  284. INT8U fruDevId;
  285. INT8U activationPolicy;
  286. } PACKED SetModActvnPolicyReq_T;
  287. /**
  288. * @struct SetModActvnPolicyRes_T
  289. * @brief Set Module Activation Policy response structure
  290. **/
  291. typedef struct
  292. {
  293. INT8U completionCode;
  294. INT8U openBladeId;
  295. } PACKED SetModActvnPolicyRes_T;
  296. /**
  297. * @struct GetModActvnPolicyReq_T
  298. * @brief Get Module Activation Policy request structure
  299. **/
  300. typedef struct
  301. {
  302. INT8U openBladeId;
  303. INT8U fruDevId;
  304. } PACKED GetModActvnPolicyReq_T;
  305. /**
  306. * @struct GetModActvnPolicyRes_T
  307. * @brief Get Module Activation Policy response structure
  308. **/
  309. typedef struct
  310. {
  311. INT8U completionCode;
  312. INT8U openBladeId;
  313. INT8U activationPolicy;
  314. } PACKED GetModActvnPolicyRes_T;
  315. /**
  316. * @struct SetModActvnReq_T
  317. * @brief Set Module Activation request structure
  318. **/
  319. typedef struct
  320. {
  321. INT8U openBladeId;
  322. INT8U fruDevId;
  323. INT8U modActvnDeactvn;
  324. } PACKED SetModActvnReq_T;
  325. /**
  326. * @struct SetModActvnRes_T
  327. * @brief Set Module Activation response structures
  328. **/
  329. typedef struct
  330. {
  331. INT8U completionCode;
  332. INT8U openBladeId;
  333. } PACKED SetModActvnRes_T;
  334. /**
  335. * @struct SetPwrLevelReq_T
  336. * @brief Set Power Level request structure
  337. **/
  338. typedef struct
  339. {
  340. INT8U openBladeId;
  341. INT8U fruDevId;
  342. INT8U slotPwrLevel[MAX_PWR_SLOT_OFFSET];
  343. } PACKED SetPwrLevelReq_T;
  344. /**
  345. * @struct SetPwrLevelRes_T
  346. * @brief Set Power Level request structure
  347. **/
  348. typedef struct
  349. {
  350. INT8U completionCode;
  351. INT8U openBladeId;
  352. } PACKED SetPwrLevelRes_T;
  353. /**
  354. * @struct GetPwrLevelReq_T
  355. * @brief Get Power Level request structures
  356. **/
  357. typedef struct
  358. {
  359. INT8U openBladeId;
  360. INT8U fruDevId;
  361. INT8U pwrTypeSlot;
  362. } PACKED GetPwrLevelReq_T;
  363. /**
  364. * @struct GetPwrLevelRes_T
  365. * @brief Get Power Level response structures
  366. **/
  367. typedef struct
  368. {
  369. INT8U completionCode;
  370. INT8U openBladeId;
  371. INT8U pwrProperties;
  372. INT8U pwrMultiplier;
  373. INT8U pwrLevel [MAX_NUM_PWR_LEVEL];
  374. } PACKED GetPwrLevelRes_T;
  375. /**
  376. * @struct RenegotiatePwrReq_T
  377. * @brief Renegotiate Power request structure
  378. **/
  379. typedef struct
  380. {
  381. INT8U openBladeId;
  382. INT8U fruDevId;
  383. } PACKED RenegotiatePwrReq_T;
  384. /**
  385. * @struct RenegotiatePwrRes_T
  386. * @brief Renegotiate Power response structure
  387. **/
  388. typedef struct
  389. {
  390. INT8U completionCode;
  391. INT8U openBladeId;
  392. } PACKED RenegotiatePwrRes_T;
  393. /**
  394. * @struct GetServiceInfoReq_T
  395. * @brief Get Service Information from the serice index
  396. **/
  397. typedef struct
  398. {
  399. INT8U openBladeId;
  400. INT8U serviceIndex;
  401. } PACKED OBSMGetServiceInfoReq_T;
  402. /**
  403. * @struct GetServiceInfoRes_T
  404. * @brief Get Service Information from the serice index
  405. **/
  406. typedef struct
  407. {
  408. INT8U completionCode;
  409. INT8U openBladeId;
  410. INT8U serviceClass;
  411. INT8U transport;
  412. INT8U enterpriseNumber[3];
  413. INT16U protocolNumber;
  414. INT8U protocolCapabilities;
  415. INT8U maxSessionSupport;
  416. INT8U serviceName[MAX_SERVICE_NAME_LEN];
  417. INT8U portNumberCount;
  418. INT8U portNumbers[MAX_STRING_LEN]; /* 2 bytes port number, support max upto 64 port number */
  419. } PACKED OBSMGetServiceInfoRes_T;
  420. /**
  421. * @struct GetAppletPackageURIReq_T
  422. * @brief Get Applet Package URI from the blade
  423. **/
  424. typedef struct
  425. {
  426. INT8U openBladeId;
  427. } PACKED OBSMGetAppletPackageURIReq_T;
  428. /**
  429. * @struct GetAppletPackageURIRes_T
  430. * @brief Get Applet Package URI from the blade
  431. **/
  432. typedef struct
  433. {
  434. INT8U completionCode;
  435. INT8U openBladeId;
  436. INT8U versionString[MAX_STRING_LEN];
  437. INT8U appletPackageURI[MAX_URI_LEN];
  438. } PACKED OBSMGetAppletPackageURIRes_T;
  439. /**
  440. * @struct GetServiceEnableStateReq_T
  441. * @brief Get service enable state
  442. **/
  443. typedef struct
  444. {
  445. INT8U openBladeId;
  446. } PACKED OBSMGetServiceEnableStateReq_T;
  447. /**
  448. * @struct GetServiceEnableStateRes_T
  449. * @brief Get service enable state
  450. **/
  451. typedef struct
  452. {
  453. INT8U completionCode;
  454. INT8U openBladeId;
  455. INT32U serviceIndexBitmap;
  456. } PACKED OBSMGetServiceEnableStateRes_T;
  457. /**
  458. * @struct SetServiceEnableStateReq_T
  459. * @brief Set service enable state
  460. **/
  461. typedef struct
  462. {
  463. INT8U openBladeId;
  464. INT8U stateOperation;
  465. INT32U serviceIndexBitmap;
  466. } PACKED OBSMSetServiceEnableStateReq_T;
  467. /**
  468. * @struct SetServiceEnableStateRes_T
  469. * @brief Set service enable state
  470. **/
  471. typedef struct
  472. {
  473. INT8U completionCode;
  474. INT8U openBladeId;
  475. INT32U serviceIndexBitmap;
  476. } PACKED OBSMSetServiceEnableStateRes_T;
  477. /**
  478. * @struct SetServiceTicketReq_T
  479. * @brief Set service ticket
  480. **/
  481. typedef struct
  482. {
  483. INT8U openBladeId;
  484. INT8U serviceIndex;
  485. INT8U expirySeconds;
  486. INT8U serviceTicket[MAX_TICKET_LEN];
  487. } PACKED OBSMSetServiceTicketReq_T;
  488. /**
  489. * @struct SetServiceTicketRes_T
  490. * @brief Set service ticket
  491. **/
  492. typedef struct
  493. {
  494. INT8U completionCode;
  495. INT8U openBladeId;
  496. INT8U serviceSessionId;
  497. } PACKED OBSMSetServiceTicketRes_T;
  498. /**
  499. * @struct StopServiceSessionReq_T
  500. * @brief Stop service session
  501. **/
  502. typedef struct
  503. {
  504. INT8U openBladeId;
  505. INT8U serviceIndex;
  506. INT8U serviceSessionId;
  507. INT8U terminationString[MAX_STRING_LEN];
  508. } PACKED OBSMStopServiceSessionReq_T;
  509. /**
  510. * @struct StopServiceSessionRes_T
  511. * @brief Stop service session
  512. **/
  513. typedef struct
  514. {
  515. INT8U completionCode;
  516. INT8U openBladeId;
  517. INT8U serviceSessionId;
  518. } PACKED OBSMStopServiceSessionRes_T;
  519. /**
  520. * Chassis Inventory Records Structures
  521. **/
  522. /**
  523. * @struct FRUMultiRecHdr_T
  524. * @brief FRU MultiRecord Header
  525. **/
  526. typedef struct
  527. {
  528. INT8U recTypeId;
  529. INT8U recFormatVersionEOL;
  530. INT8U recLength;
  531. INT8U recChecksum; /* zero checksum */
  532. INT8U hdrChecksum; /* zero checksum */
  533. } PACKED FRUMultiRecHdr_T;
  534. /**
  535. * @struct ChassisInvInfoHdr_T
  536. * @brief Chassis Inventory FRU Header
  537. **/
  538. typedef struct
  539. {
  540. FRUMultiRecHdr_T fruMultiRecHdr;
  541. INT8U mfgId[3];
  542. INT8U openBladeRecId;
  543. INT8U recFormVer;
  544. } PACKED ChassisInvInfoHdr_T;
  545. /**
  546. * @struct SlotMapSubRec_T
  547. * @brief Open Blade Slot Map sub Record
  548. **/
  549. typedef struct
  550. {
  551. INT8U modClassType;
  552. INT8U slotIdIns;
  553. } PACKED SlotMapSubRec_T;
  554. /**
  555. * @struct SlotMapRec_T
  556. * @brief Open Blade Slot Map Record
  557. **/
  558. typedef struct
  559. {
  560. ChassisInvInfoHdr_T chassisInvInfoHdr;
  561. INT8U slotCount;
  562. SlotMapSubRec_T slotMapSubRec[MAX_SLOT_NUM_SUPPORTED];
  563. } PACKED SlotMapRec_T;
  564. /**
  565. * @struct InterConnTopSubRec_T
  566. * @brief Open Blade Interconnection topology sub record
  567. **/
  568. typedef struct
  569. {
  570. INT8U bladeSlotNum;
  571. INT8U bladeChanNum;
  572. } PACKED InterConnTopSubRec_T;
  573. /**
  574. * @struct InterConnTopRec_T
  575. * @brief Open Blade Interconnection topology record
  576. **/
  577. typedef struct
  578. {
  579. ChassisInvInfoHdr_T chassisInvInfoHdr;
  580. INT8U switchSlotNum;
  581. INT8U channelCount;
  582. InterConnTopSubRec_T interConnTopSubRec[MAX_CHAN_NUM_SUPPORTED];
  583. } PACKED InterConnTopRec_T;
  584. /**
  585. * @struct ChassisPwrDomRec_T
  586. * @brief Open Blade Chassis Power Domain record
  587. **/
  588. typedef struct
  589. {
  590. ChassisInvInfoHdr_T chassisInvInfoHdr;
  591. INT8U pwrUnitSlotNum;
  592. INT8U secPwrUnitSlotNum;
  593. INT8U firstPwrSupplySlotNum;
  594. INT8U slotCount;
  595. INT8U pwrdSlotNum[MAX_SLOT_NUM_SUPPORTED];
  596. } PACKED ChassisPwrDomRec_T;
  597. /**
  598. * @struct PwrUnitRedundRec_T
  599. * @brief Open Blade Power Unit Redundancy record
  600. **/
  601. typedef struct
  602. {
  603. ChassisInvInfoHdr_T chassisInvInfoHdr;
  604. INT8U pwrSupplySlotCount;
  605. INT8U reqPwrSupplyCount;
  606. } PACKED PwrUnitRedundRec_T;
  607. /**
  608. * @struct OutputCurrRec_T
  609. * @brief Open Blade Output current record
  610. **/
  611. typedef struct
  612. {
  613. ChassisInvInfoHdr_T chassisInvInfoHdr;
  614. INT8U currScaleFactor;
  615. INT16U max12vCurr;
  616. } PACKED OutputCurrRec_T;
  617. /**
  618. * @struct CoolingCtlrInfo_T
  619. * @brief Open Blade Chassis Cooling controller information
  620. **/
  621. typedef struct
  622. {
  623. INT8U slotNum;
  624. INT8U coolDomId;
  625. } PACKED CoolingCtlrInfo_T;
  626. /**
  627. * @struct ChassisCoolingDomRec_T
  628. * @brief Open Blade Chassis Cooling Domain record
  629. **/
  630. typedef struct
  631. {
  632. ChassisInvInfoHdr_T chassisInvInfoHdr;
  633. INT8U ctlrCount;
  634. CoolingCtlrInfo_T ctlrInfo[MAX_COOLING_CTLR_SUPPORTED];
  635. INT8U chassisSlotCount;
  636. INT8U chassisSlotZoneNum[MAX_SLOT_NUM_SUPPORTED];
  637. } PACKED ChassisCoolingDomRec_T;
  638. /**
  639. * @struct HdrSlotMapRecord_T
  640. * @brief Record Tables With Valid Field Header
  641. **/
  642. typedef struct
  643. {
  644. INT8U valid;
  645. SlotMapRec_T slotMapRec;
  646. } PACKED HdrSlotMapRec_T;
  647. /**
  648. * @struct HdrInterConnTopRec_T
  649. * @brief Record Tables With Valid Field Header
  650. **/
  651. typedef struct
  652. {
  653. INT8U valid;
  654. InterConnTopRec_T interConnTopRec;
  655. } PACKED HdrInterConnTopRec_T;
  656. /**
  657. * @struct HdrChassisPwrDomRec_T
  658. * @brief Record Tables With Valid Field Header
  659. **/
  660. typedef struct
  661. {
  662. INT8U valid;
  663. ChassisPwrDomRec_T chassisPwrDomRec;
  664. } PACKED HdrChassisPwrDomRec_T;
  665. /**
  666. * @struct HdrPwrUnitRedundRec_T
  667. * @brief Record Tables With Valid Field Header
  668. **/
  669. typedef struct
  670. {
  671. INT8U valid;
  672. PwrUnitRedundRec_T pwrUnitRedundRec;
  673. } PACKED HdrPwrUnitRedundRec_T;
  674. /**
  675. * @struct HdrOutputCurrRec_T
  676. * @brief Record Tables With Valid Field Header
  677. **/
  678. typedef struct
  679. {
  680. INT8U valid;
  681. OutputCurrRec_T outputCurrRec;
  682. } PACKED HdrOutputCurrRec_T;
  683. /**
  684. * @struct HdrChassisCoolingDomRec_T
  685. * @brief Record Tables With Valid Field Header
  686. **/
  687. typedef struct
  688. {
  689. INT8U valid;
  690. ChassisCoolingDomRec_T chassisCoolingDomRec;
  691. } PACKED HdrChassisCoolingDomRec_T;
  692. /**
  693. * @struct ChassisInvRecInfo_T
  694. * @brief Chassis Inventory Info
  695. **/
  696. typedef struct
  697. {
  698. INT8U totNumChassisPwrDomRec;
  699. INT8U totNumChassisCoolingDomRec;
  700. HdrSlotMapRec_T hdrSlotMapRec;
  701. HdrInterConnTopRec_T hdrInterConnTopRec;
  702. HdrChassisPwrDomRec_T hdrChassisPwrDomRec[MAX_PWR_DOMAIN_SUPPORTED];
  703. HdrPwrUnitRedundRec_T hdrPwrUnitRedundRec;
  704. HdrOutputCurrRec_T hdrOutputCurrRec;
  705. HdrChassisCoolingDomRec_T hdrChassisCoolingDomRec[MAX_COOLING_DOMAIN_SUPPORTED];
  706. } PACKED ChassisInvRecInfo_T;
  707. #pragma pack()
  708. #endif