sdr: 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.
Change-Id: I0adfcd6c0e41daafe2d81918a527925997f96585
Signed-off-by: George Liu <liuxiwei@ieisystem.com>
diff --git a/sensorhandler.hpp b/sensorhandler.hpp
index 4881741..b67dfa6 100644
--- a/sensorhandler.hpp
+++ b/sensorhandler.hpp
@@ -74,9 +74,8 @@
int set_sensor_dbus_state_y(uint8_t, const char*, const uint8_t);
int find_openbmc_path(uint8_t, dbus_interface_t*);
-ipmi::Cc ipmi_sen_get_sdr(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<uint16_t, std::vector<uint8_t>> ipmiSensorGetSdr(
+ uint16_t, uint16_t, uint8_t, uint8_t);
ipmi::RspType<uint16_t> ipmiSensorReserveSdr();
@@ -92,71 +91,15 @@
namespace get_sdr
{
-struct GetSdrReq
-{
- uint8_t reservation_id_lsb;
- uint8_t reservation_id_msb;
- uint8_t record_id_lsb;
- uint8_t record_id_msb;
- uint8_t offset;
- uint8_t bytes_to_read;
-} __attribute__((packed));
-
-namespace request
-{
-
-inline uint16_t get_reservation_id(GetSdrReq* req)
-{
- return (req->reservation_id_lsb + (req->reservation_id_msb << 8));
-};
-
-inline uint16_t get_record_id(GetSdrReq* req)
-{
- return (req->record_id_lsb + (req->record_id_msb << 8));
-};
-
-} // namespace request
-
-// Response
-struct GetSdrResp
-{
- uint8_t next_record_id_lsb;
- uint8_t next_record_id_msb;
- uint8_t record_data[64];
-} __attribute__((packed));
-
-namespace response
-{
-
-inline void set_next_record_id(uint16_t next, GetSdrResp* resp)
-{
- resp->next_record_id_lsb = next & 0xff;
- resp->next_record_id_msb = (next >> 8) & 0xff;
-};
-
-} // namespace response
-
// Record header
struct SensorDataRecordHeader
{
- uint8_t record_id_lsb;
- uint8_t record_id_msb;
+ uint16_t recordId;
uint8_t sdr_version;
uint8_t record_type;
uint8_t record_length; // Length not counting the header
} __attribute__((packed));
-namespace header
-{
-
-inline void set_record_id(int id, SensorDataRecordHeader* hdr)
-{
- hdr->record_id_lsb = (id & 0xFF);
- hdr->record_id_msb = (id >> 8) & 0xFF;
-};
-
-} // namespace header
-
enum SensorDataRecordType
{
SENSOR_DATA_FULL_RECORD = 0x1,