Zero  0.1.0
w_fill.h
Go to the documentation of this file.
1 #ifndef __W_FILL_H
2 #define __W_FILL_H
3 
4 #include <cstdint>
5 
6 /*
7  * These types are auto-initialized filler space for alignment
8  * in structures. The auto init helps with purify/valgrind.
9  */
11 struct fill8 {
12  uint8_t u;
13 
14  fill8() : u(0) {}
15 };
16 
18 struct fill16 {
19  uint16_t u;
20 
21  fill16() : u(0) {}
22 };
23 
25 struct fill24 {
26  uint8_t u[3];
27 
28  fill24() {
29  u[0] = u[1] = u[2] = 0;
30  }
31 };
32 
34 struct fill32 {
35  uint32_t u;
36 
37  fill32() : u(0) {}
38 };
39 
40 // followings are for older codes that use "number of bytes" naming.
41 // when all of such codes are kicked out from our code base, these should go away too.
42 struct fill1 {
43  uint8_t u;
44 
45  fill1() : u(0) {}
46 };
47 
48 struct fill2 {
49  uint16_t u;
50 
51  fill2() : u(0) {}
52 };
53 
54 struct fill3 {
55  uint8_t u[3];
56 
57  fill3() {
58  u[0] = u[1] = u[2] = 0;
59  }
60 };
61 
62 struct fill4 {
63  uint32_t u;
64 
65  fill4() : u(0) {}
66 };
67 
68 #endif // __W_FILL_H
Auto-initialized 4-byte (32-bits) filler for alignment of structures.
Definition: w_fill.h:34
Definition: w_fill.h:54
fill4()
Definition: w_fill.h:65
fill2()
Definition: w_fill.h:51
fill16()
Definition: w_fill.h:21
fill8()
Definition: w_fill.h:14
fill3()
Definition: w_fill.h:57
fill32()
Definition: w_fill.h:37
uint16_t u
Definition: w_fill.h:49
Definition: w_fill.h:48
uint32_t u
Definition: w_fill.h:35
uint8_t u
Definition: w_fill.h:12
uint16_t u
Definition: w_fill.h:19
fill1()
Definition: w_fill.h:45
fill24()
Definition: w_fill.h:28
Definition: w_fill.h:62
Definition: w_fill.h:42
uint32_t u
Definition: w_fill.h:63
Auto-initialized 3-byte (24-bits) filler for alignment of structures.
Definition: w_fill.h:25
Auto-initialized 1-byte (8-bits) filler for alignment of structures.
Definition: w_fill.h:11
Auto-initialized 2-byte (16-bits) filler for alignment of structures.
Definition: w_fill.h:18
uint8_t u
Definition: w_fill.h:43