--- previous/src/debug/log.h 2018/04/24 19:25:10 1.1 +++ previous/src/debug/log.h 2018/04/24 19:33:56 1.1.1.5 @@ -7,6 +7,10 @@ #ifndef HATARI_LOG_H #define HATARI_LOG_H +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + #include #include @@ -18,6 +22,7 @@ */ typedef enum { + LOG_NONE, /* invalid LOG level */ /* these present user with a dialog and log the issue */ LOG_FATAL, /* Hatari can't continue unless user resolves issue */ LOG_ERROR, /* something user did directly failed (e.g. save) */ @@ -26,7 +31,6 @@ typedef enum LOG_INFO, /* user action success (e.g. TOS file load) */ LOG_TODO, /* functionality not yet being emulated */ LOG_DEBUG, /* information about internal Hatari working */ - LOG_NONE /* invalid LOG level */ } LOGTYPE; #ifndef __GNUC__ @@ -37,19 +41,28 @@ typedef enum extern int Log_Init(void); extern int Log_SetAlertLevel(int level); extern void Log_UnInit(void); -extern void Log_Printf(LOGTYPE nType, const char *psFormat, ...) +extern void _Log_Printf(LOGTYPE nType, const char *psFormat, ...) __attribute__ ((format (printf, 2, 3))); extern void Log_AlertDlg(LOGTYPE nType, const char *psFormat, ...) __attribute__ ((format (printf, 2, 3))); extern LOGTYPE Log_ParseOptions(const char *OptionStr); extern const char* Log_SetTraceOptions(const char *OptionsStr); extern char *Log_MatchTrace(const char *text, int state); - + #ifndef __GNUC__ #undef __attribute__ #endif - +#define _Log_LOG_FATAL(nType, psFormat, ...) _Log_Printf(nType, psFormat, ## __VA_ARGS__) +#define _Log_LOG_ERROR(nType, psFormat, ...) _Log_Printf(nType, psFormat, ## __VA_ARGS__) +#define _Log_LOG_WARN(nType, psFormat, ...) _Log_Printf(nType, psFormat, ## __VA_ARGS__) +#define _Log_LOG_INFO(nType, psFormat, ...) +#define _Log_LOG_TODO(nType, psFormat, ...) +#define _Log_LOG_DEBUG(nType, psFormat, ...) +#define _Log_LOG_NONE(nType, psFormat, ...) + +#define LOG_LEVEL_COMBINE(prefix, nType, psFormat, ...) prefix ## nType (nType, psFormat, ## __VA_ARGS__) +#define Log_Printf(nType, psFormat, ...) LOG_LEVEL_COMBINE(_Log_,nType, psFormat, ## __VA_ARGS__) /* Tracing * ------- @@ -63,16 +76,7 @@ extern char *Log_MatchTrace(const char * */ #include "config.h" -/* Up to 32 levels when using Uint32 for HatariTraceFlags */ -#define TRACE_VIDEO_SYNC (1<<0) -#define TRACE_VIDEO_RES (1<<1) -#define TRACE_VIDEO_COLOR (1<<2) -#define TRACE_VIDEO_BORDER_V (1<<3) -#define TRACE_VIDEO_BORDER_H (1<<4) -#define TRACE_VIDEO_ADDR (1<<5) -#define TRACE_VIDEO_VBL (1<<6) -#define TRACE_VIDEO_HBL (1<<7) -#define TRACE_VIDEO_STE (1<<8) +/* Up to 64 levels when using Uint32 for HatariTraceFlags */ #define TRACE_MFP_EXCEPTION (1<<9) #define TRACE_MFP_START (1<<10) @@ -94,43 +98,37 @@ extern char *Log_MatchTrace(const char * #define TRACE_IKBD_ACIA (1<<21) #define TRACE_IKBD_EXEC (1<<22) -#define TRACE_BLITTER (1<<23) - -#define TRACE_OS_BIOS (1<<24) -#define TRACE_OS_XBIOS (1<<25) -#define TRACE_OS_GEMDOS (1<<26) -#define TRACE_OS_VDI (1<<27) +#define TRACE_IOMEM_RD (1<<29) +#define TRACE_IOMEM_WR (1<<30) -#define TRACE_IOMEM_RD (1<<28) -#define TRACE_IOMEM_WR (1<<29) - -#define TRACE_DMASND (1<<30) - -#define TRACE_CROSSBAR (1<<31) +#define TRACE_DSP_HOST_INTERFACE (1ll<<34) +#define TRACE_DSP_HOST_COMMAND (1ll<<35) +#define TRACE_DSP_HOST_SSI (1ll<<36) +#define TRACE_DSP_DISASM (1ll<<37) +#define TRACE_DSP_DISASM_REG (1ll<<38) +#define TRACE_DSP_DISASM_MEM (1ll<<39) +#define TRACE_DSP_STATE (1ll<<40) +#define TRACE_DSP_INTERRUPT (1ll<<41) #define TRACE_NONE (0) #define TRACE_ALL (~0) - -#define TRACE_VIDEO_ALL ( TRACE_VIDEO_SYNC | TRACE_VIDEO_RES | TRACE_VIDEO_COLOR \ - | TRACE_VIDEO_BORDER_V | TRACE_VIDEO_BORDER_H | TRACE_VIDEO_ADDR \ - | TRACE_VIDEO_VBL | TRACE_VIDEO_HBL | TRACE_VIDEO_STE ) - -#define TRACE_MFP_ALL ( TRACE_MFP_EXCEPTION | TRACE_MFP_START | TRACE_MFP_READ | TRACE_MFP_WRITE ) - #define TRACE_PSG_ALL ( TRACE_PSG_READ | TRACE_PSG_WRITE ) #define TRACE_CPU_ALL ( TRACE_CPU_PAIRING | TRACE_CPU_DISASM | TRACE_CPU_EXCEPTION ) -#define TRACE_IKBD_ALL ( TRACE_IKBD_CMDS | TRACE_IKBD_ACIA | TRACE_IKBD_EXEC | TRACE_OS_VDI ) +#define TRACE_IOMEM_ALL ( TRACE_IOMEM_RD | TRACE_IOMEM_WR ) -#define TRACE_OS_ALL ( TRACE_OS_BIOS | TRACE_OS_XBIOS | TRACE_OS_GEMDOS | TRACE_OS_VDI ) +#define TRACE_DSP_ALL ( TRACE_DSP_HOST_INTERFACE | TRACE_DSP_HOST_COMMAND | TRACE_DSP_HOST_SSI | TRACE_DSP_DISASM \ + | TRACE_DSP_DISASM_REG | TRACE_DSP_DISASM_MEM | TRACE_DSP_STATE | TRACE_DSP_INTERRUPT ) -#define TRACE_IOMEM_ALL ( TRACE_IOMEM_RD | TRACE_IOMEM_WR ) +/* Dummy for DSP */ +#define ExceptionDebugMask 0 +#define EXCEPT_DSP 0 extern FILE *TraceFile; -extern Uint32 LogTraceFlags; +extern Uint64 LogTraceFlags; #if ENABLE_TRACING @@ -138,7 +136,7 @@ extern Uint32 LogTraceFlags; #define LOG_TRACE(level, args...) \ if (unlikely(LogTraceFlags & level)) fprintf(TraceFile, args) #endif -#define LOG_TRACE_LEVEL( level ) (LogTraceFlags & level) +#define LOG_TRACE_LEVEL( level ) (unlikely(LogTraceFlags & level)) #else /* ENABLE_TRACING */ @@ -157,5 +155,8 @@ extern Uint32 LogTraceFlags; #define LOG_TRACE_PRINT(args...) fprintf(TraceFile , args) #endif - +#ifdef __cplusplus +} +#endif /* __cplusplus */ + #endif /* HATARI_LOG_H */