Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- u16 __checksum_ex( u16 sum, void const * _data, u16 len )
- {
- u16 t;
- const u08 * data = _data, *dataptr = data, *last_byte = data + len - 1;
- while(dataptr < last_byte) { /* At least two more bytes */
- t = (dataptr[0] << 8) + dataptr[1];
- sum += t;
- if(sum < t) ++sum; // carry
- dataptr += 2;
- }
- if(dataptr == last_byte) {
- t = (dataptr[0] << 8) + 0;
- sum += t;
- if(sum < t) ++sum; // carry
- }
- /* Return sum in host byte order. */
- return sum;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement