]>
Commit | Line | Data |
---|---|---|
09831ca7 AJ |
1 | /* |
2 | * Copyright (C) 2011 Texas Instruments Incorporated | |
3 | * Author: Mark Salter <msalter@redhat.com> | |
4 | * | |
5 | * This program is free software; you can redistribute it and/or modify | |
6 | * it under the terms of the GNU General Public License version 2 as | |
7 | * published by the Free Software Foundation. | |
8 | */ | |
9 | #ifndef _ASM_C6X_CHECKSUM_H | |
10 | #define _ASM_C6X_CHECKSUM_H | |
11 | ||
12 | static inline __wsum | |
01cfbad7 AD |
13 | csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len, |
14 | __u8 proto, __wsum sum) | |
09831ca7 AJ |
15 | { |
16 | unsigned long long tmp; | |
17 | ||
18 | asm ("add .d1 %1,%5,%1\n" | |
19 | "|| addu .l1 %3,%4,%0\n" | |
20 | "addu .l1 %2,%0,%0\n" | |
21 | #ifndef CONFIG_CPU_BIG_ENDIAN | |
22 | "|| shl .s1 %1,8,%1\n" | |
23 | #endif | |
24 | "addu .l1 %1,%0,%0\n" | |
25 | "add .l1 %P0,%p0,%2\n" | |
26 | : "=&a"(tmp), "+a"(len), "+a"(sum) | |
27 | : "a" (saddr), "a" (daddr), "a" (proto)); | |
28 | return sum; | |
29 | } | |
30 | #define csum_tcpudp_nofold csum_tcpudp_nofold | |
31 | ||
32 | #include <asm-generic/checksum.h> | |
33 | ||
34 | #endif /* _ASM_C6X_CHECKSUM_H */ |