diff options
author | Nikita Kosenkov <NKosenkov@IBS.RU> | 2022-07-15 11:38:56 +0300 |
---|---|---|
committer | Nikita Kosenkov <NKosenkov@IBS.RU> | 2022-07-15 11:38:56 +0300 |
commit | 6b4dc67a97ce5ea431749ae3cc3501f13a0ef3ea (patch) | |
tree | c4e133963bbd7bdb8e58a8bd54aa9aaa4e76fa9c /include | |
parent | 613e5f0e6cc0c6e2a1e2774d81bc581035fd76f9 (diff) | |
download | smbios-mdrv1-6b4dc67a97ce5ea431749ae3cc3501f13a0ef3ea.tar.xz |
Changes for a successful build
Diffstat (limited to 'include')
-rw-r--r-- | include/cpu.hpp | 82 | ||||
-rw-r--r-- | include/smbios.hpp | 2 |
2 files changed, 51 insertions, 33 deletions
diff --git a/include/cpu.hpp b/include/cpu.hpp index 08204da..953c549 100644 --- a/include/cpu.hpp +++ b/include/cpu.hpp @@ -15,15 +15,31 @@ */ #pragma once -#include <xyz/openbmc_project/Inventory/Item/Cpu/server.hpp> #include "smbios.hpp" + +#include <xyz/openbmc_project/Association/Definitions/server.hpp> +#include <xyz/openbmc_project/Inventory/Connector/Slot/server.hpp> +#include <xyz/openbmc_project/Inventory/Decorator/Asset/server.hpp> +#include <xyz/openbmc_project/Inventory/Decorator/LocationCode/server.hpp> +#include <xyz/openbmc_project/Inventory/Decorator/Revision/server.hpp> +#include <xyz/openbmc_project/Inventory/Item/Cpu/server.hpp> +#include <xyz/openbmc_project/Inventory/Item/server.hpp> + namespace phosphor { namespace smbios { +using rev = sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::Revision; +using asset = sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::Asset; +using location = sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::LocationCode; +using connector = sdbusplus::xyz::openbmc_project::Inventory::Connector::server::Slot; +using processor = sdbusplus::xyz::openbmc_project::Inventory::Item::server::Cpu; +using Item = sdbusplus::xyz::openbmc_project::Inventory::server::Item; +using association = sdbusplus::xyz::openbmc_project::Association::server::Definitions; + // Definition follow smbios spec DSP0134 3.0.0 static const std::map<uint8_t, std::string> cpuTypeTable = { {0x1, "Other"}, {0x2, "Unknown"}, {0x3, "Central Processor"}, @@ -67,25 +83,26 @@ static const std::map<uint8_t, std::string> familyTable = { }; // Definition follow smbios spec DSP0134 3.0.0 -static const std::string characterTable[16]{"Reserved", - "Unknown", - "64-bit Capable", - "Multi-Core", - "Hardware Thread", - "Execute Protection", - "Enhanced Virtualization", - "Power/Performance Control", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved"}; - -class Cpu : sdbusplus::server::object::object< - sdbusplus::xyz::openbmc_project::Inventory::Item::server::Cpu> +static const std::array<std::optional<processor::Capability>, 16> + characteristicsTable{std::nullopt, + std::nullopt, + processor::Capability::Capable64bit, + processor::Capability::MultiCore, + processor::Capability::HardwareThread, + processor::Capability::ExecuteProtection, + processor::Capability::EnhancedVirtualization, + processor::Capability::PowerPerformanceControl, + std::nullopt, + std::nullopt, + std::nullopt, + std::nullopt, + std::nullopt, + std::nullopt, + std::nullopt, + std::nullopt}; + +class Cpu : sdbusplus::server::object_t<processor, asset, location, connector, rev, + Item, association> { public: Cpu() = delete; @@ -98,9 +115,8 @@ class Cpu : sdbusplus::server::object::object< Cpu(sdbusplus::bus::bus &bus, const std::string &objPath, const uint8_t &cpuId, struct ManagedDataRegion *region) : - sdbusplus::server::object::object< - sdbusplus::xyz::openbmc_project::Inventory::Item::server::Cpu>( - bus, objPath.c_str()), + sdbusplus::server::object_t<processor, asset, location, connector, rev, + Item, association>(bus, objPath.c_str()), cpuNum(cpuId), regionS(region) { processorInfoUpdate(); @@ -108,16 +124,16 @@ class Cpu : sdbusplus::server::object::object< void processorInfoUpdate(void); - std::string processorSocket(std::string value) override; - std::string processorType(std::string value) override; - std::string processorFamily(std::string value) override; - std::string processorManufacturer(std::string value) override; - uint32_t processorId(uint32_t value) override; - std::string processorVersion(std::string value) override; - uint16_t processorMaxSpeed(uint16_t value) override; - std::string processorCharacteristics(std::string value) override; - uint16_t processorCoreCount(uint16_t value) override; - uint16_t processorThreadCount(uint16_t value) override; + std::string processorSocket(std::string value); + std::string processorType(std::string value); + std::string processorFamily(std::string value); + std::string processorManufacturer(std::string value); + uint32_t processorId(uint32_t value); + std::string processorVersion(std::string value); + uint16_t processorMaxSpeed(uint16_t value); + std::string processorCharacteristics(std::string value) ; + uint16_t processorCoreCount(uint16_t value); + uint16_t processorThreadCount(uint16_t value); private: /** @brief Path of the group instance */ diff --git a/include/smbios.hpp b/include/smbios.hpp index 390ac9a..a36ff34 100644 --- a/include/smbios.hpp +++ b/include/smbios.hpp @@ -16,6 +16,8 @@ #pragma once #include <map> +#include <cstdint> +#include <string> static constexpr uint16_t mdrSmbiosSize = 32 * 1024; // 32K static constexpr uint16_t mdrAcpiTableSize = 32 * 1024; // 32K |