X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Tools%2FDiskTool%2Finclude%2Facess_logging.h;h=01d51e362d5e4d54b4c3c7740b0768b6b4f5ad9a;hb=3c283c4831c40c14d308a54cefb997832a860bca;hp=f8577dd5fd550c7082bcd6e5d0565f9b10722252;hpb=c3b821ccc009ec819f2580a53c0ed423aad43bf9;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