OSDN Git Service

slirp: Fix bit field types in IP header structs
authorJan Kiszka <jan.kiszka@siemens.com>
Sat, 6 Aug 2011 12:23:29 +0000 (14:23 +0200)
committerJan Kiszka <jan.kiszka@siemens.com>
Mon, 15 Aug 2011 06:34:44 +0000 (23:34 -0700)
-mms-bitfields prevents that the bitfields in current IP header structs
are packed into a single byte as it is required. Fix this by using
uint8_t as backing type.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
slirp/ip.h
slirp/tcp.h

index 48ea38e..72dbe9a 100644 (file)
@@ -74,10 +74,10 @@ typedef uint32_t n_long;                 /* long as received from the net */
  */
 struct ip {
 #ifdef HOST_WORDS_BIGENDIAN
-       u_int ip_v:4,                   /* version */
+       uint8_t ip_v:4,                 /* version */
                ip_hl:4;                /* header length */
 #else
-       u_int ip_hl:4,          /* header length */
+       uint8_t ip_hl:4,                /* header length */
                ip_v:4;                 /* version */
 #endif
        uint8_t         ip_tos;                 /* type of service */
@@ -140,10 +140,10 @@ struct    ip_timestamp {
        uint8_t ipt_len;                /* size of structure (variable) */
        uint8_t ipt_ptr;                /* index of current entry */
 #ifdef HOST_WORDS_BIGENDIAN
-       u_int   ipt_oflw:4,             /* overflow counter */
+       uint8_t ipt_oflw:4,             /* overflow counter */
                ipt_flg:4;              /* flags, see below */
 #else
-       u_int   ipt_flg:4,              /* flags, see below */
+       uint8_t ipt_flg:4,              /* flags, see below */
                ipt_oflw:4;             /* overflow counter */
 #endif
        union ipt_timestamp {
index 9d06836..b3817cb 100644 (file)
@@ -51,10 +51,10 @@ struct tcphdr {
        tcp_seq th_seq;                 /* sequence number */
        tcp_seq th_ack;                 /* acknowledgement number */
 #ifdef HOST_WORDS_BIGENDIAN
-       u_int   th_off:4,               /* data offset */
+       uint8_t th_off:4,               /* data offset */
                th_x2:4;                /* (unused) */
 #else
-       u_int   th_x2:4,                /* (unused) */
+       uint8_t th_x2:4,                /* (unused) */
                th_off:4;               /* data offset */
 #endif
        uint8_t th_flags;