windows-nt/Source/XPSP1/NT/base/ntos/inc/memprint.h
2020-09-26 16:20:57 +08:00

82 lines
1.9 KiB
C

/*++ BUILD Version: 0001 // Increment this if a change has global effects
Copyright (c) 1990 Microsoft Corporation
Module Name:
memprint.h
Abstract:
Include file for in-memory DbgPrint function. Including this file
will change DbgPrints to a routine which puts the display text in a
circular buffer in memory. By default, the text is then sent to the
console via DbgPrint. By changing the value of the MemPrintFlags
flag, however, the text may be routed to a file instead, thereby
significantly speeding up the DbgPrint operation.
Author:
David Treadwell (davidtr) 05-Oct-1990
Revision History:
--*/
#ifndef _MEMPRINT_
#define _MEMPRINT_
#define MEM_PRINT_FLAG_CONSOLE 0x01
#define MEM_PRINT_FLAG_FILE 0x02
#define MEM_PRINT_FLAG_HEADER 0x04
extern ULONG MemPrintFlags;
#ifdef MIPS
#define MEM_PRINT_DEF_BUFFER_SIZE 16384
#else
#define MEM_PRINT_DEF_BUFFER_SIZE 65536
#endif
//
// The subbuffer count is the number of subbuffers within the circular
// buffer. A subbuffer is the method used to buffer data between
// MemPrint and writing to disk--when a subbuffer is filled, its
// contents are written to the log file. This value should be a power
// of two between two and sixty-four (two is necessary to allow writing
// to disk and RAM simultaneously, sixty-four is the maximum number of
// things a thread can wait on at once).
//
//
#define MEM_PRINT_DEF_SUBBUFFER_COUNT 16
#define MEM_PRINT_MAX_SUBBUFFER_COUNT 64
#define MEM_PRINT_LOG_FILE_NAME "\\SystemRoot\\Logfile"
//
// Exported routines. MemPrintInitialize sets up the circular buffer
// and other memory, MemPrint writes text to the console and/or a
// log file, and MemPrintFlush writes the current subbuffer to disk
// whether or not it is full.
//
VOID
MemPrintInitialize (
VOID
);
VOID
MemPrint (
CHAR *Format, ...
);
VOID
MemPrintFlush (
VOID
);
#define DbgPrint MemPrint
#endif // def _MEMPRINT_