a46d6637fa
case where SS!=DS (which happens sometimes in resident code), in which case va_list/va_arg need to use FAR pointers. DS!=DGROUP never works, so I corrected that for NLS_DEBUG, by setting DS in int2f.asm. git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1491 6ac86273-5f31-0410-b378-82cca8765d1b
146 lines
4.4 KiB
C
146 lines
4.4 KiB
C
/****************************************************************/
|
|
/* */
|
|
/* debug.h */
|
|
/* */
|
|
/* Routines to assist in debugging the kernel */
|
|
/* */
|
|
/* January, 2005 */
|
|
/* */
|
|
/* Copyright (c) 2005 */
|
|
/* FreeDOS kernel dev. */
|
|
/* All Rights Reserved */
|
|
/* */
|
|
/* This file is part of DOS-C. */
|
|
/* */
|
|
/* DOS-C is free software; you can redistribute it and/or */
|
|
/* modify it under the terms of the GNU General Public License */
|
|
/* as published by the Free Software Foundation; either version */
|
|
/* 2, or (at your option) any later version. */
|
|
/* */
|
|
/* DOS-C is distributed in the hope that it will be useful, but */
|
|
/* WITHOUT ANY WARRANTY; without even the implied warranty of */
|
|
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See */
|
|
/* the GNU General Public License for more details. */
|
|
/* */
|
|
/* You should have received a copy of the GNU General Public */
|
|
/* License along with DOS-C; see the file COPYING. If not, */
|
|
/* write to the Free Software Foundation, 675 Mass Ave, */
|
|
/* Cambridge, MA 02139, USA. */
|
|
/****************************************************************/
|
|
|
|
#ifndef __DEBUG_H
|
|
#define __DEBUG_H
|
|
|
|
/* #define DEBUG (usually via 'build debug') to
|
|
enable debug support.
|
|
NOTE: this file included by INIT time code and normal
|
|
resident code, so use care for all memory references
|
|
*/
|
|
|
|
/* allow output even in non-debug builds */
|
|
#if 0
|
|
#ifndef DEBUG_NEED_PRINTF
|
|
#define DEBUG_NEED_PRINTF
|
|
#endif
|
|
#endif
|
|
|
|
/* use to limit output to debug builds */
|
|
#ifdef DEBUG
|
|
#ifdef DEBUG_PRINT_COMPORT
|
|
#define DebugPrintf(x) dbgc_printf x
|
|
#else
|
|
#define DebugPrintf(x) printf x
|
|
#endif
|
|
#else
|
|
#define DebugPrintf(x)
|
|
#endif
|
|
|
|
/* use to disable a chunk of debug output, but
|
|
keep around for later use. */
|
|
#define DDebugPrintf(x)
|
|
|
|
|
|
/* enable or disable various chunks of debug output */
|
|
|
|
/* show stored IRQ vectors */
|
|
/* #define DEBUGIRQ */
|
|
|
|
/* show output related to moving kernel into HMA */
|
|
#ifdef DEBUG
|
|
#define HMAInitPrintf(x) DebugPrintf(x)
|
|
#else
|
|
#define HMAInitPrintf(x)
|
|
#endif
|
|
|
|
/* display output during kernel config processing phase */
|
|
/* #define DEBUGCFG */
|
|
#ifdef DEBUGCFG
|
|
#define CfgDbgPrintf(x) DebugPrintf(x)
|
|
#else
|
|
#define CfgDbgPrintf(x)
|
|
#endif
|
|
|
|
/* display info on various DOS functions (dosfns.c) */
|
|
/* #define DEBUGDOSFNS */
|
|
#ifdef DEBUGDOSFNS
|
|
#define DFnsDbgPrintf(x) DebugPrintf(x)
|
|
#else
|
|
#define DFnsDbgPrintf(x)
|
|
#endif
|
|
|
|
/* extra debug output related to chdir */
|
|
/* #define CHDIR_DEBUG */
|
|
|
|
/* extra debug output related to findfirst */
|
|
/* #define FIND_DEBUG */
|
|
|
|
/* display info on various DOS directory functions (fatdir.c) */
|
|
/* #define DEBUGFATDIR */
|
|
#ifdef DEBUGFATDIR
|
|
#define FDirDbgPrintf(x) DebugPrintf(x)
|
|
#else
|
|
#define FDirDbgPrintf(x)
|
|
#endif
|
|
|
|
/* extra debug output when transferring I/O chunks of data */
|
|
/* #define DISPLAY_GETBLOCK */
|
|
|
|
/* extra output during read/write operations */
|
|
/* #define DSK_DEBUG */
|
|
|
|
/* display info on various FAT handling functions (fatfs.c) */
|
|
/* #define DEBUGFATFS */
|
|
#ifdef DEBUGFATFS
|
|
#define FatFSDbgPrintf(x) DebugPrintf(x)
|
|
#else
|
|
#define FatFSDbgPrintf(x)
|
|
#endif
|
|
|
|
/* debug truename */
|
|
/* #define DEBUG_TRUENAME */
|
|
#ifdef DEBUG_TRUENAME
|
|
#define tn_printf(x) DebugPrintf(x)
|
|
#else
|
|
#define tn_printf(x)
|
|
#endif
|
|
|
|
|
|
/* ensure printf is prototyped */
|
|
#if defined(DEBUG) || defined(DEBUGIRQ) || defined(DEBUGCFG) || \
|
|
defined(DEBUGDOSFNS) || defined(CHDIR_DEBUG) || defined(FIND_DEBUG) || \
|
|
defined(DEBUGFATDIR) || defined(DEBUGFATFS) || \
|
|
defined(FORCEPRINTF)
|
|
#ifndef DEBUG_NEED_PRINTF
|
|
#define DEBUG_NEED_PRINTF
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef DEBUG_NEED_PRINTF
|
|
int VA_CDECL printf(CONST char * fmt, ...);
|
|
#ifdef DEBUG_PRINT_COMPORT
|
|
int VA_CDECL dbgc_printf(CONST char * fmt, ...);
|
|
#endif
|
|
#endif
|
|
|
|
#endif /* __DEBUG_H */
|