16 static short endian = 1;
17 static uint8_t* aendian = ( uint8_t *)&endian;
18 #define LITTLE *aendian
21 ptclbsum(uint8_t *addr, int len)
23 uint32_t losum, hisum, mdsum, x;
31 if((uint32_t)addr & 1) {
40 t1 = *(uint16_t*)(addr+0);
41 t2 = *(uint16_t*)(addr+2); mdsum += t1;
42 t1 = *(uint16_t*)(addr+4); mdsum += t2;
43 t2 = *(uint16_t*)(addr+6); mdsum += t1;
44 t1 = *(uint16_t*)(addr+8); mdsum += t2;
45 t2 = *(uint16_t*)(addr+10); mdsum += t1;
46 t1 = *(uint16_t*)(addr+12); mdsum += t2;
47 t2 = *(uint16_t*)(addr+14); mdsum += t1;
53 mdsum += *(uint16_t*)addr;
74 losum += (hisum & 0xff) << 8;
75 while(hisum = losum>>16)
76 losum = hisum + (losum & 0xffff);
78 return losum & 0xffff;