aboutsummaryrefslogtreecommitdiffstats
path: root/include/rin/diagnostic.h
diff options
context:
space:
mode:
authorGravatar Gediminas Jakutis <gediminas@varciai.lt> 2019-10-24 17:06:52 +0300
committerGravatar Gediminas Jakutis <gediminas@varciai.lt> 2019-10-24 17:06:52 +0300
commitae76e4106345035503466bf9dcfa3b0033a526c6 (patch)
tree50ebddc83138785ec775aeb8e1c7ac06c7395706 /include/rin/diagnostic.h
parent84cec7dc2c645e4d1bbab8e8496c4f6cd9562989 (diff)
downloadlibrin-ae76e4106345035503466bf9dcfa3b0033a526c6.tar.gz
librin-ae76e4106345035503466bf9dcfa3b0033a526c6.tar.bz2
librin-ae76e4106345035503466bf9dcfa3b0033a526c6.zip
diagnostic: implement printing function's name.
Signed-off-by: Gediminas Jakutis <gediminas@varciai.lt>
Diffstat (limited to 'include/rin/diagnostic.h')
-rw-r--r--include/rin/diagnostic.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/include/rin/diagnostic.h b/include/rin/diagnostic.h
index 09d2fb9..ccec0b8 100644
--- a/include/rin/diagnostic.h
+++ b/include/rin/diagnostic.h
@@ -28,9 +28,11 @@
#define RIN_DIAG_UNSET 0
#define RIN_DIAG_PREFIX (1 << 0)
#define RIN_DIAG_TIME (1 << 1)
-#define RIN_DIAG_THREADNUM (1 << 2)
+#define RIN_DIAG_FUNC (1 << 2)
+#define RIN_DIAG_THREADNUM (1 << 3)
#define RIN_DIAG_ALLFLAGS ( RIN_DIAG_PREFIX | \
RIN_DIAG_TIME | \
+ RIN_DIAG_FUNC | \
RIN_DIAG_THREADNUM)
enum rin_diag_outstream {
@@ -44,9 +46,14 @@ void rin_diag_init(void);
int rin_diag_flags(int flag, int action);
int rin_diag_set_outstream(enum rin_diag_outstream channel, FILE *stream);
-void rin_err(const char *format, ...) FORMAT_STRING(1, 2);
-void rin_fixme(const char *format, ...) FORMAT_STRING(1, 2);
-void rin_warn(const char *format, ...) FORMAT_STRING(1, 2);
-void rin_info(const char *format, ...) FORMAT_STRING(1, 2);
+void __rin_err(const char *func_name, const char *format, ...) FORMAT_STRING(2, 3);
+void __rin_warn(const char *func_name, const char *format, ...) FORMAT_STRING(2, 3);
+void __rin_fixme(const char *func_name, const char *format, ...) FORMAT_STRING(2, 3);
+void __rin_info(const char *func_name, const char *format, ...) FORMAT_STRING(2, 3);
+
+#define rin_err(a,...) do {__rin_err(__func__, a __VA_OPT__(,) __VA_ARGS__); } while (0)
+#define rin_warn(a,...) do {__rin_warn(__func__, a __VA_OPT__(,) __VA_ARGS__); } while (0)
+#define rin_fixme(a,...) do {__rin_fixme(__func__, a __VA_OPT__(,) __VA_ARGS__); } while (0)
+#define rin_info(a,...) do {__rin_info(__func__, a __VA_OPT__(,) __VA_ARGS__); } while (0)
#endif /* LIBRIN_DIAGNOSTIC_INCLUDED */