blob: d48b317a749b6512384dc8c22cfa6bbe5aead406 [file] [log] [blame]
#pragma once
#include <climits>
#include <map>
#include <sdbusplus/server.hpp>
#include <string>
#include <unordered_map>
#include <vector>
namespace openpower
{
namespace vpd
{
/** @brief The OpenPOWER VPD, in binary, is specified as a
* sequence of characters */
static_assert((8 == CHAR_BIT), "A byte is not 8 bits!");
using Byte = uint8_t;
using Binary = std::vector<Byte>;
namespace inventory
{
using Path = std::string;
using Property = std::string;
using Value = std::variant<bool, int64_t, std::string, Binary>;
using PropertyMap = std::map<Property, Value>;
using Interface = std::string;
using InterfaceMap = std::map<Interface, PropertyMap>;
using Object = sdbusplus::message::object_path;
using ObjectMap = std::map<Object, InterfaceMap>;
using VPDfilepath = std::string;
using FruIsMotherboard = bool;
using FrusMap =
std::unordered_map<Path, std::pair<VPDfilepath, FruIsMotherboard>>;
using LocationCode = std::string;
using LocationCodeMap = std::unordered_multimap<LocationCode, Path>;
using ListOfPaths = std::vector<sdbusplus::message::object_path>;
using NodeNumber = uint16_t;
using namespace std::string_literals;
constexpr auto pimPath = "/xyz/openbmc_project/inventory";
constexpr auto pimIntf = "xyz.openbmc_project.Inventory.Manager";
} // namespace inventory
} // namespace vpd
} // namespace openpower