groupext: Use registerHandler instead of ipmi_register_callback
Since ipmi_register_callback declared in api.h has been gradually
deprecated, this submission is to use registerHandler instead of
ipmi_register_callback.
Tested:
```
~# ipmitool raw 0x2c 0x00 0xdc
dc 00
```
Change-Id: I26a2bfa0a6e54a38b196d97b6e2e80d5af25f3d9
Signed-off-by: George Liu <liuxiwei@ieisystem.com>
diff --git a/groupext.cpp b/groupext.cpp
index d71c6cf..4bc14cc 100644
--- a/groupext.cpp
+++ b/groupext.cpp
@@ -1,31 +1,30 @@
+#include <ipmid/api-types.hpp>
#include <ipmid/api.hpp>
+#include <phosphor-logging/lg2.hpp>
-#include <cstdio>
+namespace group
+{
+constexpr ipmi::Cmd cmdGetGroupExt = 0x0;
+} // namespace group
-#define GRPEXT_GET_GROUP_CMD 0
void registerNetFnGroupExtFunctions() __attribute__((constructor));
-ipmi::Cc ipmi_groupext(ipmi_netfn_t, ipmi_cmd_t, ipmi_request_t,
- ipmi_response_t response, ipmi_data_len_t data_len,
- ipmi_context_t)
+ipmi::RspType<uint8_t> ipmiGroupExt()
{
+ lg2::info("IPMI GROUP EXTENSIONS");
+
// Generic return from IPMI commands.
- ipmi::Cc rc = ipmi::ccSuccess;
- uint8_t* p = (uint8_t*)response;
+ constexpr uint8_t respData = 0;
- std::printf("IPMI GROUP EXTENSIONS\n");
-
- *data_len = 1;
- *p = 0;
-
- return rc;
+ return ipmi::responseSuccess(respData);
}
void registerNetFnGroupExtFunctions()
{
// <Group Extension Command>
- ipmi_register_callback(ipmi::netFnGroup, GRPEXT_GET_GROUP_CMD, nullptr,
- ipmi_groupext, PRIVILEGE_USER);
+ ipmi::registerGroupHandler(ipmi::prioOpenBmcBase, ipmi::groupDCMI,
+ group::cmdGetGroupExt, ipmi::Privilege::User,
+ ipmiGroupExt);
return;
}