Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenchecksum.h
Go to the documentation of this file.
00001 /* 00002 * COPYRIGHT: See COPYING in the top level directory 00003 * PROJECT: ReactOS TCP/IP protocol driver 00004 * FILE: include/checksum.h 00005 * PURPOSE: Checksum routine definitions 00006 */ 00007 00008 #pragma once 00009 00010 00011 ULONG ChecksumFold( 00012 ULONG Sum); 00013 00014 ULONG ChecksumCompute( 00015 PVOID Data, 00016 UINT Count, 00017 ULONG Seed); 00018 00019 unsigned int 00020 csum_partial( 00021 const unsigned char * buff, 00022 int len, 00023 unsigned int sum); 00024 00025 ULONG 00026 UDPv4ChecksumCalculate( 00027 PIPv4_HEADER IPHeader, 00028 PUCHAR PacketBuffer, 00029 ULONG DataLength); 00030 00031 #define IPv4Checksum(Data, Count, Seed)(~ChecksumFold(ChecksumCompute(Data, Count, Seed))) 00032 #define TCPv4Checksum(Data, Count, Seed)(~ChecksumFold(csum_partial(Data, Count, Seed))) 00033 //#define TCPv4Checksum(Data, Count, Seed)(~ChecksumFold(ChecksumCompute(Data, Count, Seed))) 00034 00035 /* 00036 * Macro to check for a correct checksum 00037 * BOOLEAN IPv4CorrectChecksum(PVOID Data, UINT Count) 00038 */ 00039 #define IPv4CorrectChecksum(Data, Count) \ 00040 (BOOLEAN)(IPv4Checksum(Data, Count, 0) == DH2N(0x0000FFFF)) 00041 00042 /* 00043 * Macro to check for a correct checksum 00044 * BOOLEAN TCPv4CorrectChecksum(PTCPv4_PSEUDO_HEADER TcpPseudoHeader, 00045 * PVOID Data, UINT Count) 00046 */ 00047 #define TCPv4CorrectChecksum(TcpPseudoHeader, Data, Count) \ 00048 (BOOLEAN)(TCPv4Checksum(Data, Count, \ 00049 TCPv4Checksum(TcpPseudoHeader, sizeof(TCPv4_PSEUDO_HEADER), \ 00050 0)) == DH2N(0x0000FFFF)) Generated on Sun May 27 2012 04:28:06 for ReactOS by
1.7.6.1
|