2 #ifndef _DISKTOOL__ACESS_LOGGING_H_
3 #define _DISKTOOL__ACESS_LOGGING_H_
6 # define ENTER(str, v...) Debug_TraceEnter(__func__, str, ##v)
7 # define LOG(fmt, v...) Debug_TraceLog(__func__, fmt, ##v)
8 # define LEAVE(t, v...) Debug_TraceLeave(__func__, t, ##v)
9 # define LEAVE_RET(t,v) do{LEAVE('-');return v;}while(0)
11 # define ENTER(...) do{}while(0)
12 # define LOG(...) do{}while(0)
13 # define LEAVE(...) do{}while(0)
14 # define LEAVE_RET(t,v) return v;
17 extern void Log_KernelPanic(const char *Ident, const char *Message, ...) __attribute__((noreturn));
18 extern void Log_Panic(const char *Ident, const char *Message, ...);
19 extern void Log_Error(const char *Ident, const char *Message, ...);
20 extern void Log_Warning(const char *Ident, const char *Message, ...);
21 extern void Log_Notice(const char *Ident, const char *Message, ...);
22 extern void Log_Log(const char *Ident, const char *Message, ...);
23 extern void Log_Debug(const char *Ident, const char *Message, ...);
25 extern void Panic(const char *Msg, ...);
26 extern void Warning(const char *Message, ...);
27 extern void Log(const char *Message, ...);
28 extern void Debug_HexDump(const char *Prefix, const void *Data, size_t Length);
30 extern void Debug_TraceEnter(const char *Function, const char *Format, ...);
31 extern void Debug_TraceLog(const char *Function, const char *Format, ...);
32 extern void Debug_TraceLeave(const char *Function, char Type, ...);
36 # define ASSERTV(expr,msg,args...) do{if(!(expr))Panic("%s:%i - %s: Assertion '"#expr"' failed"msg,__FILE__,__LINE__,(char*)__func__,##args);}while(0)
37 # 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)
39 # define ASSERTV(expr)
40 # define ASSERTRV(expr)
42 #define ASSERT(expr) ASSERTV(expr, "")
43 #define ASSERTR(expr,rv) ASSERTRV(expr, rv, "")
44 #define ASSERTC(l,rel,r) ASSERTV(l rel r, ": %i"#rel"%i", l, r)
45 #define ASSERTCR(l,rel,r,rv) ASSERTRV(l rel r, rv, ": %i"#rel"%i", l, r)