blob: 5e7e068860d2633617b37bfa677ebd95eeeb8e3e [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 {
gokulsankere1fb7a82021-04-05 16:09:29 +053034 uint16_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 } __attribute__((packed)) bits;
53} bitfield16_t;
54
55typedef union {
Tom Joseph0c6d22c2019-06-26 09:58:41 +053056 uint32_t value;
57 struct {
58 uint8_t bit0 : 1;
59 uint8_t bit1 : 1;
60 uint8_t bit2 : 1;
61 uint8_t bit3 : 1;
62 uint8_t bit4 : 1;
63 uint8_t bit5 : 1;
64 uint8_t bit6 : 1;
65 uint8_t bit7 : 1;
66 uint8_t bit8 : 1;
67 uint8_t bit9 : 1;
68 uint8_t bit10 : 1;
69 uint8_t bit11 : 1;
70 uint8_t bit12 : 1;
71 uint8_t bit13 : 1;
72 uint8_t bit14 : 1;
73 uint8_t bit15 : 1;
74 uint8_t bit16 : 1;
75 uint8_t bit17 : 1;
76 uint8_t bit18 : 1;
77 uint8_t bit19 : 1;
78 uint8_t bit20 : 1;
79 uint8_t bit21 : 1;
80 uint8_t bit22 : 1;
81 uint8_t bit23 : 1;
82 uint8_t bit24 : 1;
83 uint8_t bit25 : 1;
84 uint8_t bit26 : 1;
85 uint8_t bit27 : 1;
86 uint8_t bit28 : 1;
87 uint8_t bit29 : 1;
88 uint8_t bit30 : 1;
89 uint8_t bit31 : 1;
90 } __attribute__((packed)) bits;
91} bitfield32_t;
92
George Liu456c9a22020-01-13 11:36:22 +080093typedef float real32_t;
94
Jinu Joy Thomas77269532019-03-05 19:23:06 +053095#endif /* PLDM_TYPES_H */