patch-2.1.115 linux/include/asm-mips/checksum.h
Next file: linux/include/asm-mips/ide.h
Previous file: linux/include/asm-m68k/pgtable.h
Back to the patch index
Back to the overall index
- Lines: 94
- Date:
Tue Aug 4 16:06:57 1998
- Orig file:
v2.1.114/linux/include/asm-mips/checksum.h
- Orig date:
Tue Dec 16 12:46:01 1997
diff -u --recursive --new-file v2.1.114/linux/include/asm-mips/checksum.h linux/include/asm-mips/checksum.h
@@ -1,11 +1,10 @@
-/*
- * include/asm-mips/checksum.h
+/* $Id: checksum.h,v 1.8 1998/05/07 00:39:59 ralf Exp $
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
- * Copyright (C) 1995 by Ralf Baechle
+ * Copyright (C) 1995, 1996, 1997, 1998 by Ralf Baechle
*/
#ifndef __ASM_MIPS_CHECKSUM_H
#define __ASM_MIPS_CHECKSUM_H
@@ -25,13 +24,18 @@
unsigned int csum_partial(const unsigned char * buff, int len, unsigned int sum);
/*
- * the same as csum_partial, but copies from src while it
- * checksums
- *
- * here even more important to align src and dst on a 32-bit (or even
- * better 64-bit) boundary
+ * this is a new version of the above that records errors it finds in *errp,
+ * but continues and zeros the rest of the buffer.
*/
-unsigned int csum_partial_copy(const char *src, char *dst, int len, unsigned int sum);
+unsigned int csum_partial_copy_nocheck(const char *src, char *dst, int len,
+ unsigned int sum);
+
+/*
+ * this is a new version of the above that records errors it finds in *errp,
+ * but continues and zeros the rest of the buffer.
+ */
+unsigned int csum_partial_copy_from_user(const char *src, char *dst, int len,
+ unsigned int sum, int *errp);
/*
* the same as csum_partial, but copies from user space (but on MIPS
@@ -40,14 +44,9 @@
* this is obsolete and will go away.
*/
#define csum_partial_copy_fromuser csum_partial_copy
+unsigned int csum_partial_copy(const char *src, char *dst, int len, unsigned int sum);
/*
- * this is a new version of the above that records errors it finds in *errp,
- * but continues and zeros the rest of the buffer.
- */
-unsigned int csum_partial_copy_from_user(const char *src, char *dst, int len, unsigned int sum, int *errp);
-
-/*
* Fold a partial checksum without adding pseudo headers
*/
static inline unsigned short int csum_fold(unsigned int sum)
@@ -126,11 +125,11 @@
* computes the checksum of the TCP/UDP pseudo-header
* returns a 16-bit checksum, already complemented
*/
-static inline unsigned short int csum_tcpudp_magic(unsigned long saddr,
- unsigned long daddr,
- unsigned short len,
- unsigned short proto,
- unsigned int sum)
+static inline unsigned long csum_tcpudp_nofold(unsigned long saddr,
+ unsigned long daddr,
+ unsigned short len,
+ unsigned short proto,
+ unsigned int sum)
{
__asm__("
.set noat
@@ -156,7 +155,20 @@
"r"(sum)
: "$1");
- return csum_fold(sum);
+ return sum;
+}
+
+/*
+ * computes the checksum of the TCP/UDP pseudo-header
+ * returns a 16-bit checksum, already complemented
+ */
+static inline unsigned short int csum_tcpudp_magic(unsigned long saddr,
+ unsigned long daddr,
+ unsigned short len,
+ unsigned short proto,
+ unsigned int sum)
+{
+ return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum));
}
/*
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov