xref: /openbmc/pldm/host-bmc/dbus/cpu_core.hpp (revision 56da5740)
1*56da5740SKamalkumar Patel #pragma once
2*56da5740SKamalkumar Patel 
3*56da5740SKamalkumar Patel #include <sdbusplus/bus.hpp>
4*56da5740SKamalkumar Patel #include <sdbusplus/server.hpp>
5*56da5740SKamalkumar Patel #include <sdbusplus/server/object.hpp>
6*56da5740SKamalkumar Patel #include <xyz/openbmc_project/Inventory/Item/CpuCore/server.hpp>
7*56da5740SKamalkumar Patel 
8*56da5740SKamalkumar Patel #include <string>
9*56da5740SKamalkumar Patel 
10*56da5740SKamalkumar Patel namespace pldm
11*56da5740SKamalkumar Patel {
12*56da5740SKamalkumar Patel namespace dbus
13*56da5740SKamalkumar Patel {
14*56da5740SKamalkumar Patel using CoreIntf = sdbusplus::server::object_t<
15*56da5740SKamalkumar Patel     sdbusplus::xyz::openbmc_project::Inventory::Item::server::CpuCore>;
16*56da5740SKamalkumar Patel 
17*56da5740SKamalkumar Patel class CPUCore : public CoreIntf
18*56da5740SKamalkumar Patel {
19*56da5740SKamalkumar Patel   public:
20*56da5740SKamalkumar Patel     CPUCore() = delete;
21*56da5740SKamalkumar Patel     ~CPUCore() = default;
22*56da5740SKamalkumar Patel     CPUCore(const CPUCore&) = delete;
23*56da5740SKamalkumar Patel     CPUCore& operator=(const CPUCore&) = delete;
24*56da5740SKamalkumar Patel     CPUCore(CPUCore&&) = default;
25*56da5740SKamalkumar Patel     CPUCore& operator=(CPUCore&&) = default;
26*56da5740SKamalkumar Patel 
CPUCore(sdbusplus::bus_t & bus,const std::string & objPath)27*56da5740SKamalkumar Patel     CPUCore(sdbusplus::bus_t& bus, const std::string& objPath) :
28*56da5740SKamalkumar Patel         CoreIntf(bus, objPath.c_str())
29*56da5740SKamalkumar Patel     {}
30*56da5740SKamalkumar Patel 
31*56da5740SKamalkumar Patel     /** Get value of Microcode */
32*56da5740SKamalkumar Patel     uint32_t microcode() const override;
33*56da5740SKamalkumar Patel 
34*56da5740SKamalkumar Patel     /** Set value of Microcode */
35*56da5740SKamalkumar Patel     uint32_t microcode(uint32_t value) override;
36*56da5740SKamalkumar Patel };
37*56da5740SKamalkumar Patel 
38*56da5740SKamalkumar Patel } // namespace dbus
39*56da5740SKamalkumar Patel } // namespace pldm
40