blob: b62621c181ae567eceab1b5da59dc95baf95add4 [file] [log] [blame]
SunnySrivastava198419be6d32020-03-03 07:21:45 -06001#pragma once
2
3#include <iostream>
4
5namespace openpower
6{
7namespace vpd
8{
9namespace constants
10{
11
12using RecordId = uint8_t;
13using RecordOffset = uint16_t;
14using RecordSize = uint16_t;
15using RecordType = uint16_t;
16using RecordLength = uint16_t;
17using KwSize = uint8_t;
18using PoundKwSize = uint16_t;
19using ECCOffset = uint16_t;
20using ECCLength = uint16_t;
21using LE2ByteData = uint16_t;
22
23static constexpr auto MAC_ADDRESS_LEN_BYTES = 6;
24static constexpr auto LAST_KW = "PF";
25static constexpr auto POUND_KW = '#';
26static constexpr auto UUID_LEN_BYTES = 16;
27static constexpr auto UUID_TIME_LOW_END = 8;
28static constexpr auto UUID_TIME_MID_END = 13;
29static constexpr auto UUID_TIME_HIGH_END = 18;
30static constexpr auto UUID_CLK_SEQ_END = 23;
31
32static constexpr auto MB_RESULT_LEN = 19;
33static constexpr auto MB_LEN_BYTES = 8;
34static constexpr auto MB_YEAR_END = 4;
35static constexpr auto MB_MONTH_END = 7;
36static constexpr auto MB_DAY_END = 10;
37static constexpr auto MB_HOUR_END = 13;
38static constexpr auto MB_MIN_END = 16;
39
40constexpr int IPZ_DATA_START = 11;
41constexpr uint8_t KW_VAL_PAIR_START_TAG = 0x84;
42constexpr uint8_t RECORD_END_TAG = 0x78;
43
44const std::string service = "xyz.openbmc_project.Inventory.Manager";
45const std::string VPD_OBJ_PATH_PREFIX = "/xyz/openbmc_project/inventory";
46
47namespace lengths
48{
49enum Lengths
50{
51 RECORD_NAME = 4,
52 KW_NAME = 2,
53 RECORD_OFFSET = 2,
54 RECORD_MIN = 44,
55 RECORD_LENGTH = 2,
56 RECORD_ECC_OFFSET = 2,
57 VHDR_ECC_LENGTH = 11,
58 VHDR_RECORD_LENGTH = 44
59}; // enum Lengths
60} // namespace lengths
61
62namespace offsets
63{
64enum Offsets
65{
66 VHDR = 17,
67 VHDR_TOC_ENTRY = 29,
68 VTOC_PTR = 35,
69 VTOC_DATA = 13,
70 VHDR_ECC = 0,
71 VHDR_RECORD = 11
72};
73} // namespace offsets
74
75namespace eccStatus
76{
77enum Status
78{
79 SUCCESS = 0,
80 FAILED = -1
81};
82} // namespace eccStatus
83} // namespace constants
84} // namespace vpd
85} // namespace openpower