source: trunk/include/misc.h@ 5470

Last change on this file since 5470 was 5470, checked in by sandervl, 24 years ago

header updates

File size: 3.1 KB
RevLine 
[17]1/*
2 * Miscellaneous definitions
3 * Debug prototypes and macros
4 */
5
6
[4]7#ifndef __MISC_H__
8#define __MISC_H__
9
[2341]10#if !defined(_OS2WIN_H) && !defined(__INCLUDE_WINUSER_H) && !defined(__WINE_WINBASE_H) && !defined(__WINE_WINDEF_H)
[780]11 #include <win32type.h>
12#endif
13
[4]14#ifdef __cplusplus
15 extern "C" {
16#endif
17
[4075]18#ifdef DEBUG
[2061]19#ifdef PRIVATE_LOGGING
20 //To use private dll logging, define PRIVATE_LOGGING and
21 //add Open/ClosePrivateLogFiles (see below) functions to the dll
22 //to open close the private logfile. The logfile handle should
23 //be stored in the _privateLogFile variable
24 //dprintf can be called like this:
25 //dprintf((LOG, "PE file : %s", szFileName));
26 #define LOG (void*)_privateLogFile
27 #define dprintf(a) WritePrivateLog a
28 #define dprintfGlobal(a) WriteLog a
29#else
[13]30 #define dprintf(a) WriteLog a
[4263]31 #define dprintfNoEOL(a) WriteLogNoEOL a
[2061]32#endif
[13]33 #define eprintf(a) WriteLog a ; WriteLogError a
34 #define dassert(a, b) if(!(a)) WriteLogError b
35 #define dbgCheckObj(a) a->checkObject()
[5427]36 #define DisableLogging() DecreaseLogCount()
37 #define EnableLogging() IncreaseLogCount()
[1669]38
39#ifdef DEBUG_ENABLELOG_LEVEL2
[2061]40#ifdef PRIVATE_LOGGING
41 #define dprintf2(a) WritePrivateLog a
[4]42#else
[2061]43 #define dprintf2(a) WriteLog a
44#endif
45#else
[1669]46 #define dprintf2(a)
47#endif
48
49#else
[2061]50 #define dprintfGlobal(a)
[13]51 #define dprintf(a)
[1953]52 #define dprintf2(a)
[4263]53 #define dprintfNoEOL(a)
[13]54 #define eprintf(a)
55 #define dassert(a, b)
56 #define dbgCheckObj(a)
[5427]57 #define DisableLogging()
58 #define EnableLogging()
[4]59#endif
60
[17]61
[780]62// necessary types
[2341]63#ifndef __WINE_WINDEF_H
[780]64#ifdef ULONG
65 #error ULONG definition is bad.
66 #define ULONG nope.
[17]67#endif
[1616]68#ifndef NO_ULONG
69 typedef unsigned long ULONG;
70 typedef unsigned long HMODULE;
71#endif
[2341]72#endif //!__WINE_WINDEF_H
[17]73
74#ifndef SYSTEM
75# define SYSTEM _System
76#endif
77
78
[13]79int SYSTEM WriteLog(char *tekst, ...);
[4263]80int SYSTEM WriteLogNoEOL(char *tekst, ...);
[2061]81int SYSTEM WritePrivateLog(void *logfile, char *tekst, ...);
[924]82
[13]83int SYSTEM WriteLogError(char *tekst, ...);
[924]84
[2431]85void SYSTEM DecreaseLogCount();
86void SYSTEM IncreaseLogCount();
87
[4]88void SYSTEM CheckVersion(ULONG version, char *modname);
[924]89
[4]90void SYSTEM CheckVersionFromHMOD(ULONG version, HMODULE hModule);
91
[924]92int SYSTEM DebugErrorBox(ULONG iErrorCode,
93 char* pszFormat,
94 ...);
95
[2061]96//To use private logfiles for dlls, you must have these functions and call
97//them when the dll is loaded (open) and the exitlist handler is called (close)
98void OpenPrivateLogFiles();
99void ClosePrivateLogFiles();
[924]100
[5127]101/* enable support for the _interrupt() statement */
102#if (defined(__IBMCPP__) || defined(__IBMC__))
103# include <builtin.h>
104#ifdef DEBUG
[4]105#ifdef __cplusplus
[5127]106void inline BreakPoint(char *szFile, char *szFunction)
107{
108 dprintf(("BREAKPOINT %s %s", szFile, szFunction));
109 _interrupt(3);
110}
111 #define DebugInt3() BreakPoint(__FILE__, __FUNCTION__)
112
113#else
114 #define DebugInt3() _interrupt(3)
115#endif
116#else
117 #define DebugInt3()
118#endif
119
120#else
121#ifdef DEBUG
122 #define DebugInt3() _asm int 3;
123#else
124 #define DebugInt3()
125#endif
126
127#endif
128
129#ifdef __cplusplus
[4]130 }
131#endif
132
[13]133
[4]134#endif
Note: See TracBrowser for help on using the repository browser.