77#define printstruct (str ) printf("type %s struct { // size %lu\n", #str, sizeof(struct str))
88#define printmember (str , mem , typ ) printf("\t%s %s // offset %lu, size %lu\n", #mem == "type" ? "typ" : #mem, typ, offsetof(struct str, mem), sizeof((struct str){0}.mem))
99#define printunimem (str , uni , mem , typ ) printf("\t%s %s // offset %lu, size %lu\n", #mem, typ, offsetof(struct str, uni.mem), sizeof((struct str){0}.uni.mem))
10- #define printalign1 (str , mem2 , mem1 , siz1 ) printf("\t_ [%lu]byte // align\n", offsetof(struct str, mem2) - offsetof(struct str, mem1) - siz1 )
11- #define printfiller (str , mem1 , siz1 ) printf("\t_ [%lu]byte // filler\n", sizeof(struct str) - offsetof(struct str, mem1 ) - siz1 )
10+ #define printalign1 (str , mem2 , mem1 ) printf("\t_ [%lu]byte // align\n", offsetof(struct str, mem2) - offsetof(struct str, mem1) - sizeof((struct str){0}.mem1) )
11+ #define printfiller (str , mem ) printf("\t_ [%lu]byte // filler\n", sizeof(struct str) - offsetof(struct str, mem ) - sizeof((struct str){0}.mem) )
1212
1313int main () {
1414 printf ("const (\n" );
@@ -51,9 +51,9 @@ int main() {
5151
5252 printstruct (v4l2_format );
5353 printmember (v4l2_format , type , "uint32" );
54- printalign1 (v4l2_format , fmt , type , 4 );
54+ printalign1 (v4l2_format , fmt , type );
5555 printunimem (v4l2_format , fmt , pix , "v4l2_pix_format" );
56- printfiller (v4l2_format , fmt , sizeof ( struct v4l2_pix_format ) );
56+ printfiller (v4l2_format , fmt . pix );
5757 printf ("}\n\n" );
5858
5959 printstruct (v4l2_pix_format );
@@ -74,7 +74,7 @@ int main() {
7474 printstruct (v4l2_streamparm );
7575 printmember (v4l2_streamparm , type , "uint32" );
7676 printunimem (v4l2_streamparm , parm , capture , "v4l2_captureparm" );
77- printfiller (v4l2_streamparm , parm , sizeof ( struct v4l2_captureparm ) );
77+ printfiller (v4l2_streamparm , parm . capture );
7878 printf ("}\n\n" );
7979
8080 printstruct (v4l2_captureparm );
@@ -106,14 +106,14 @@ int main() {
106106 printmember (v4l2_buffer , bytesused , "uint32" );
107107 printmember (v4l2_buffer , flags , "uint32" );
108108 printmember (v4l2_buffer , field , "uint32" );
109- printalign1 (v4l2_buffer , timecode , field , 4 );
109+ printalign1 (v4l2_buffer , timecode , field );
110110 printmember (v4l2_buffer , timecode , "v4l2_timecode" );
111111 printmember (v4l2_buffer , sequence , "uint32" );
112112 printmember (v4l2_buffer , memory , "uint32" );
113113 printunimem (v4l2_buffer , m , offset , "uint32" );
114- printalign1 (v4l2_buffer , length , m , 4 );
114+ printalign1 (v4l2_buffer , length , m . offset );
115115 printmember (v4l2_buffer , length , "uint32" );
116- printfiller (v4l2_buffer , length , 4 );
116+ printfiller (v4l2_buffer , length );
117117 printf ("}\n\n" );
118118
119119 printstruct (v4l2_timecode );
@@ -141,7 +141,7 @@ int main() {
141141 printmember (v4l2_frmsizeenum , pixel_format , "uint32" );
142142 printmember (v4l2_frmsizeenum , type , "uint32" );
143143 printmember (v4l2_frmsizeenum , discrete , "v4l2_frmsize_discrete" );
144- printfiller (v4l2_frmsizeenum , discrete , sizeof ( struct v4l2_frmsize_discrete ) );
144+ printfiller (v4l2_frmsizeenum , discrete );
145145 printf ("}\n\n" );
146146
147147 printstruct (v4l2_frmsize_discrete );
@@ -156,7 +156,7 @@ int main() {
156156 printmember (v4l2_frmivalenum , height , "uint32" );
157157 printmember (v4l2_frmivalenum , type , "uint32" );
158158 printmember (v4l2_frmivalenum , discrete , "v4l2_fract" );
159- printfiller (v4l2_frmivalenum , discrete , sizeof ( struct v4l2_fract ) );
159+ printfiller (v4l2_frmivalenum , discrete );
160160 printf ("}\n\n" );
161161
162162 return 0 ;
0 commit comments