Move get bmc global command to new API
Rewrite get bmc global command to the new API.
Tested:
ipmitool raw 6 0x2f
09
ipmitool mc getenables
Receive Message Queue Interrupt : enabled
Event Message Buffer Full Interrupt : disabled
Event Message Buffer : disabled
System Event Logging : enabled
OEM 0 : disabled
OEM 1 : disabled
OEM 2 : disabled
Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
Change-Id: I17ef6171b29f1dcb4adcb1f93e2e4e0292883ecd
diff --git a/systemintfcmds.cpp b/systemintfcmds.cpp
index 7b2536a..689b465 100644
--- a/systemintfcmds.cpp
+++ b/systemintfcmds.cpp
@@ -17,17 +17,6 @@
using cmdManagerPtr = std::unique_ptr<phosphor::host::command::Manager>;
extern cmdManagerPtr& ipmid_get_host_cmd_manager();
-// global enables
-// bit0 - Message Receive Queue enable
-// bit1 - Enable Event Message Buffer Full Interrupt
-// bit2 - Enable Event Message Buffer
-// bit3 - Enable System Event Logging
-// bit4 - reserved
-// bit5-7 - OEM 0~2 enables
-static constexpr uint8_t selEnable = 0x08;
-static constexpr uint8_t recvMsgQueueEnable = 0x01;
-static constexpr uint8_t globalEnablesDefault = selEnable | recvMsgQueueEnable;
-
//-------------------------------------------------------------------
// Called by Host post response from Get_Message_Flags
//-------------------------------------------------------------------
@@ -83,21 +72,19 @@
return ipmi::responseSuccess(setEventMsgBufferFull);
}
-ipmi_ret_t ipmi_app_get_bmc_global_enables(ipmi_netfn_t netfn, ipmi_cmd_t cmd,
- ipmi_request_t request,
- ipmi_response_t response,
- ipmi_data_len_t data_len,
- ipmi_context_t context)
+ipmi::RspType<bool, // Receive Message Queue Interrupt Enabled
+ bool, // Event Message Buffer Full Interrupt Enabled
+ bool, // Event Message Buffer Enabled
+ bool, // System Event Logging Enabled
+ uint1_t, // Reserved
+ bool, // OEM 0 enabled
+ bool, // OEM 1 enabled
+ bool // OEM 2 enabled
+ >
+ ipmiAppGetBMCGlobalEnable()
{
- ipmi_ret_t rc = IPMI_CC_OK;
- if (0 != *data_len)
- {
- *data_len = 0;
- return IPMI_CC_REQ_DATA_LEN_INVALID;
- }
- *data_len = sizeof(globalEnablesDefault);
- *reinterpret_cast<uint8_t*>(response) = globalEnablesDefault;
- return rc;
+ return ipmi::responseSuccess(true, false, false, true, 0, false, false,
+ false);
}
ipmi::RspType<> ipmiAppSetBMCGlobalEnable(
@@ -159,8 +146,9 @@
ipmi::Privilege::Admin, ipmiAppSetBMCGlobalEnable);
// <Get BMC Global Enables>
- ipmi_register_callback(NETFUN_APP, IPMI_CMD_GET_BMC_GLOBAL_ENABLES, NULL,
- ipmi_app_get_bmc_global_enables, SYSTEM_INTERFACE);
+ ipmi::registerHandler(ipmi::prioOpenBmcBase, ipmi::netFnApp,
+ ipmi::app::cmdGetBmcGlobalEnables,
+ ipmi::Privilege::User, ipmiAppGetBMCGlobalEnable);
// <Get Message Flags>
ipmi::registerHandler(ipmi::prioOpenBmcBase, ipmi::netFnApp,