home *** CD-ROM | disk | FTP | other *** search
-
- void __stdargs kprintf(unsigned char *fmt,...); // Serial debugging...
- void __stdargs dprintf(unsigned char *fmt,...); // Parallel debugging...
-
- /**
- ** Macros for outputing debugging info
- **/
-
- #ifndef STDLIB_ONLY
-
- #include "proto/dos.h"
-
- #ifndef bug
- #define bug Printf
- #endif
-
- #ifndef DEBTIME
- #define DEBTIME 0
- #endif
-
- #ifdef DEBUG
- #define D(x) (x); if(DEBTIME>0) Delay(DEBTIME);
- #else
- #define D(x) ;
- #endif
-
- #else
-
- #ifndef bug
- #define bug printf
- #endif
-
- #ifndef DEBTIME
- #define DEBTIME 0
- #endif
-
- #ifdef DEBUG
- #define D(x) (x);
- #else
- #define D(x) ;
- #endif
-
- #endif
-
- /**
- ** Macros for memory allocation debugging
- **/
-
- #define TYPE_NORM 0x00000000 /* This is a normal memory allocation */
- #define TYPE_VEC 0x00000001 /* This is the 2.0 AllocVec() function */
- #define TYPE_MLLC 0x00000002 /* This is the std malloc() function */
- #define TYPE_POOL 0x00000003 /* This is the 3.0 CreatePool() function */
-
- #define TYPE_SPDSLOW 0x8000000 /* Slower, but more carefull */
- #define TYPE_SPDFAST 0x4000000 /* Faster, doesn't check addresses */
-
- /* Where to send debugging info. */
- extern UBYTE memory_report;
- #define REPORT_NONE 0x00
- #define REPORT_SERIAL 0x01
- #define REPORT_PARALLEL 0x02
-
- extern ULONG memory_logfh;
- extern UBYTE memory_slow;
- extern UBYTE memory_noreq;
-
- void * __regargs debug_allocmem(ULONG size,ULONG flags,ULONG id,ULONG type,UBYTE *note);
- void __regargs debug_freemem(void *addr,ULONG size,ULONG id,ULONG type,UBYTE *note);
- void * __regargs debug_createpool(ULONG flags,ULONG puddle,ULONG thresh,ULONG id,ULONG type,UBYTE *note);
- void __regargs debug_deletepool(void *pool,ULONG id,ULONG type,UBYTE *note);
- void * __regargs generic_allocmem(ULONG size,ULONG flags,ULONG id,ULONG type,int line,
- UBYTE *module);
- void __regargs generic_freemem(void *addr,ULONG size,ULONG id,ULONG type,int line,
- UBYTE *module);
- void * __regargs generic_createpool(ULONG flags,ULONG puddle,ULONG thresh,ULONG id,ULONG type,int line,
- UBYTE *module);
- void __regargs generic_deletepool(void *pool,ULONG id,ULONG type,int line,
- UBYTE *module);
- void __regargs memory_finish(void);
- void __regargs memory_finish_key(ULONG id);
-
- #ifndef NOSYSFUNC
- #if defined(DEBUG) || defined(CHK_MEMORY)
- #define AllocMem(x,y) generic_allocmem(x,y,0,TYPE_NORM,__LINE__,(UBYTE*)__FILE__)
- #define FreeMem(x,y) generic_freemem(x,y,0,TYPE_NORM,__LINE__,(UBYTE*)__FILE__)
- #define AllocVec(x,y) generic_allocmem(x,y,0,TYPE_VEC,__LINE__,(UBYTE*)__FILE__)
- #define FreeVec(x) generic_freemem(x,0,0,TYPE_VEC,__LINE__,(UBYTE*)__FILE__)
- #define malloc(x) generic_allocmem(x,0,0,TYPE_MLLC,__LINE__,(UBYTE*)__FILE__)
- #define free(x) generic_freemem(x,0,0,TYPE_MLLC,__LINE__,(UBYTE*)__FILE__)
- #endif
- #endif
-
- #if defined(DEBUG) || defined(CHK_MEMORY)
-
- #define DAllocMem(size,flags,type,note) debug_allocmem(size,flags,0,(type)|TYPE_NORM,note)
- #define DFreeMem(addr,size,type,note) debug_freemem(addr,size,0,(type)|TYPE_NORM,note)
- #define DAllocVec(size,flags,type,note) debug_allocmem(size,flags,0,(type)|TYPE_VEC,note)
- #define DFreeVec(addr,type,note) debug_freemem(addr,0,0,(type)|TYPE_VEC,note)
- #define Dmalloc(size,type,note) debug_allocmem(size,0,0,(type)|TYPE_MLLC,note)
- #define Dfree(addr,type,note) debug_freemem(addr,0,0,(type)|TYPE_MLLC,note)
-
- #define IAllocMem(x,y,id) generic_allocmem(x,y,id,TYPE_NORM,__LINE__,__FILE__)
- #define IFreeMem(x,y,id) generic_freemem(x,y,id,TYPE_NORM,__LINE__,__FILE__)
- #define IAllocVec(x,y,id) generic_allocmem(x,y,id,TYPE_VEC,__LINE__,__FILE__)
- #define IFreeVec(x,id) generic_freemem(x,0,id,TYPE_VEC,__LINE__,__FILE__)
- #define Imalloc(x,id) generic_allocmem(x,0,id,TYPE_MLLC,__LINE__,__FILE__)
- #define Ifree(x,id) generic_freemem(x,0,id,TYPE_MLLC,__LINE__,__FILE__)
-
- #define DFinishMem() memory_finish()
- #define IFinishMem(id) memory_finish_key((ULONG)id)
-
- #else
-
- #define DAllocMem(size,flags,type,note) AllocMem(size,flags)
- #define DFreeMem(addr,size,type,note) FreeMem(addr,size)
- #define DAllocVec(size,flags,type,note) AllocVec(size,flags)
- #define DFreeVec(addr,type,note) FreeVec(addr)
- #define Dmalloc(size,type,note) malloc(size)
- #define Dfree(addr,type,note) free(addr)
-
- #define IAllocMem(size,flags,id) AllocMem(size,flags)
- #define IFreeMem(addr,size,id) FreeMem(addr,size)
- #define IAllocVec(size,flags,id) AllocVec(size,flags)
- #define IFreeVec(addr,id) FreeVec(addr)
- #define Imalloc(size,id) malloc(size)
- #define Ifree(addr,id) free(addr)
-
- #define DFinishMem() ;
- #define IFinishMem(id) ;
-
- #endif
-
- #ifdef DBPRINT
-
- extern void PokeB(BYTE *,BYTE *,BYTE,UBYTE *note);
- extern void PokeUB(UBYTE *,UBYTE *,UBYTE,UBYTE *note);
- extern void PokeW(WORD *,WORD *,WORD,UBYTE *note);
- extern void PokeUW(UWORD *,UWORD *,UWORD,UBYTE *note);
- extern void PokeL(LONG *,LONG *,LONG,UBYTE *note);
- extern void PokeUL(ULONG *,ULONG *,ULONG,UBYTE *note);
-
- extern BYTE PeekB(BYTE *,BYTE *,UBYTE *note);
- extern UBYTE PeekUB(UBYTE *,UBYTE *,UBYTE *note);
- extern WORD PeekW(WORD *,WORD *,UBYTE *note);
- extern UWORD PeekUW(UWORD *,UWORD *,UBYTE *note);
- extern LONG PeekL(LONG *,LONG *,UBYTE *note);
- extern ULONG PeekUL(ULONG *,ULONG *,UBYTE *note);
-
- #else
- #define PokeB(s,a,v,n) (*((BYTE *)(a)) = (BYTE)(v))
- #define PokeUB(s,a,v,n) (*((UBYTE *)(a)) = (UBYTE)(v))
- #define PokeW(s,a,v,n) (*((WORD *)(a)) = (WORD)(v))
- #define PokeUW(s,a,v,n) (*((UWORD *)(a)) = (UWORD)(v))
- #define PokeL(s,a,v,n) (*((LONG *)(a)) = (LONG)(v))
- #define PokeUL(s,a,v,n) (*((ULONG *)(a)) = (ULONG)(v))
-
- #define PeekB(s,a,n) (*((BYTE *)(a)))
- #define PeekUB(s,a,n) (*((UBYTE *)(a)))
- #define PeekW(s,a,n) (*((WORD *)(a)))
- #define PeekUW(s,a,n) (*((UWORD *)(a)))
- #define PeekL(s,a,n) (*((LONG *)(a)))
- #define PeekUL(s,a,n) (*((ULONG *)(a)))
-
- #endif
-
-