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_at_backplane.com>Received on Wed Jul 11 2007 - 19:07:08 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:14 UTC