2 * PROJECT: ReactOS Application compatibility module
3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4 * PURPOSE: Shim engine private functions
5 * COPYRIGHT: Copyright 2013 Mislav Blažević
6 * Copyright 2015-2017 Mark Jansen (mark.jansen@reactos.org)
16 void SdbpHeapInit(void);
17 void SdbpHeapDeinit(void);
19 #if SDBAPI_DEBUG_ALLOC
21 LPVOID
SdbpAlloc(SIZE_T size
, int line
, const char* file
);
22 LPVOID
SdbpReAlloc(LPVOID mem
, SIZE_T size
, SIZE_T oldSize
, int line
, const char* file
);
23 void SdbpFree(LPVOID mem
, int line
, const char* file
);
25 #define SdbAlloc(size) SdbpAlloc(size, __LINE__, __FILE__)
26 #define SdbReAlloc(mem, size, oldSize) SdbpReAlloc(mem, size, oldSize, __LINE__, __FILE__)
27 #define SdbFree(mem) SdbpFree(mem, __LINE__, __FILE__)
31 LPVOID
SdbpAlloc(SIZE_T size
);
32 LPVOID
SdbpReAlloc(LPVOID mem
, SIZE_T size
, SIZE_T oldSize
);
33 void SdbpFree(LPVOID mem
);
35 #define SdbAlloc(size) SdbpAlloc(size)
36 #define SdbReAlloc(mem, size, oldSize) SdbpReAlloc(mem, size, oldSize)
37 #define SdbFree(mem) SdbpFree(mem)
41 #if !defined(SDBWRITE_HOSTTOOL)
42 typedef struct tagMEMMAPPED
{
48 } MEMMAPPED
, *PMEMMAPPED
;
50 BOOL WINAPI
SdbpOpenMemMappedFile(LPCWSTR path
, PMEMMAPPED mapping
);
51 void WINAPI
SdbpCloseMemMappedFile(PMEMMAPPED mapping
);
55 PDB WINAPI
SdbpCreate(LPCWSTR path
, PATH_TYPE type
, BOOL write
);
56 void WINAPI
SdbpFlush(PDB pdb
);
57 DWORD
SdbpStrlen(PCWSTR string
);
58 DWORD
SdbpStrsize(PCWSTR string
);
60 BOOL WINAPI
SdbpCheckTagType(TAG tag
, WORD type
);
61 BOOL WINAPI
SdbpCheckTagIDType(PDB pdb
, TAGID tagid
, WORD type
);
67 typedef enum _SHIM_LOG_LEVEL
{
73 BOOL WINAPIV
ShimDbgPrint(SHIM_LOG_LEVEL Level
, PCSTR FunctionName
, PCSTR Format
, ...);
74 extern ULONG g_ShimDebugLevel
;
76 #define SHIM_ERR(fmt, ...) do { if (g_ShimDebugLevel) ShimDbgPrint(SHIM_ERR, __FUNCTION__, fmt, ##__VA_ARGS__ ); } while (0)
77 #define SHIM_WARN(fmt, ...) do { if (g_ShimDebugLevel) ShimDbgPrint(SHIM_WARN, __FUNCTION__, fmt, ##__VA_ARGS__ ); } while (0)
78 #define SHIM_INFO(fmt, ...) do { if (g_ShimDebugLevel) ShimDbgPrint(SHIM_INFO, __FUNCTION__, fmt, ##__VA_ARGS__ ); } while (0)