Revision b6dce92e slirp/cksum.c
b/slirp/cksum.c | ||
---|---|---|
47 | 47 |
|
48 | 48 |
int cksum(struct mbuf *m, int len) |
49 | 49 |
{ |
50 |
register u_int16_t *w;
|
|
50 |
register uint16_t *w; |
|
51 | 51 |
register int sum = 0; |
52 | 52 |
register int mlen = 0; |
53 | 53 |
int byte_swapped = 0; |
54 | 54 |
|
55 | 55 |
union { |
56 |
u_int8_t c[2];
|
|
57 |
u_int16_t s;
|
|
56 |
uint8_t c[2];
|
|
57 |
uint16_t s;
|
|
58 | 58 |
} s_util; |
59 | 59 |
union { |
60 |
u_int16_t s[2];
|
|
61 |
u_int32_t l;
|
|
60 |
uint16_t s[2]; |
|
61 |
uint32_t l; |
|
62 | 62 |
} l_util; |
63 | 63 |
|
64 | 64 |
if (m->m_len == 0) |
65 | 65 |
goto cont; |
66 |
w = mtod(m, u_int16_t *);
|
|
66 |
w = mtod(m, uint16_t *); |
|
67 | 67 |
|
68 | 68 |
mlen = m->m_len; |
69 | 69 |
|
... | ... | |
78 | 78 |
if ((1 & (long) w) && (mlen > 0)) { |
79 | 79 |
REDUCE; |
80 | 80 |
sum <<= 8; |
81 |
s_util.c[0] = *(u_int8_t *)w;
|
|
82 |
w = (u_int16_t *)((int8_t *)w + 1);
|
|
81 |
s_util.c[0] = *(uint8_t *)w; |
|
82 |
w = (uint16_t *)((int8_t *)w + 1); |
|
83 | 83 |
mlen--; |
84 | 84 |
byte_swapped = 1; |
85 | 85 |
} |
... | ... | |
111 | 111 |
REDUCE; |
112 | 112 |
sum <<= 8; |
113 | 113 |
if (mlen == -1) { |
114 |
s_util.c[1] = *(u_int8_t *)w;
|
|
114 |
s_util.c[1] = *(uint8_t *)w; |
|
115 | 115 |
sum += s_util.s; |
116 | 116 |
mlen = 0; |
117 | 117 |
} else |
118 | 118 |
|
119 | 119 |
mlen = -1; |
120 | 120 |
} else if (mlen == -1) |
121 |
s_util.c[0] = *(u_int8_t *)w;
|
|
121 |
s_util.c[0] = *(uint8_t *)w; |
|
122 | 122 |
|
123 | 123 |
cont: |
124 | 124 |
#ifdef DEBUG |
Also available in: Unified diff