xref: /openbmc/openpower-vpd-parser/const.hpp (revision 19be6d3d483fddeea3e24f524cbbfc39dbca20b5)
1 #pragma once
2 
3 #include <iostream>
4 
5 namespace openpower
6 {
7 namespace vpd
8 {
9 namespace constants
10 {
11 
12 using RecordId = uint8_t;
13 using RecordOffset = uint16_t;
14 using RecordSize = uint16_t;
15 using RecordType = uint16_t;
16 using RecordLength = uint16_t;
17 using KwSize = uint8_t;
18 using PoundKwSize = uint16_t;
19 using ECCOffset = uint16_t;
20 using ECCLength = uint16_t;
21 using LE2ByteData = uint16_t;
22 
23 static constexpr auto MAC_ADDRESS_LEN_BYTES = 6;
24 static constexpr auto LAST_KW = "PF";
25 static constexpr auto POUND_KW = '#';
26 static constexpr auto UUID_LEN_BYTES = 16;
27 static constexpr auto UUID_TIME_LOW_END = 8;
28 static constexpr auto UUID_TIME_MID_END = 13;
29 static constexpr auto UUID_TIME_HIGH_END = 18;
30 static constexpr auto UUID_CLK_SEQ_END = 23;
31 
32 static constexpr auto MB_RESULT_LEN = 19;
33 static constexpr auto MB_LEN_BYTES = 8;
34 static constexpr auto MB_YEAR_END = 4;
35 static constexpr auto MB_MONTH_END = 7;
36 static constexpr auto MB_DAY_END = 10;
37 static constexpr auto MB_HOUR_END = 13;
38 static constexpr auto MB_MIN_END = 16;
39 
40 constexpr int IPZ_DATA_START = 11;
41 constexpr uint8_t KW_VAL_PAIR_START_TAG = 0x84;
42 constexpr uint8_t RECORD_END_TAG = 0x78;
43 
44 const std::string service = "xyz.openbmc_project.Inventory.Manager";
45 const std::string VPD_OBJ_PATH_PREFIX = "/xyz/openbmc_project/inventory";
46 
47 namespace lengths
48 {
49 enum 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 
62 namespace offsets
63 {
64 enum 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 
75 namespace eccStatus
76 {
77 enum Status
78 {
79     SUCCESS = 0,
80     FAILED = -1
81 };
82 } // namespace eccStatus
83 } // namespace constants
84 } // namespace vpd
85 } // namespace openpower
86