ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

checksum.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.