blob: cfe0530205958960d625a9fa02eee967a1fe58b0 [file] [log] [blame]
Deepak Kodihalli35c7fb12016-11-21 04:32:44 -06001#pragma once
2
3#include <climits>
Deepak Kodihalli76794492017-02-16 23:48:18 -06004#include <map>
5#include <sdbusplus/server.hpp>
Patrick Venturec83c4dc2018-11-01 16:29:18 -07006#include <string>
7#include <vector>
Deepak Kodihalli35c7fb12016-11-21 04:32:44 -06008
9namespace openpower
10{
11namespace vpd
12{
13
14/** @brief The OpenPOWER VPD, in binary, is specified as a
15 * sequence of characters */
16static_assert((8 == CHAR_BIT), "A byte is not 8 bits!");
17using Byte = uint8_t;
18using Binary = std::vector<Byte>;
19
Deepak Kodihalli76794492017-02-16 23:48:18 -060020namespace inventory
21{
22
23using Path = std::string;
24using Property = std::string;
Patrick Williamsbd070082020-06-02 14:34:03 -050025using Value = std::variant<bool, int64_t, std::string, Binary>;
Deepak Kodihalli76794492017-02-16 23:48:18 -060026using PropertyMap = std::map<Property, Value>;
27
28using Interface = std::string;
29using InterfaceMap = std::map<Interface, PropertyMap>;
30
31using Object = sdbusplus::message::object_path;
32using ObjectMap = std::map<Object, InterfaceMap>;
33
34using namespace std::string_literals;
Deepak Kodihalli193b2282017-06-07 08:34:30 -050035constexpr auto pimPath = "/xyz/openbmc_project/inventory";
36constexpr auto pimIntf = "xyz.openbmc_project.Inventory.Manager";
Deepak Kodihalli76794492017-02-16 23:48:18 -060037
38} // namespace inventory
39
Deepak Kodihalli35c7fb12016-11-21 04:32:44 -060040} // namespace vpd
41} // namespace openpower