Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys



Module Name:    src
Committed By:   joerg
Date:           Fri Jan 25 21:12:15 UTC 2008

Modified Files:
        src/sys/arch/alpha/conf: files.alpha
        src/sys/arch/amd64/conf: Makefile.amd64 files.amd64 std.amd64 std.xen
        src/sys/arch/arc/conf: files.arc
        src/sys/arch/arm/conf: Makefile.arm files.arm
        src/sys/arch/hppa/conf: files.hppa
        src/sys/arch/i386/conf: Makefile.i386 files.i386 std.i386
        src/sys/arch/m68k/conf: files.m68k
        src/sys/arch/mips/conf: files.mips
        src/sys/arch/powerpc/conf: files.powerpc
        src/sys/arch/sh3/conf: files.sh3
        src/sys/arch/sparc/conf: files.sparc
        src/sys/arch/sparc64/conf: Makefile.sparc64 files.sparc64
        src/sys/arch/usermode/conf: files.usermode
        src/sys/arch/vax/conf: files.vax
        src/sys/arch/xen/conf: Makefile.xen files.xen std.xen
        src/sys/conf: files
        src/sys/netinet: files.netinet in.h in4_cksum.c in_cksum.c
        src/sys/netinet6: files.netinet6 in6_cksum.c
Added Files:
        src/sys/arch/amd64/amd64: cpu_in_cksum.S
        src/sys/arch/i386/i386: cpu_in_cksum.S
        src/sys/netinet: cpu_in_cksum.c
Removed Files:
        src/sys/arch/alpha/alpha: in_cksum.c
        src/sys/arch/amd64/amd64: in_cksum.S
        src/sys/arch/i386/i386: in_cksum.S

Log Message:
Refactor in_cksum/in4_cksum/in6_cksum implementations:
- All three functions are included in the kernel by default.
  They call a backend function cpu_in_cksum after possibly
  computing the checksum of the pseudo header.
- cpu_in_cksum is the core to implement the one-complement sum.
  The default implementation is moderate fast on most platforms
  and provides a 32bit accumulator with 16bit addends for L32 platforms
  and a 64bit accumulator with 32bit addends for L64 platforms.
  It handles edge cases like very large mbuf chains (could happen with
  native IPv6 in the future) and provides a good base for new native
  implementations.
- Modify i386 and amd64 assembly to use the new interface.

This disables the MD implementations on !x86 until the conversion is
done. For Alpha, the portable version is faster.


To generate a diff of this commit:
cvs rdiff -r1.14 -r0 src/sys/arch/alpha/alpha/in_cksum.c
cvs rdiff -r1.177 -r1.178 src/sys/arch/alpha/conf/files.alpha
cvs rdiff -r0 -r1.1 src/sys/arch/amd64/amd64/cpu_in_cksum.S
cvs rdiff -r1.2 -r0 src/sys/arch/amd64/amd64/in_cksum.S
cvs rdiff -r1.22 -r1.23 src/sys/arch/amd64/conf/Makefile.amd64
cvs rdiff -r1.55 -r1.56 src/sys/arch/amd64/conf/files.amd64
cvs rdiff -r1.3 -r1.4 src/sys/arch/amd64/conf/std.amd64
cvs rdiff -r1.2 -r1.3 src/sys/arch/amd64/conf/std.xen
cvs rdiff -r1.60 -r1.61 src/sys/arch/arc/conf/files.arc
cvs rdiff -r1.29 -r1.30 src/sys/arch/arm/conf/Makefile.arm
cvs rdiff -r1.87 -r1.88 src/sys/arch/arm/conf/files.arm
cvs rdiff -r1.9 -r1.10 src/sys/arch/hppa/conf/files.hppa
cvs rdiff -r1.157 -r1.158 src/sys/arch/i386/conf/Makefile.i386
cvs rdiff -r1.331 -r1.332 src/sys/arch/i386/conf/files.i386
cvs rdiff -r1.26 -r1.27 src/sys/arch/i386/conf/std.i386
cvs rdiff -r0 -r1.1 src/sys/arch/i386/i386/cpu_in_cksum.S
cvs rdiff -r1.5 -r0 src/sys/arch/i386/i386/in_cksum.S
cvs rdiff -r1.43 -r1.44 src/sys/arch/m68k/conf/files.m68k
cvs rdiff -r1.57 -r1.58 src/sys/arch/mips/conf/files.mips
cvs rdiff -r1.66 -r1.67 src/sys/arch/powerpc/conf/files.powerpc
cvs rdiff -r1.36 -r1.37 src/sys/arch/sh3/conf/files.sh3
cvs rdiff -r1.143 -r1.144 src/sys/arch/sparc/conf/files.sparc
cvs rdiff -r1.64 -r1.65 src/sys/arch/sparc64/conf/Makefile.sparc64
cvs rdiff -r1.115 -r1.116 src/sys/arch/sparc64/conf/files.sparc64
cvs rdiff -r1.1 -r1.2 src/sys/arch/usermode/conf/files.usermode
cvs rdiff -r1.105 -r1.106 src/sys/arch/vax/conf/files.vax
cvs rdiff -r1.25 -r1.26 src/sys/arch/xen/conf/Makefile.xen
cvs rdiff -r1.79 -r1.80 src/sys/arch/xen/conf/files.xen
cvs rdiff -r1.4 -r1.5 src/sys/arch/xen/conf/std.xen
cvs rdiff -r1.887 -r1.888 src/sys/conf/files
cvs rdiff -r0 -r1.1 src/sys/netinet/cpu_in_cksum.c
cvs rdiff -r1.19 -r1.20 src/sys/netinet/files.netinet
cvs rdiff -r1.82 -r1.83 src/sys/netinet/in.h
cvs rdiff -r1.14 -r1.15 src/sys/netinet/in4_cksum.c
cvs rdiff -r1.21 -r1.22 src/sys/netinet/in_cksum.c
cvs rdiff -r1.7 -r1.8 src/sys/netinet6/files.netinet6
cvs rdiff -r1.21 -r1.22 src/sys/netinet6/in6_cksum.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index