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

routines.c
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:        tcpip/routines.c
00005  * PURPOSE:     Common routines
00006  * PROGRAMMERS: Casper S. Hornstrup (chorns@users.sourceforge.net)
00007  * REVISIONS:
00008  *   CSH 01/08-2000 Created
00009  */
00010 
00011 #include "precomp.h"
00012 
00013 static UINT RandomNumber = 0x12345678;
00014 
00015 
00016 UINT Random(
00017     VOID)
00018 /*
00019  * FUNCTION: Returns a pseudo random number
00020  * RETURNS:
00021  *     Pseudo random number
00022  */
00023 {
00024     RandomNumber ^= 0x78563412;
00025 
00026     return RandomNumber;
00027 }
00028 
00029 #if DBG
00030 static VOID DisplayIPHeader(
00031     PCHAR Header,
00032     UINT Length)
00033 {
00034     /* FIXME: IPv4 only */
00035     PIPv4_HEADER IPHeader = (PIPv4_HEADER)Header;
00036 
00037     DbgPrint("IPv4 header:\n");
00038     DbgPrint("VerIHL: 0x%x (version 0x%x, length %d 32-bit words)\n",
00039       IPHeader->VerIHL, (IPHeader->VerIHL & 0xF0) >> 4, IPHeader->VerIHL & 0x0F);
00040     DbgPrint("  Tos: %d\n", IPHeader->Tos);
00041     DbgPrint("  TotalLength: %d\n", WN2H(IPHeader->TotalLength));
00042     DbgPrint("  Id: %d\n", WN2H(IPHeader->Id));
00043     DbgPrint("  FlagsFragOfs: 0x%x (offset 0x%x)\n", WN2H(IPHeader->FlagsFragOfs), WN2H(IPHeader->FlagsFragOfs) & IPv4_FRAGOFS_MASK);
00044     if ((WN2H(IPHeader->FlagsFragOfs) & IPv4_DF_MASK) > 0) DbgPrint("    IPv4_DF - Don't fragment\n");
00045     if ((WN2H(IPHeader->FlagsFragOfs) & IPv4_MF_MASK) > 0) DbgPrint("    IPv4_MF - More fragments\n");
00046     DbgPrint("  Ttl: %d\n", IPHeader->Ttl);
00047     DbgPrint("  Protocol: %d\n", IPHeader->Protocol);
00048     DbgPrint("  Checksum: 0x%x\n", WN2H(IPHeader->Checksum));
00049     DbgPrint("  SrcAddr: %d.%d.%d.%d\n",
00050       ((IPHeader->SrcAddr >> 0) & 0xFF), ((IPHeader->SrcAddr >> 8) & 0xFF),
00051       ((IPHeader->SrcAddr >> 16) & 0xFF), ((IPHeader->SrcAddr >> 24) & 0xFF));
00052     DbgPrint("  DstAddr: %d.%d.%d.%d\n",
00053       ((IPHeader->DstAddr >> 0) & 0xFF), ((IPHeader->DstAddr >> 8) & 0xFF),
00054       ((IPHeader->DstAddr >> 16) & 0xFF), ((IPHeader->DstAddr >> 24) & 0xFF));
00055 }
00056 
00057 #endif
00058 
00059 VOID DisplayIPPacket(
00060     PIP_PACKET IPPacket)
00061 {
00062 #if DBG
00063     UINT Length;
00064     PCHAR CharBuffer;
00065 
00066     if ((DbgQueryDebugFilterState(DPFLTR_TCPIP_ID, DEBUG_PBUFFER | DPFLTR_MASK) != TRUE) ||
00067         (DbgQueryDebugFilterState(DPFLTR_TCPIP_ID, DEBUG_IP | DPFLTR_MASK) != TRUE)) {
00068         return;
00069     }
00070 
00071     if (!IPPacket) {
00072         TI_DbgPrint(MIN_TRACE, ("Cannot display null packet.\n"));
00073         return;
00074     }
00075 
00076     TI_DbgPrint(MIN_TRACE, ("IPPacket is at (0x%X).\n", IPPacket));
00077     TI_DbgPrint(MIN_TRACE, ("Header buffer is at (0x%X).\n", IPPacket->Header));
00078     TI_DbgPrint(MIN_TRACE, ("Header size is (%d).\n", IPPacket->HeaderSize));
00079     TI_DbgPrint(MIN_TRACE, ("TotalSize (%d).\n", IPPacket->TotalSize));
00080     TI_DbgPrint(MIN_TRACE, ("NdisPacket (0x%X).\n", IPPacket->NdisPacket));
00081 
00082     CharBuffer = IPPacket->Header;
00083     Length = IPPacket->HeaderSize;
00084     DisplayIPHeader(CharBuffer, Length);
00085 #endif
00086 }
00087 

Generated on Sun May 27 2012 04:28:04 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.