1
2
3
4
5
6
7
8
9
10#ifndef _ASM_MICROBLAZE_CHECKSUM_H
11#define _ASM_MICROBLAZE_CHECKSUM_H
12
13
14
15
16
17#define csum_tcpudp_nofold csum_tcpudp_nofold
18static inline __wsum
19csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len,
20 __u8 proto, __wsum sum)
21{
22 __asm__("add %0, %0, %1\n\t"
23 "addc %0, %0, %2\n\t"
24 "addc %0, %0, %3\n\t"
25 "addc %0, %0, r0\n\t"
26 : "+&d" (sum)
27 : "d" (saddr), "d" (daddr),
28#ifdef __MICROBLAZEEL__
29 "d" ((len + proto) << 8)
30#else
31 "d" (len + proto)
32#endif
33);
34 return sum;
35}
36
37#include <asm-generic/checksum.h>
38
39#endif
40