Condense std::variants
Where possible, reduce to a single std::variant type to reduce binary
size.
Change-Id: I73b59765109ce1ccd7339f0e214d1ec3929e1ffc
Signed-off-by: Jason M. Bills <jason.m.bills@intel.com>
diff --git a/src/smbioshandler.cpp b/src/smbioshandler.cpp
index e330e5a..cc882be 100644
--- a/src/smbioshandler.cpp
+++ b/src/smbioshandler.cpp
@@ -20,6 +20,7 @@
#include <phosphor-logging/elog-errors.hpp>
#include <phosphor-logging/log.hpp>
#include <smbioshandler.hpp>
+#include <types.hpp>
#include <xyz/openbmc_project/Common/error.hpp>
#include <cstdint>
@@ -90,8 +91,7 @@
return IPMI_CC_OK;
}
-int sdplus_mdrv1_get_property(const std::string& name,
- std::variant<uint8_t, uint16_t>& value,
+int sdplus_mdrv1_get_property(const std::string& name, ipmi::DbusVariant& value,
std::string& service)
{
std::shared_ptr<sdbusplus::asio::connection> bus = getSdBus();
@@ -115,7 +115,7 @@
std::shared_ptr<sdbusplus::asio::connection> bus = getSdBus();
auto method = bus->new_method_call(service.c_str(), MDRV1_PATH,
DBUS_PROPERTIES, "Set");
- std::variant<uint8_t> value{regionId};
+ ipmi::DbusVariant value{regionId};
method.append(MDRV1_INTERFACE, "RegionId", value);
auto region = bus->call(method);
if (region.is_method_error())
@@ -134,7 +134,7 @@
auto requestData = reinterpret_cast<const RegionCompleteRequest*>(request);
uint8_t status;
- std::variant<uint8_t, uint16_t> value;
+ ipmi::DbusVariant value;
if (*data_len != sizeof(RegionCompleteRequest))
{
@@ -210,8 +210,8 @@
{
auto requestData = reinterpret_cast<const RegionReadRequest*>(request);
auto responseData = reinterpret_cast<RegionReadResponse*>(response);
- std::variant<uint8_t, uint16_t> regUsedVal;
- std::variant<uint8_t, uint16_t> lockPolicyVal;
+ ipmi::DbusVariant regUsedVal;
+ ipmi::DbusVariant lockPolicyVal;
std::vector<uint8_t> res;
if (*data_len < sizeof(RegionReadRequest))
@@ -317,7 +317,7 @@
return IPMI_CC_REQ_DATA_LEN_INVALID;
}
- std::variant<uint8_t, uint16_t> value;
+ ipmi::DbusVariant value;
*data_len = 0;
@@ -400,7 +400,7 @@
{
auto requestData = reinterpret_cast<const RegionLockRequest*>(request);
uint8_t regionId = requestData->regionId - 1;
- std::variant<uint8_t, uint16_t> value;
+ ipmi::DbusVariant value;
auto res = reinterpret_cast<uint8_t*>(response);
uint8_t lockResponse;