[PATCH] i4l: __attribute__((packed)) for the CAPI message structs
authorJan Blunck <jblunck@suse.de>
Sun, 8 Jan 2006 09:05:09 +0000 (01:05 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 9 Jan 2006 04:14:08 +0000 (20:14 -0800)
The CAPI message structs itself should be packed and not the location of
single fields in the structure.

Signed-off-by: Jan Blunck <jblunck@suse.de>
Acked-by: Karsten Keil <kkeil@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/isdn/act2000/capi.h

index e82a9289ad96693ab214ad8709003abacf2e9d8d..49f453c53c64d9de0c1784df30b65e171c6792f1 100644 (file)
@@ -78,29 +78,29 @@ typedef union  actcapi_infoel {              /* info element                 */
 typedef struct actcapi_msn {
        __u8 eaz;
        __u8 len;                            /* Length of MSN                */
-       __u8 msn[15] __attribute__ ((packed));
-} actcapi_msn;
+       __u8 msn[15];
+}  __attribute__((packed)) actcapi_msn;
 
 typedef struct actcapi_dlpd {
        __u8 len;                            /* Length of structure          */
-       __u16 dlen __attribute__ ((packed)); /* Data Length                  */
-       __u8 laa __attribute__ ((packed));   /* Link Address A               */
+       __u16 dlen;                          /* Data Length                  */
+       __u8 laa;                            /* Link Address A               */
        __u8 lab;                            /* Link Address B               */
        __u8 modulo;                         /* Modulo Mode                  */
        __u8 win;                            /* Window size                  */
        __u8 xid[100];                       /* XID Information              */
-} actcapi_dlpd;
+} __attribute__((packed)) actcapi_dlpd;
 
 typedef struct actcapi_ncpd {
        __u8   len;                          /* Length of structure          */
-       __u16  lic __attribute__ ((packed));
-       __u16  hic __attribute__ ((packed));
-       __u16  ltc __attribute__ ((packed));
-       __u16  htc __attribute__ ((packed));
-       __u16  loc __attribute__ ((packed));
-       __u16  hoc __attribute__ ((packed));
-       __u8   modulo __attribute__ ((packed));
-} actcapi_ncpd;
+       __u16  lic;
+       __u16  hic;
+       __u16  ltc;
+       __u16  htc;
+       __u16  loc;
+       __u16  hoc;
+       __u8   modulo;
+} __attribute__((packed)) actcapi_ncpd;
 #define actcapi_ncpi actcapi_ncpd
 
 /*
@@ -168,19 +168,19 @@ typedef struct actcapi_msg {
                        __u16 manuf_msg;
                        __u16 controller;
                        actcapi_msn msnmap;
-               } manufacturer_req_msn;
+               } __attribute ((packed)) manufacturer_req_msn;
                /* TODO: TraceInit-req/conf/ind/resp and
                 *       TraceDump-req/conf/ind/resp
                 */
                struct connect_req {
                        __u8  controller;
                        __u8  bchan;
-                       __u32 infomask __attribute__ ((packed));
+                       __u32 infomask;
                        __u8  si1;
                        __u8  si2;
                        __u8  eaz;
                        actcapi_addr addr;
-               } connect_req;
+               } __attribute__ ((packed)) connect_req;
                struct connect_conf {
                        __u16 plci;
                        __u16 info;
@@ -192,7 +192,7 @@ typedef struct actcapi_msg {
                        __u8  si2;
                        __u8  eaz;
                        actcapi_addr addr;
-               } connect_ind;
+               } __attribute__ ((packed)) connect_ind;
                struct connect_resp {
                        __u16 plci;
                        __u8  rejectcause;
@@ -200,14 +200,14 @@ typedef struct actcapi_msg {
                struct connect_active_ind {
                        __u16 plci;
                        actcapi_addr addr;
-               } connect_active_ind;
+               } __attribute__ ((packed)) connect_active_ind;
                struct connect_active_resp {
                        __u16 plci;
                } connect_active_resp;
                struct connect_b3_req {
                        __u16 plci;
                        actcapi_ncpi ncpi;
-               } connect_b3_req;
+               } __attribute__ ((packed)) connect_b3_req;
                struct connect_b3_conf {
                        __u16 plci;
                        __u16 ncci;
@@ -217,12 +217,12 @@ typedef struct actcapi_msg {
                        __u16 ncci;
                        __u16 plci;
                        actcapi_ncpi ncpi;
-               } connect_b3_ind;
+               } __attribute__ ((packed)) connect_b3_ind;
                struct connect_b3_resp {
                        __u16 ncci;
                        __u8  rejectcause;
-                       actcapi_ncpi ncpi __attribute__ ((packed));
-               } connect_b3_resp;
+                       actcapi_ncpi ncpi;
+               } __attribute__ ((packed)) connect_b3_resp;
                struct disconnect_req {
                        __u16 plci;
                        __u8  cause;
@@ -241,14 +241,14 @@ typedef struct actcapi_msg {
                struct connect_b3_active_ind {
                        __u16 ncci;
                        actcapi_ncpi ncpi;
-               } connect_b3_active_ind;
+               } __attribute__ ((packed)) connect_b3_active_ind;
                struct connect_b3_active_resp {
                        __u16 ncci;
                } connect_b3_active_resp;
                struct disconnect_b3_req {
                        __u16 ncci;
                        actcapi_ncpi ncpi;
-               } disconnect_b3_req;
+               } __attribute__ ((packed)) disconnect_b3_req;
                struct disconnect_b3_conf {
                        __u16 ncci;
                        __u16 info;
@@ -257,7 +257,7 @@ typedef struct actcapi_msg {
                        __u16 ncci;
                        __u16 info;
                        actcapi_ncpi ncpi;
-               } disconnect_b3_ind;
+               } __attribute__ ((packed)) disconnect_b3_ind;
                struct disconnect_b3_resp {
                        __u16 ncci;
                } disconnect_b3_resp;
