Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

71 lines
1.8 KiB

/*==========================================================================
*
* Copyright (C) 1996 Microsoft Corporation. All Rights Reserved.
*
* File: macros.c
* Content: debugging macros
*@@BEGIN_MSINTERNAL
* History:
* Date By Reason
* ==== == ======
* 6/10/96 kipo created it
* 12/22/00 aarono #190380 - use process heap for memory allocation
*@@END_MSINTERNAL
***************************************************************************/
#include "dpf.h"
#include "memalloc.h"
#define FAILMSG(condition) \
if ((condition)) { \
DPF(0, DPF_MODNAME " line %d : Failed because " #condition "", __LINE__); \
}
#define FAILERR(err, label) \
if ((err)) { \
DPF(0, DPF_MODNAME " line %d : Error = %d", __LINE__, (err)); \
goto label; \
}
#define FAILIF(condition, label) \
if ((condition)) { \
DPF(0, DPF_MODNAME " line %d : Failed because " #condition "", __LINE__); \
goto label; \
}
#define FAILWITHACTION(condition, action, label) \
if ((condition)) { \
DPF(0, DPF_MODNAME " line %d : Failed because " #condition "", __LINE__); \
{ action; } \
goto label; \
}
extern CRITICAL_SECTION csMem;
#define INIT_DPSP_CSECT() InitializeCriticalSection(&csMem);
#define FINI_DPSP_CSECT() DeleteCriticalSection(&csMem);
// Wrap Malloc
void _inline __cdecl SP_MemFree( LPVOID lptr )
{
EnterCriticalSection(&csMem);
MemFree(lptr);
LeaveCriticalSection(&csMem);
}
LPVOID _inline __cdecl SP_MemAlloc(UINT size)
{
LPVOID lpv;
EnterCriticalSection(&csMem);
lpv = MemAlloc(size);
LeaveCriticalSection(&csMem);
return lpv;
}
LPVOID _inline __cdecl SP_MemReAlloc(LPVOID lptr, UINT size)
{
EnterCriticalSection(&csMem);
lptr = MemReAlloc(lptr, size);
LeaveCriticalSection(&csMem);
return lptr;
}