test: memprint.h Source File

Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

# memprint.h

Go to the documentation of this file.

    00001 /*++ BUILD Version: 0001    // Increment this if a change has global effects
    00002
    00003 Copyright (c) 1990  Microsoft Corporation
    00004
    00005 Module Name:
    00006
    00007     memprint.h
    00008
    00009 Abstract:
    00010
    00011     Include file for in-memory DbgPrint function.  Including this file
    00012     will change DbgPrints to a routine which puts the display text in a
    00013     circular buffer in memory.  By default, the text is then sent to the
    00014     console via DbgPrint.  By changing the value of the MemPrintFlags
    00015     flag, however, the text may be routed to a file instead, thereby
    00016     significantly speeding up the DbgPrint operation.
    00017
    00018 Author:
    00019
    00020     David Treadwell (davidtr) 05-Oct-1990
    00021
    00022 Revision History:
    00023
    00024 --*/
    00025
    00026 #ifndef _MEMPRINT_
    00027 #define _MEMPRINT_
    00028
    00029 #define MEM_PRINT_FLAG_CONSOLE     0x01
    00030 #define MEM_PRINT_FLAG_FILE        0x02
    00031 #define MEM_PRINT_FLAG_HEADER      0x04
    00032
    00033 extern ULONG MemPrintFlags;
    00034
    00035 #ifdef MIPS
    00036 #define MEM_PRINT_DEF_BUFFER_SIZE 16384
    00037 #else
    00038 #define MEM_PRINT_DEF_BUFFER_SIZE 65536
    00039 #endif
    00040
    00041 //
    00042 // The subbuffer count is the number of subbuffers within the circular
    00043 // buffer.  A subbuffer is the method used to buffer data between
    00044 // MemPrint and writing to disk--when a subbuffer is filled, its
    00045 // contents are written to the log file.  This value should be a power
    00046 // of two between two and sixty-four (two is necessary to allow writing
    00047 // to disk and RAM simultaneously, sixty-four is the maximum number of
    00048 // things a thread can wait on at once).
    00049 //
    00050 //
    00051
    00052 #define MEM_PRINT_DEF_SUBBUFFER_COUNT 16
    00053 #define MEM_PRINT_MAX_SUBBUFFER_COUNT 64
    00054
    00055 #define MEM_PRINT_LOG_FILE_NAME "\\SystemRoot\\Logfile"
    00056
    00057 //
    00058 // Exported routines.  MemPrintInitialize sets up the circular buffer
    00059 // and other memory, MemPrint writes text to the console and/or a
    00060 // log file, and MemPrintFlush writes the current subbuffer to disk
    00061 // whether or not it is full.
    00062 //
    00063
    00064 VOID
    00065 MemPrintInitialize (
    00066     VOID
    00067     );
    00068
    00069 VOID
    00070 MemPrint (
    00071     CHAR *Format, ...
    00072     );
    00073
    00074 VOID
    00075 MemPrintFlush (
    00076     VOID
    00077     );
    00078
    00079 #define DbgPrint MemPrint
    00080
    00081 #endif // def _MEMPRINT_