@@ -265,7 +265,7 @@ typedef struct actcapi_msg {
                        __u16 plci;
                        actcapi_infonr nr;
                        actcapi_infoel el;
-               } info_ind;
+               } __attribute__ ((packed)) info_ind;
                struct info_resp {
                        __u16 plci;
                } info_resp;
@@ -279,8 +279,8 @@ typedef struct actcapi_msg {
                struct select_b2_protocol_req {
                        __u16 plci;
                        __u8  protocol;
-                       actcapi_dlpd dlpd __attribute__ ((packed));
-               } select_b2_protocol_req;
+                       actcapi_dlpd dlpd;
+               } __attribute__ ((packed)) select_b2_protocol_req;
                struct select_b2_protocol_conf {
                        __u16 plci;
                        __u16 info;
@@ -288,47 +288,47 @@ typedef struct actcapi_msg {
                struct select_b3_protocol_req {
                        __u16 plci;
                        __u8  protocol;
-                       actcapi_ncpd ncpd __attribute__ ((packed));
-               } select_b3_protocol_req;
+                       actcapi_ncpd ncpd;
+               } __attribute__ ((packed)) select_b3_protocol_req;
                struct select_b3_protocol_conf {
                        __u16 plci;
                        __u16 info;
                } select_b3_protocol_conf;
                struct listen_req {
                        __u8  controller;
-                       __u32 infomask __attribute__ ((packed));  
-                       __u16 eazmask __attribute__ ((packed));
-                       __u16 simask __attribute__ ((packed));
-               } listen_req;
+                       __u32 infomask;
+                       __u16 eazmask;
+                       __u16 simask;
+               } __attribute__ ((packed)) listen_req;
                struct listen_conf {
                        __u8  controller;
-                       __u16 info __attribute__ ((packed));
-               } listen_conf;
+                       __u16 info;
+               } __attribute__ ((packed)) listen_conf;
                struct data_b3_req {
                        __u16 fakencci;
                        __u16 datalen;
                        __u32 unused;
                        __u8  blocknr;
-                       __u16 flags __attribute__ ((packed));
-               } data_b3_req;
+                       __u16 flags;
+               } __attribute ((packed)) data_b3_req;
                struct data_b3_ind {
                        __u16 fakencci;
                        __u16 datalen;
                        __u32 unused;
                        __u8  blocknr;
-                       __u16 flags __attribute__ ((packed));
-               } data_b3_ind;
+                       __u16 flags;
+               } __attribute__ ((packed)) data_b3_ind;
                struct data_b3_resp {
                        __u16 ncci;
                        __u8  blocknr;
-               } data_b3_resp;
+               } __attribute__ ((packed)) data_b3_resp;
                struct data_b3_conf {
                        __u16 ncci;
                        __u8  blocknr;
-                       __u16 info __attribute__ ((packed));
-               } data_b3_conf;
+                       __u16 info;
+               } __attribute__ ((packed)) data_b3_conf;
        } msg;
-} actcapi_msg;
+} __attribute__ ((packed)) actcapi_msg;
 
 static inline unsigned short
 actcapi_nextsmsg(act2000_card *card)