diff options
author | Aurelien Jacquiot <a-jacquiot@ti.com> | 2011-10-04 11:15:51 -0400 |
---|---|---|
committer | Mark Salter <msalter@redhat.com> | 2011-10-06 19:48:23 -0400 |
commit | 09831ca73443bd819ad7993db5409b19c899ba33 (patch) | |
tree | 4558fb0a5e0e1fcd8582be2155cd9c7498e429db /arch/c6x/include | |
parent | a7f626c1948ab6178d2338831c5ffea7385e9f7f (diff) |
C6X: library code
Original port to early 2.6 kernel using TI COFF toolchain.
Brought up to date by Mark Salter <msalter@redhat.com>
Signed-off-by: Aurelien Jacquiot <a-jacquiot@ti.com>
Signed-off-by: Mark Salter <msalter@redhat.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/c6x/include')
-rw-r--r-- | arch/c6x/include/asm/checksum.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/arch/c6x/include/asm/checksum.h b/arch/c6x/include/asm/checksum.h new file mode 100644 index 000000000000..7246816d6e4d --- /dev/null +++ b/arch/c6x/include/asm/checksum.h | |||
@@ -0,0 +1,34 @@ | |||
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 | ||
13 | csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, | ||
14 | unsigned short proto, __wsum sum) | ||
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 */ | ||