windows-nt/Source/XPSP1/NT/base/fs/utils/ulib/inc/newdelp.hxx
2020-09-26 16:20:57 +08:00

74 lines
1.1 KiB
C++

/*++
Copyright (c) 1990 Microsoft Corporation
Module Name:
newdelp.hxx
Abstract:
This module contains the private definitions used by Ulib's
implementation of the new and delete operators and the CRT's malloc,
calloc, realloc and free functions.
Author:
David J. Gilman (davegi) 07-Dec-1990
Environment:
ULIB, User Mode
--*/
//
// MEM_BLOCK header signature type and value.
//
DEFINE_TYPE( ULONG, MEM_BLOCKSIG );
CONST MEM_BLOCKSIG Signature = 0xDEADDEAD;
//
// Maximum length of caller's file name.
//
CONST ULONG MaxFileLength = 20;
//
// Maximum size of call stack recorded.
//
CONST ULONG MaxCallStack = 20;
//
// MEM_BLOCK is the header attached to all allocated memory blocks.
// Do not change the order of these fields without fixing the initialization
// of the dummy MEM_BLOCK in newdel.cxx.
//
struct _MEM_BLOCK {
_MEM_BLOCK* pmemNext;
_MEM_BLOCK* pmemPrev;
MEM_BLOCKSIG memsig;
ULONG line;
ULONG size;
STR file[ MaxFileLength ];
DWORD call[ MaxCallStack ];
};
DEFINE_TYPE( struct _MEM_BLOCK, MEM_BLOCK );
//
// Returns the root of the stack frame list.
//
extern "C" {
VOID
DoStackTrace(
DWORD CallStack[]
);
};