144 |
for(q = p; q != NULL; q = q->next) { |
for(q = p; q != NULL; q = q->next) { |
145 |
acc += lwip_chksum(q->payload, q->len); |
acc += lwip_chksum(q->payload, q->len); |
146 |
while(acc >> 16) { |
while(acc >> 16) { |
147 |
acc = (acc & 0xffff) + (acc >> 16); |
acc = (acc & 0xffffUL) + (acc >> 16); |
148 |
} |
} |
149 |
if(q->len % 2 != 0) { |
if(q->len % 2 != 0) { |
150 |
swapped = 1 - swapped; |
swapped = 1 - swapped; |
151 |
acc = (acc & 0xff << 8) | (acc & 0xff00 >> 8); |
acc = (acc & 0x00ffUL << 8) | (acc & 0xff00UL >> 8); |
152 |
} |
} |
153 |
} |
} |
154 |
|
|
155 |
if(swapped) { |
if(swapped) { |
156 |
acc = ((acc & 0xff) << 8) | ((acc & 0xff00) >> 8); |
acc = ((acc & 0x00ffUL) << 8) | ((acc & 0xff00UL) >> 8); |
157 |
} |
} |
158 |
return ~(acc & 0xffff); |
return ~(acc & 0xffffUL); |
159 |
} |
} |
160 |
|
|
161 |
|
|