-/* Common routines */
-
-static int in_cksum(unsigned short *buf, int sz)
-{
- int nleft = sz;
- int sum = 0;
- unsigned short *w = buf;
- unsigned short ans = 0;
-
- while (nleft > 1) {
- sum += *w++;
- nleft -= 2;
- }
-
- if (nleft == 1) {
- *(unsigned char *) (&ans) = *(unsigned char *) w;
- sum += ans;
- }
-
- sum = (sum >> 16) + (sum & 0xFFFF);
- sum += (sum >> 16);
- ans = ~sum;
- return ans;
-}
-