OBSMCoolingMngr.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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 OBSMCoolingMngr.h
  14. * @author Velu <velmuruganv@amiindia.co.in>
  15. * @brief
  16. ****************************************************************/
  17. #ifndef OBSMCOOLINGMNGR_H
  18. #define OBSMCOOLINGMNGR_H
  19. #include "Types.h"
  20. /*** Definitions and Macros ***/
  21. #define MOD_AGGREG_THERM_SENSOR_EVENT_TYPE 0x7F
  22. #define THERM_STATE_OFF 0x01
  23. #define THERM_STATE_COLD 0x02
  24. #define THERM_STATE_COOL 0x04
  25. #define THERM_STATE_WARM 0x08
  26. #define THERM_STATE_HOT 0x10
  27. #define THERM_STATE_HOTTER 0x20
  28. #define THERM_STATE_WARNING 0x40
  29. #define THERM_STATE_CRITICAL 0x80
  30. #define PARAM_COOLINGMNGR_TIMER_TICK 1
  31. #define PARAM_COOLINGMNGR_SENSOR_EVT_MSG 2
  32. #define PARAM_COOLINGMNGR_FORCE_FAN_STATE_CHANGE 3
  33. #define PARAM_COOLINGMNGR_FAN_STATE_CHANGE 4
  34. /*** Typedef ***/
  35. /**
  36. * @enum AggregThermSensorSevType_E
  37. * @brief Aggregate thermal sensor severity type
  38. **/
  39. typedef enum{
  40. NON_CRITICAL_ASSERTED_OFFSET,
  41. CRITICAL_ASSERTED_OFFSET,
  42. NON_RECOVERABLE_ASSERTED_OFFSET,
  43. UNKNOWN_SEVERITY = 0x0F
  44. } AggregThermSensorSevType_E;
  45. /*** Extern Definitions ***/
  46. /*** Function Prototypes ***/
  47. /**
  48. * @brief Get the slot information in the cooling domain
  49. * @param domNum is the cooling domain number
  50. * @param pSlotCount is the number of slots in that domain
  51. * @param pSlotList is the list of slot belonging to the domain
  52. * @return 0 if success, else -1
  53. **/
  54. extern int OBSM_GetCoolingDomSlotInfo (INT8U domNum, INT8U* pSlotCount, INT8U* pSlotList, int BMCInst);
  55. /**
  56. * @brief Get the devices in the cooling domain
  57. * @param domNum is the cooling domain number
  58. * @return count of devices
  59. **/
  60. extern INT8U OBSM_GetCoolingDomDeviceCount (INT8U domNum, int BMCInst);
  61. /**
  62. * @brief Invoked by cooling manager task
  63. * @param evtType is the type of event message received
  64. * @param pEvent is the SEL event message
  65. * @return 0 if success, -1 if error
  66. **/
  67. extern int OBSM_FanStateChangeEventHndlr (INT8U evtType, SELEventRecord_T *pEvent, int BMCInst );
  68. /**
  69. * @brief Process the cooling domain power
  70. * @param domNum is the cooling domain number
  71. * @return 0 if success, -1 if error
  72. **/
  73. extern int OBSM_ProcessCoolingDomPwr (INT8U domNum, int BMCInst);
  74. /**
  75. * @brief Method to intialize the cooling specific structs
  76. * @param None
  77. * @return 0 if success, -1 if error
  78. **/
  79. extern int OBSM_InitChassisCoolingInfo (int BMCInst);
  80. /**
  81. * @brief OBSM Cooling manager task.
  82. **/
  83. extern void* OBSMCoolingMngrTask (void *pArg);
  84. #endif /*OBSMCOOLINGMNGR_H*/