App.c 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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. * App.c
  16. * Application Command Handler
  17. *
  18. * Author: Govind Kothandapani <govindk@ami.com>
  19. * : Rama Bisa <ramab@ami.com>
  20. * : Basavaraj Astekar <basavaraja@ami.com>
  21. * : Bakka Ravinder Reddy <bakkar@ami.com>
  22. *
  23. *****************************************************************/
  24. #include "MsgHndlr.h"
  25. #include "com_IPMI_App.h"
  26. #include "com_IPMI_IPM.h"
  27. //#include "com_IPMI_Firewall.h"
  28. #include "com_IPMI_App+.h"
  29. #include "libipmi_struct.h"
  30. #include "Support.h"
  31. #include "com_IPMI_AppDevice.h"
  32. /*** Global Variables ***/
  33. const CmdHndlrMap_T g_App_CmdHndlr [] = //notice!
  34. {
  35. #if IPM_DEVICE == 1
  36. /*------------------------- IPM Device Commands -------------------------*/
  37. { CMD_GET_DEV_ID, PRIV_USER, GET_DEV_ID, 0x00, 0xAAAA , 0xFFFF},
  38. // { CMD_BROADCAST_GET_DEV_ID, PRIV_LOCAL, BROADCAST_GET_DEV_ID, 0x00, 0xAAAA ,0xFFFF},
  39. { CMD_COLD_RESET, PRIV_ADMIN, COLD_RESET, 0x00, 0xAAAA ,0xFFFF},
  40. { CMD_WARM_RESET, PRIV_ADMIN, WARM_RESET, 0x00, 0xAAAA , 0xFFFF},
  41. { CMD_GET_SELF_TEST_RESULTS, PRIV_USER, GET_SELF_TEST_RESULTS, 0x00, 0xAAAA , 0xFFFF},
  42. { CMD_MFG_TEST_ON, PRIV_ADMIN, MFG_TEST_ON, 0xFF, 0xAAAA ,0xFFFF},
  43. { CMD_SET_ACPI_PWR_STATE, PRIV_ADMIN, SET_ACPI_PWR_STATE, sizeof (SetACPIPwrStateReq_T), 0xAAAA ,0xFFFF},
  44. { CMD_GET_ACPI_PWR_STATE, PRIV_USER, GET_ACPI_PWR_STATE, 0x00, 0xAAAA ,0xFFFF},
  45. { CMD_GET_DEV_GUID, PRIV_USER, GET_DEV_GUID, 0x00, 0xAAAA ,0xFFFF},
  46. // { CMD_GET_NETFN_SUP, PRIV_USER, GET_NETFN_SUP, 0x01, 0xAAAA ,0xFFFF},
  47. // { CMD_GET_CMD_SUP, PRIV_USER, GET_CMD_SUP, 0xFF, 0xAAAA ,0xFFFF},
  48. // { CMD_GET_SUBFN_SUP, PRIV_USER, GET_SUBFN_SUP, 0xFF, 0xAAAA ,0xFFFF},
  49. // { CMD_GET_CONFIG_CMDS, PRIV_USER, GET_CONFIG_CMDS, 0xFF, 0xAAAA ,0xFFFF},
  50. // { CMD_GET_CONFIG_SUB_FNS, PRIV_USER, GET_CONFIG_SUB_FNS, 0xFF, 0xAAAA ,0xFFFF},
  51. // { CMD_SET_CMD_ENABLES, PRIV_USER, SET_CMD_ENABLES, 0xFF, 0xAAAA ,0xFFFF},
  52. // { CMD_GET_CMD_ENABLES, PRIV_USER, GET_CMD_ENABLES, 0xFF, 0xAAAA ,0xFFFF},
  53. // { CMD_SET_SUBFN_ENABLES, PRIV_USER, SET_SUBFN_ENABLES, sizeof (SetSubFnEnablesReq_T), 0xAAAA ,0xFFFF},
  54. // { CMD_GET_SUBFN_ENABLES, PRIV_USER, GET_SUBFN_ENABLES, sizeof (GetSubFnEnablesReq_T), 0xAAAA ,0xFFFF},
  55. // { CMD_GET_OEM_NETFN_IANA_SUPPORT, PRIV_USER, GET_OEM_NETFN_IANA_SUPPORT, sizeof (GetOEMNetFnIANASupportReq_T), 0xAAAA ,0xFFFF},
  56. #endif /* IPM_DEVICE */
  57. #if APP_DEVICE == 1
  58. // /*--------------------- Watch Dog Timer Commands -----------------------*/
  59. // { CMD_RESET_WDT, PRIV_OPERATOR, RESET_WDT, 0x00, 0xAAAA ,0xFFFF},
  60. // { CMD_SET_WDT, PRIV_OPERATOR, SET_WDT, sizeof (SetWDTReq_T), 0xAAAA ,0xFFFF},
  61. // { CMD_GET_WDT, PRIV_USER, GET_WDT, 0x00, 0xAAAA ,0xFFFF},
  62. // /*----------------- BMC Device and Messaging Commands ------------------*/
  63. // { CMD_SET_BMC_GBL_ENABLES, PRIV_LOCAL, SET_BMC_GBL_ENABLES, sizeof (uint8_t), 0xAAAA ,0xFFFF},
  64. // { CMD_GET_BMC_GBL_ENABLES, PRIV_USER, GET_BMC_GBL_ENABLES, 0x00, 0xAAAA ,0xFFFF},
  65. // { CMD_CLR_MSG_FLAGS, PRIV_LOCAL, CLR_MSG_FLAGS, sizeof (uint8_t), 0xAAAA ,0xFFFF},
  66. // { CMD_GET_MSG_FLAGS, PRIV_LOCAL, GET_MSG_FLAGS, 0x00, 0xAAAA ,0xFFFF},
  67. // { CMD_ENBL_MSG_CH_RCV, PRIV_LOCAL, ENBL_MSG_CH_RCV, sizeof (EnblMsgChRcvReq_T), 0xAAAA ,0xFFFF},
  68. // { CMD_GET_MSG, PRIV_LOCAL, GET_MSG, 0x00, 0xAAAA ,0xFFFF},
  69. // { CMD_SEND_MSG, PRIV_USER, SEND_MSG, 0xFF, 0xAAAA ,0xFFFF},
  70. // { CMD_READ_EVT_MSG_BUFFER, PRIV_LOCAL, READ_EVT_MSG_BUFFER, 0x00, 0xAAAA ,0xFFFF},
  71. // { CMD_GET_BTIFC_CAP, PRIV_USER, GET_BTIFC_CAP, 0x00, 0xAAAA ,0xFFFF},
  72. // { CMD_GET_SYSTEM_GUID, PRIV_NONE, GET_SYSTEM_GUID, 0x00, 0xAAAA ,0xFFFF},
  73. { CMD_GET_CH_AUTH_CAP, PRIV_NONE, GET_CH_AUTH_CAP, sizeof (GetChAuthCapReq_T), 0xAAAA ,0xFFFF},
  74. { CMD_GET_SESSION_CHALLENGE, PRIV_NONE, GET_SESSION_CHALLENGE, sizeof (GetSesChallengeReq_T), 0xAAAA ,0xFFFF},
  75. { CMD_ACTIVATE_SESSION, PRIV_NONE, ACTIVATE_SESSION, sizeof (ActivateSesReq_T), 0xAAAA ,0xFFFF},
  76. { CMD_SET_SESSION_PRIV_LEVEL, PRIV_USER, SET_SESSION_PRIV_LEVEL, sizeof (uint8_t), 0xAAAA ,0xFFFF},
  77. { CMD_CLOSE_SESSION, PRIV_CALLBACK, CLOSE_SESSION, 0xFF, 0xAAAA ,0xFFFF},
  78. // { CMD_GET_SESSION_INFO, PRIV_USER, GET_SESSION_INFO, 0xFF, 0xAAAA ,0xFFFF},
  79. // { CMD_GET_AUTH_CODE, PRIV_OPERATOR, GET_AUTH_CODE, sizeof (GetAuthCodeReq_T), 0xAAAA ,0xFFFF},
  80. // { CMD_SET_CH_ACCESS, PRIV_ADMIN, SET_CH_ACCESS, sizeof (SetChAccessReq_T), 0xAAAA ,0xFFFF},
  81. // { CMD_GET_CH_ACCESS, PRIV_USER, GET_CH_ACCESS, sizeof (GetChAccessReq_T), 0xAAAA ,0xFFFF},
  82. // { CMD_GET_CH_INFO, PRIV_USER, GET_CH_INFO, sizeof (uint8_t), 0xAAAA ,0xFFFF},
  83. { CMD_SET_USER_ACCESS, PRIV_ADMIN, SET_USER_ACCESS, 0xFF, 0xAAAA ,0xFFFF},
  84. { CMD_GET_USER_ACCESS, PRIV_OPERATOR, GET_USER_ACCESS, sizeof (GetUserAccessReq_T), 0xAAAA ,0xFFFF},
  85. { CMD_SET_USER_NAME, PRIV_ADMIN, SET_USER_NAME, sizeof (SetUserNameReq_T), 0xAAAA ,0xFFFF},
  86. { CMD_GET_USER_NAME, PRIV_OPERATOR, GET_USER_NAME, sizeof (uint8_t), 0xAAAA ,0xFFFF},
  87. { CMD_SET_USER_PASSWORD, PRIV_ADMIN, SET_USER_PASSWORD, 0xFF, 0xAAAA ,0xFFFF},
  88. // { CMD_MASTER_WRITE_READ, PRIV_OPERATOR, MASTER_WRITE_READ, 0xFF, 0xAAAA ,0xFFFF},
  89. // { CMD_SET_SYSTEM_INFO_PARAM, PRIV_ADMIN, SET_SYSTEM_INFO_PARAM, 0xFF, 0xAAAA ,0xFFFF},
  90. // { CMD_GET_SYSTEM_INFO_PARAM, PRIV_USER , GET_SYSTEM_INFO_PARAM, sizeof (GetSystemInfoParamReq_T), 0xAAAA ,0xFFFF},
  91. // /*------------------------ IPMI 2.0 specific Commands ------------------*/
  92. // { CMD_ACTIVATE_PAYLOAD, PRIV_CALLBACK, ACTIVATE_PAYLOAD, sizeof (ActivatePayloadReq_T), 0xAAAA ,0xFFFF},
  93. // { CMD_DEACTIVATE_PAYLOAD, PRIV_CALLBACK, DEACTIVATE_PAYLOAD, sizeof (DeactivatePayloadReq_T),0xAAAA ,0xFFFF},
  94. // { CMD_GET_PAYLD_ACT_STATUS, PRIV_USER, GET_PAYLD_ACT_STATUS, 1, 0xAAAA ,0xFFFF},
  95. // { CMD_GET_PAYLD_INST_INFO, PRIV_USER, GET_PAYLD_INST_INFO, 2, 0xAAAA ,0xFFFF},
  96. // { CMD_SET_USR_PAYLOAD_ACCESS, PRIV_ADMIN, SET_USR_PAYLOAD_ACCESS, sizeof (SetUsrPayldAccReq_T), 0xAAAA ,0xFFFF},
  97. // { CMD_GET_USR_PAYLOAD_ACCESS, PRIV_OPERATOR, GET_USR_PAYLOAD_ACCESS, sizeof (GetUsrPayldAccReq_T), 0xAAAA ,0xFFFF},
  98. // { CMD_GET_CH_PAYLOAD_SUPPORT, PRIV_USER, GET_CH_PAYLOAD_SUPPORT, 1, 0xAAAA ,0xFFFF},
  99. // { CMD_GET_CH_PAYLOAD_VER, PRIV_USER, GET_CH_PAYLOAD_VER, sizeof (GetChPayldVerReq_T), 0xAAAA ,0xFFFF},
  100. // { CMD_GET_CH_OEM_PAYLOAD_INFO, PRIV_USER, GET_CH_OEM_PAYLOAD_INFO,sizeof (GetChOemPayldInfoReq_T),0xAAAA ,0xFFFF},
  101. // { CMD_GET_CH_CIPHER_SUITES, PRIV_NONE, GET_CH_CIPHER_SUITES, sizeof (GetChCipherSuitesReq_T),0xAAAA ,0x0001},
  102. // { CMD_SUS_RES_PAYLOAD_ENCRYPT, PRIV_USER, SUS_RES_PAYLOAD_ENCRYPT,sizeof (SusResPayldEncryptReq_T),0xAAAA ,0xFFFF},
  103. // { CMD_SET_CH_SECURITY_KEYS, PRIV_ADMIN, SET_CH_SECURITY_KEYS, 0xFF, 0xAAAA ,0xFFFF},
  104. // { CMD_GET_SYS_IFC_CAPS, PRIV_USER, GET_SYS_IFC_CAPS, 1, 0xAAAA ,0xFFFF},
  105. #endif /* APP_DEVICE */
  106. { 0x00, 0x00, 0x00, 0x00, 0x0000 , 0x0000}
  107. };