Fix FS#12824 : Malfunctioning FFT plugin in Sansa Clip Zip
[maemo-rb.git] / utils / rk27utils / rk27load / checksum.c
blobf0fe59350e71791cb6cb1aa5a6888ed2307e824c
1 #include <stdint.h>
2 #include "checksum.h"
4 uint16_t checksum(void *buff, uint32_t size)
6 uint32_t r2 = 0xffff;
7 uint32_t r3 = 0;
8 uint32_t i, j;
10 for (i=0; i<size; i++) {
11 r3 = 0x80;
12 for (j=0; j<8; j++) {
13 if ((r2 & 0x8000) != 0) {
14 r2 <<= 17;
15 r2 >>= 16;
16 r2 ^= 0x1000;
17 r2 ^= 0x21;
19 else {
20 r2 <<= 17;
21 r2 >>= 16;
24 if ((((uint8_t *)buff)[i] & r3) != 0) {
25 r2 ^= 0x1000;
26 r2 ^= 0x21;
29 r3 >>= 1;
33 return r2 & 0xffff;