5 static short endian = 1;
6 static uchar* aendian = (uchar*)&endian;
7 #define LITTLE *aendian
10 ptclbsum(uchar *addr, int len)
12 ulong losum, hisum, mdsum, x;
29 t1 = *(ushort*)(addr+0);
30 t2 = *(ushort*)(addr+2); mdsum += t1;
31 t1 = *(ushort*)(addr+4); mdsum += t2;
32 t2 = *(ushort*)(addr+6); mdsum += t1;
33 t1 = *(ushort*)(addr+8); mdsum += t2;
34 t2 = *(ushort*)(addr+10); mdsum += t1;
35 t1 = *(ushort*)(addr+12); mdsum += t2;
36 t2 = *(ushort*)(addr+14); mdsum += t1;
42 mdsum += *(ushort*)addr;
63 losum += (hisum & 0xff) << 8;
64 while(hisum = losum>>16)
65 losum = hisum + (losum & 0xffff);
67 return losum & 0xffff;