Main Page | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

SRC/chksum.h

Go to the documentation of this file.
00001 00003 #ifndef _w32_CHECK_SUM_H 00004 #define _w32_CHECK_SUM_H 00005 00006 #define in_checksum NAMESPACE (in_checksum) 00007 #define in_checksum_fast NAMESPACE (in_checksum_fast) 00008 #define do_checksum NAMESPACE (do_checksum) 00009 00010 W32_FUNC WORD in_checksum (const void *ptr, unsigned len); 00011 extern int do_checksum (const BYTE *buf, BYTE proto, unsigned len); 00012 00013 extern WORD _ip6_checksum (const in6_Header *ip, WORD proto, 00014 const void *payload, unsigned payloadlen); 00015 extern int _ip6_tcp_checksum (const in6_Header *ip, const tcp_Header *tcp, unsigned len); 00016 extern int _ip6_udp_checksum (const in6_Header *ip, const udp_Header *udp, unsigned len); 00017 extern int _ip6_icmp_checksum (const in6_Header *ip, const void *icmp, unsigned len); 00018 00019 /* 00020 * In chksum0.asm / chksum0.s 00021 * Fast asm-version doesn't work with Watcom (don't know why). 00022 * LCC-win32's linker doesn't handle tasm's object files. So use 00023 * the slow C-version. 00024 */ 00025 #if (DOSX) 00026 extern WORD cdecl in_checksum_fast (const void *ptr, unsigned len); 00027 00028 #if defined(__WATCOMC__) 00029 /* No decoration. Args on stack. All regs preserved */ 00030 #pragma aux (cdecl) _w32_in_checksum_fast "_*" parm caller[]; 00031 #elif defined(__HIGHC__) 00032 #pragma alias (_w32_in_checksum_fast, "_w32_in_checksum_fast") 00033 #endif 00034 00035 #if defined(__WATCOMC__) || defined(__LCC__) 00036 #define CHECKSUM(p, len) in_checksum (p, len) 00037 #else 00038 #define HAVE_IN_CHECKSUM_FAST 00039 #define CHECKSUM(p, len) in_checksum_fast (p, len) 00040 #endif 00041 #else 00042 #define CHECKSUM(p, len) in_checksum (p, len) 00043 #endif 00044 00045 #endif

Generated on Wed Aug 4 08:55:47 2010 for Watt-32 tcp/ip by doxygen 1.3.8