122 lines
3.6 KiB
C
122 lines
3.6 KiB
C
|
/***************************************************************************
|
||
|
kdebug.h Copyright (C) 1999,2000,01 Christoph Reichenbach, TU Darmstadt
|
||
|
|
||
|
|
||
|
This program may be modified and copied freely according to the terms of
|
||
|
the GNU general public license (GPL), as long as the above copyright
|
||
|
notice and the licensing information contained herein are preserved.
|
||
|
|
||
|
Please refer to www.gnu.org for licensing details.
|
||
|
|
||
|
This work is provided AS IS, without warranty of any kind, expressed or
|
||
|
implied, including but not limited to the warranties of merchantibility,
|
||
|
noninfringement, and fitness for a specific purpose. The author will not
|
||
|
be held liable for any damage caused by this work or derivatives of it.
|
||
|
|
||
|
By using this source code, you agree to the licensing terms as stated
|
||
|
above.
|
||
|
|
||
|
|
||
|
Please contact the maintainer for bug reports or inquiries.
|
||
|
|
||
|
Current Maintainer:
|
||
|
|
||
|
Christoph Reichenbach (CJR) [jameson@linuxgames.com]
|
||
|
|
||
|
***************************************************************************/
|
||
|
/* Kernel debug defines */
|
||
|
|
||
|
#ifndef _SCI_KDEBUG_H_
|
||
|
#define _SCI_KDEBUG_H_
|
||
|
|
||
|
struct _state;
|
||
|
#define SCIk_DEBUG_MODES 18
|
||
|
|
||
|
#define SCIkERROR_NR -2
|
||
|
#define SCIkWARNING_NR -1
|
||
|
#define SCIkSTUB_NR 0
|
||
|
#define SCIkFUNCCHK_NR 5
|
||
|
#define SCIkSOUNDCHK_NR 7
|
||
|
#define SCIkGFXDRIVER_NR 8
|
||
|
#define SCIkBASESETTER_NR 9
|
||
|
#define SCIkPARSER_NR 10
|
||
|
#define SCIkAVOIDPATH_NR 17
|
||
|
|
||
|
#define SCIkERROR s, __FILE__, __LINE__, SCIkERROR_NR
|
||
|
#define SCIkWARNING s, __FILE__, __LINE__, SCIkWARNING_NR
|
||
|
#define SCIkSTUB s, __FILE__, __LINE__, SCIkSTUB_NR
|
||
|
#define SCIkNODES s, __FILE__, __LINE__, 1
|
||
|
#define SCIkGRAPHICS s, __FILE__, __LINE__, 2
|
||
|
#define SCIkSTRINGS s, __FILE__, __LINE__, 3
|
||
|
#define SCIkMEM s, __FILE__, __LINE__, 4
|
||
|
#define SCIkFUNCCHK s, __FILE__, __LINE__, SCIkFUNCCHK_NR
|
||
|
#define SCIkBRESEN s, __FILE__, __LINE__, 6
|
||
|
#define SCIkSOUND s, __FILE__, __LINE__, SCIkSOUNDCHK_NR
|
||
|
#define SCIkGFXDRIVER s, __FILE__, __LINE__, SCIkGFXDRIVER_NR
|
||
|
#define SCIkBASESETTER s, __FILE__, __LINE__, SCIkBASESETTER_NR
|
||
|
#define SCIkPARSER s, __FILE__, __LINE__, SCIkPARSER_NR
|
||
|
#define SCIkMENU s, __FILE__, __LINE__, 11
|
||
|
#define SCIkSAID s, __FILE__, __LINE__, 12
|
||
|
#define SCIkFILE s, __FILE__, __LINE__, 13
|
||
|
#define SCIkTIME s, __FILE__, __LINE__, 14
|
||
|
#define SCIkROOM s, __FILE__, __LINE__, 15
|
||
|
#define SCIkEMU s, __FILE__, __LINE__, 16
|
||
|
#define SCIkAVOIDPATH s, __FILE__, __LINE__, SCIkAVOIDPATH_NR
|
||
|
|
||
|
#define SCI_KERNEL_DEBUG
|
||
|
|
||
|
#ifdef SCI_KERNEL_DEBUG
|
||
|
|
||
|
#ifdef __GNUC__
|
||
|
|
||
|
#define SCIkdebug(arguments...) _SCIGNUkdebug(__PRETTY_FUNCTION__, ## arguments)
|
||
|
|
||
|
#else /* !__GNUC__ */
|
||
|
|
||
|
#define SCIkdebug _SCIkdebug
|
||
|
|
||
|
#endif /* !__GNUC__ */
|
||
|
|
||
|
#else /* !SCI_KERNEL_DEBUG */
|
||
|
|
||
|
#define SCIkdebug 1? (void)0 : _SCIkdebug
|
||
|
|
||
|
#endif /* !SCI_KERNEL_DEBUG */
|
||
|
|
||
|
|
||
|
|
||
|
#ifdef __GNUC__
|
||
|
|
||
|
#define SCIkwarn(arguments...) _SCIGNUkdebug(__PRETTY_FUNCTION__, ## arguments)
|
||
|
|
||
|
#else /* !__GNUC__ */
|
||
|
|
||
|
#define SCIkwarn _SCIkwarn
|
||
|
|
||
|
#endif /* !__GNUC__ */
|
||
|
|
||
|
/* Internal functions */
|
||
|
void
|
||
|
_SCIkwarn(struct _state *s, const char *file, int line, int area, const char *format, ...);
|
||
|
void
|
||
|
_SCIkdebug(struct _state *s, const char *file, int line, int area, const char *format, ...);
|
||
|
void
|
||
|
_SCIGNUkdebug(const char *funcname, struct _state *s, const char *file, int line, int area, const char *format, ...);
|
||
|
|
||
|
/* If mode=1, enables debugging for specified areas. If mode=0, disables
|
||
|
** debugging for specified areas.
|
||
|
** Valid area characters: ulgcmfbad
|
||
|
*/
|
||
|
|
||
|
void
|
||
|
set_debug_mode (struct _state *s, int mode, const char *areas);
|
||
|
|
||
|
extern int sci_debug_flags;
|
||
|
|
||
|
/* Debug flags */
|
||
|
#define _DEBUG_FLAG_LOGGING 1 /* Log each command executed */
|
||
|
#define _DEBUG_FLAG_BREAK_ON_WARNINGS 2 /* Break on warnings */
|
||
|
|
||
|
|
||
|
#endif
|