2 #include "../port/lib.h"
6 #include "../port/error.h"
9 static short endian = 1;
10 static uchar* aendian = (uchar*)&endian;
11 #define LITTLE *aendian
14 ptclbsum(uchar *addr, int len)
16 ulong losum, hisum, mdsum, x;
33 t1 = *(ushort*)(addr+0);
34 t2 = *(ushort*)(addr+2); mdsum += t1;
35 t1 = *(ushort*)(addr+4); mdsum += t2;
36 t2 = *(ushort*)(addr+6); mdsum += t1;
37 t1 = *(ushort*)(addr+8); mdsum += t2;
38 t2 = *(ushort*)(addr+10); mdsum += t1;
39 t1 = *(ushort*)(addr+12); mdsum += t2;
40 t2 = *(ushort*)(addr+14); mdsum += t1;
46 mdsum += *(ushort*)addr;
67 losum += (hisum & 0xff) << 8;
68 while(hisum = losum>>16)
69 losum = hisum + (losum & 0xffff);
71 return losum & 0xffff;