X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Tools%2FDiskTool%2Finclude%2Facess_logging.h;h=01d51e362d5e4d54b4c3c7740b0768b6b4f5ad9a;hb=98bd9c0c8985c50c42231c116a4e18fedd47761e;hp=f8577dd5fd550c7082bcd6e5d0565f9b10722252;hpb=7ba570fe3cc5418f42decf5b72ac2295cce9e60f;p=tpg%2Facess2.git diff --git a/Tools/DiskTool/include/acess_logging.h b/Tools/DiskTool/include/acess_logging.h index f8577dd5..01d51e36 100644 --- a/Tools/DiskTool/include/acess_logging.h +++ b/Tools/DiskTool/include/acess_logging.h @@ -22,6 +22,7 @@ extern void Log_Notice(const char *Ident, const char *Message, ...); extern void Log_Log(const char *Ident, const char *Message, ...); extern void Log_Debug(const char *Ident, const char *Message, ...); +extern void Panic(const char *Msg, ...); extern void Warning(const char *Message, ...); extern void Log(const char *Message, ...); extern void Debug_HexDump(const char *Prefix, const void *Data, size_t Length); @@ -30,5 +31,18 @@ extern void Debug_TraceEnter(const char *Function, const char *Format, ...); extern void Debug_TraceLog(const char *Function, const char *Format, ...); extern void Debug_TraceLeave(const char *Function, char Type, ...); + +#if !DISABLE_ASSERTS +# define ASSERTV(expr,msg,args...) do{if(!(expr))Panic("%s:%i - %s: Assertion '"#expr"' failed"msg,__FILE__,__LINE__,(char*)__func__,##args);}while(0) +# define ASSERTRV(expr,rv,msg,args...) do{if(!(expr)){Warning("%s:%i: Assertion '"#expr"' failed"msg,__FILE__,__LINE__,(char*)__func__ , ##args);return rv;}}while(0) +#else +# define ASSERTV(expr) +# define ASSERTRV(expr) +#endif +#define ASSERT(expr) ASSERTV(expr, "") +#define ASSERTR(expr,rv) ASSERTRV(expr, rv, "") +#define ASSERTC(l,rel,r) ASSERTV(l rel r, ": %i"#rel"%i", l, r) +#define ASSERTCR(l,rel,r,rv) ASSERTRV(l rel r, rv, ": %i"#rel"%i", l, r) + #endif