#include <stdarg.h>
+#ifndef NORETURN
+#define NORETURN __attribute__((noreturn))
+#endif
+
// --- Logging ---
/**
* \name Logging to kernel ring buffer
extern void Debug_Log(const char *FuncName, const char *Fmt, ...);
extern void Debug_Leave(const char *FuncName, char RetType, ...);
extern void Debug_HexDump(const char *Header, const void *Data, size_t Length);
+
#define UNIMPLEMENTED() Warning("'%s' unimplemented", __func__)
#if DEBUG
# define ENTER(_types...) Debug_Enter((char*)__func__, _types)
#endif
#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)
+# define ASSERTRV(expr,rv,msg,args...) do{if(!(expr)){Warning("%s:%i - %s: Assertion '"#expr"' failed"msg,__FILE__,__LINE__,(char*)__func__ , ##args);return rv;}}while(0)
#else
# define ASSERTV(expr)
# define ASSERTRV(expr)