repo.or.cz
/
maemo-rb.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
keyclick: Add a callback so screens can cancel a click. Add a generic list callback...
[maemo-rb.git]
/
utils
/
rk27utils
/
rk27load
/
checksum.c
blob
f0fe59350e71791cb6cb1aa5a6888ed2307e824c
1
#include <stdint.h>
2
#include
"checksum.h"
3
4
uint16_t
checksum
(
void
*
buff
,
uint32_t
size
)
5
{
6
uint32_t
r2
=
0xffff
;
7
uint32_t
r3
=
0
;
8
uint32_t
i
,
j
;
9
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
;
18
}
19
else
{
20
r2
<<=
17
;
21
r2
>>=
16
;
22
}
23
24
if
((((
uint8_t
*)
buff
)[
i
] &
r3
) !=
0
) {
25
r2
^=
0x1000
;
26
r2
^=
0x21
;
27
}
28
29
r3
>>=
1
;
30
}
31
}
32
33
return
r2
&
0xffff
;
34
}
35