Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Jul 2007 14:07:07 -0700 (PDT)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Zhouyi Zhou <zhouzhouyi@freebsd.org>
Cc:        Alexander Leidinger <Alexander@Leidinger.net>, freebsd-current@freebsd.org, freebsd-hackers@freebsd.org
Subject:   Re: rewrite src/sys/i386/i386/in_cksum.c
Message-ID:  <200707112107.l6BL77Gj061858@apollo.backplane.com>
References:  <20070709105547.71827eb8.zhouzhouyi@FreeBSD.org> <20070709115637.sapzl5uq3osw4gc4@webmail.leidinger.net> <00d901c7c222$109cb310$f100a8c0@iosdf17a8152bc>

next in thread | previous in thread | raw e-mail | index | archive | help
    Here's a reference to the DragonFly code:

    http://www.dragonflybsd.org/cvsweb/src/sys/cpu/i386/misc/in_cksum2.s
    http://www.dragonflybsd.org/cvsweb/src/sys/netinet/in_cksum.c

    It's pretty simple.  The core 1's complement checksum is now written
    in machine-dependant assembly and ONLY handles multiples of 32 bit
    words.  In otherwords, no special cases.  The mbuf wrapper is written
    in machine-independant C, calls the assembly for the bulk of the work,
    and handles all the edge cases.

    The rewrite is much cleaner and the code documentation is actually
    understandable.  Plus only a very simple core needs to be written in
    assembly and the C wrapper is machine independant, instead of embedding
    the assembly with the C and praying the compiler doesn't blow things up.

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200707112107.l6BL77Gj061858>