FRURecord.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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. * FRURecord.h
  17. * FRU record structures.
  18. *
  19. * Author: Rama Bisa <ramab@ami.com>
  20. *
  21. ******************************************************************/
  22. #ifndef FRU_RECORD_H
  23. #define FRU_RECORD_H
  24. #include "Types.h"
  25. #pragma pack( 1 )
  26. /**
  27. * @struct FRUCommonHdr_T
  28. * @brief FRU Common Header
  29. **/
  30. typedef struct
  31. {
  32. INT8U CommonHeaderFormatVersion;
  33. INT8U InternalUseAreaStartOffset;
  34. INT8U ChassisInfoAreaStartOffset;
  35. INT8U BoardAreaStartOffset;
  36. INT8U ProductInfoAreaStartOffset;
  37. INT8U MultiRecordAreaStartOffset;
  38. INT8U PAD;
  39. INT8U CommonHeaderChecksum;
  40. } PACKED FRUCommonHdr_T;
  41. /*** External Definitions ***/
  42. #define MAX_FRU_DATA_AREA_SIZE (MAX_FRU_AREA_INFO_SIZE - sizeof(FRUCommonHdr_T) )
  43. #define FRU_DATA_START(pfru) ((_FAR_ INT8U*)(&(((_FAR_ FRURepository_T*) pfru)->FruInfo)))
  44. /**
  45. * @struct FRUInfoArea_T
  46. * @brief FRU Info Area
  47. **/
  48. typedef struct
  49. {
  50. FRUCommonHdr_T CommonHeader;
  51. INT8U FRUData [MAX_FRU_DATA_AREA_SIZE];
  52. } PACKED FRUInfoArea_T;
  53. /**
  54. * @struct FRUInternalUseAreaHdr
  55. * @brief FRU Internal Use Area Header
  56. **/
  57. typedef struct
  58. {
  59. INT8U InternalUseAreaFormatVersion;
  60. INT8U InternalUseAreaInfoLength;
  61. } PACKED FRUInternalUseAreaHdr;
  62. /**
  63. * @struct FRURepository_T
  64. * @brief FRU Repository organisation
  65. **/
  66. typedef struct
  67. {
  68. INT8U Signature [4]; /* $FRU */
  69. FRUInfoArea_T FruInfo[MAX_FRU_DEVICES];
  70. } PACKED FRURepository_T;
  71. #pragma pack( )
  72. #endif /* FRU_RECORD_H */