blob: 093d0169e67dcfd72779f8f3a2b0f258e6127955 [file] [log] [blame]
Jinu Joy Thomas77269532019-03-05 19:23:06 +05301#ifndef PLDM_TYPES_H
2#define PLDM_TYPES_H
3
Deepak Kodihalli97e0bd52019-02-21 03:54:22 -06004#include <stdint.h>
5
6typedef union {
7 uint8_t byte;
8 struct {
9 uint8_t bit0 : 1;
10 uint8_t bit1 : 1;
11 uint8_t bit2 : 1;
12 uint8_t bit3 : 1;
Zahed Hossain26b0e572019-05-23 05:24:50 -050013 uint8_t bit4 : 1;
Deepak Kodihalli97e0bd52019-02-21 03:54:22 -060014 uint8_t bit5 : 1;
15 uint8_t bit6 : 1;
16 uint8_t bit7 : 1;
17 } __attribute__((packed)) bits;
18} bitfield8_t;
19
20/** @struct pldm_version
21 *
22 *
23 */
24typedef struct pldm_version {
25 uint8_t major;
26 uint8_t minor;
27 uint8_t update;
28 uint8_t alpha;
29} __attribute__((packed)) ver32_t;
Jinu Joy Thomas77269532019-03-05 19:23:06 +053030
Deepak Kodihallic6e8fb52019-05-02 08:35:31 -050031typedef uint8_t bool8_t;
32
Tom Joseph0c6d22c2019-06-26 09:58:41 +053033typedef union {
34 uint32_t value;
35 struct {
36 uint8_t bit0 : 1;
37 uint8_t bit1 : 1;
38 uint8_t bit2 : 1;
39 uint8_t bit3 : 1;
40 uint8_t bit4 : 1;
41 uint8_t bit5 : 1;
42 uint8_t bit6 : 1;
43 uint8_t bit7 : 1;
44 uint8_t bit8 : 1;
45 uint8_t bit9 : 1;
46 uint8_t bit10 : 1;
47 uint8_t bit11 : 1;
48 uint8_t bit12 : 1;
49 uint8_t bit13 : 1;
50 uint8_t bit14 : 1;
51 uint8_t bit15 : 1;
52 uint8_t bit16 : 1;
53 uint8_t bit17 : 1;
54 uint8_t bit18 : 1;
55 uint8_t bit19 : 1;
56 uint8_t bit20 : 1;
57 uint8_t bit21 : 1;
58 uint8_t bit22 : 1;
59 uint8_t bit23 : 1;
60 uint8_t bit24 : 1;
61 uint8_t bit25 : 1;
62 uint8_t bit26 : 1;
63 uint8_t bit27 : 1;
64 uint8_t bit28 : 1;
65 uint8_t bit29 : 1;
66 uint8_t bit30 : 1;
67 uint8_t bit31 : 1;
68 } __attribute__((packed)) bits;
69} bitfield32_t;
70
Jinu Joy Thomas77269532019-03-05 19:23:06 +053071#endif /* PLDM_TYPES_H */