xref: /openbmc/openpower-vpd-parser/const.hpp (revision a739259fedc6d390d61357a0f4a1dc95fd0e26c4)
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 using DataOffset = uint16_t;
23 
24 static constexpr auto MAC_ADDRESS_LEN_BYTES = 6;
25 static constexpr auto LAST_KW = "PF";
26 static constexpr auto POUND_KW = '#';
27 static constexpr auto UUID_LEN_BYTES = 16;
28 static constexpr auto UUID_TIME_LOW_END = 8;
29 static constexpr auto UUID_TIME_MID_END = 13;
30 static constexpr auto UUID_TIME_HIGH_END = 18;
31 static constexpr auto UUID_CLK_SEQ_END = 23;
32 
33 static constexpr auto MB_RESULT_LEN = 19;
34 static constexpr auto MB_LEN_BYTES = 8;
35 static constexpr auto MB_YEAR_END = 4;
36 static constexpr auto MB_MONTH_END = 7;
37 static constexpr auto MB_DAY_END = 10;
38 static constexpr auto MB_HOUR_END = 13;
39 static constexpr auto MB_MIN_END = 16;
40 
41 static constexpr auto LOCATION_CODE_INF = "com.ibm.ipzvpd.Location";
42 
43 constexpr int IPZ_DATA_START = 11;
44 constexpr uint8_t KW_VAL_PAIR_START_TAG = 0x84;
45 constexpr uint8_t RECORD_END_TAG = 0x78;
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_REC_LEN = 37,
70     VTOC_ECC_OFF = 39,
71     VTOC_ECC_LEN = 41,
72     VTOC_DATA = 13,
73     VHDR_ECC = 0,
74     VHDR_RECORD = 11
75 };
76 } // namespace offsets
77 
78 namespace eccStatus
79 {
80 enum Status
81 {
82     SUCCESS = 0,
83     FAILED = -1
84 };
85 } // namespace eccStatus
86 } // namespace constants
87 } // namespace vpd
88 } // namespace openpower
89