xref: /haiku/src/add-ons/kernel/drivers/disk/nvme/compat/nvme_log.h (revision 4b88e723504583a68377602ba696d386d215766d)
1*4b88e723SAugustin Cavalier /*
2*4b88e723SAugustin Cavalier  * Copyright 2019, Haiku, Inc. All rights reserved.
3*4b88e723SAugustin Cavalier  * Distributed under the terms of the MIT License.
4*4b88e723SAugustin Cavalier  *
5*4b88e723SAugustin Cavalier  * Authors:
6*4b88e723SAugustin Cavalier  *		Augustin Cavalier <waddlesplash>
7*4b88e723SAugustin Cavalier  */
8*4b88e723SAugustin Cavalier #ifndef __NVME_LOG_H__
9*4b88e723SAugustin Cavalier #define __NVME_LOG_H__
10*4b88e723SAugustin Cavalier 
11*4b88e723SAugustin Cavalier #include <stdint.h>
12*4b88e723SAugustin Cavalier #include <stdarg.h>
13*4b88e723SAugustin Cavalier 
14*4b88e723SAugustin Cavalier 
15*4b88e723SAugustin Cavalier void nvme_log(enum nvme_log_level level, const char *format, ...)
16*4b88e723SAugustin Cavalier 	__attribute__((format(printf, 2, 3)));
17*4b88e723SAugustin Cavalier void nvme_vlog(enum nvme_log_level level, const char *format, va_list ap)
18*4b88e723SAugustin Cavalier 	__attribute__((format(printf,2,0)));
19*4b88e723SAugustin Cavalier 
20*4b88e723SAugustin Cavalier 
21*4b88e723SAugustin Cavalier #define nvme_emerg(format, args...)		\
22*4b88e723SAugustin Cavalier 	nvme_log(NVME_LOG_EMERG,		\
23*4b88e723SAugustin Cavalier 		"libnvme (FATAL): " format,	\
24*4b88e723SAugustin Cavalier 		## args)
25*4b88e723SAugustin Cavalier 
26*4b88e723SAugustin Cavalier #define nvme_alert(format, args...)		\
27*4b88e723SAugustin Cavalier 	nvme_log(NVME_LOG_ALERT,		\
28*4b88e723SAugustin Cavalier 		"libnvme (ALERT): " format,	\
29*4b88e723SAugustin Cavalier 		## args)
30*4b88e723SAugustin Cavalier 
31*4b88e723SAugustin Cavalier #define nvme_crit(format, args...)		\
32*4b88e723SAugustin Cavalier 	nvme_log(NVME_LOG_CRIT,			\
33*4b88e723SAugustin Cavalier 		"libnvme (CRITICAL): " format,	\
34*4b88e723SAugustin Cavalier 		## args)
35*4b88e723SAugustin Cavalier 
36*4b88e723SAugustin Cavalier #define nvme_err(format, args...)		\
37*4b88e723SAugustin Cavalier 	nvme_log(NVME_LOG_ERR,			\
38*4b88e723SAugustin Cavalier 		"libnvme (ERROR): " format,	\
39*4b88e723SAugustin Cavalier 		## args)
40*4b88e723SAugustin Cavalier 
41*4b88e723SAugustin Cavalier #define nvme_warning(format, args...)		\
42*4b88e723SAugustin Cavalier 	nvme_log(NVME_LOG_WARNING,		\
43*4b88e723SAugustin Cavalier 		"libnvme (WARNING): " format,	\
44*4b88e723SAugustin Cavalier 		## args)
45*4b88e723SAugustin Cavalier 
46*4b88e723SAugustin Cavalier #ifdef TRACE_NVME
47*4b88e723SAugustin Cavalier #define nvme_notice(format, args...)	\
48*4b88e723SAugustin Cavalier 	nvme_log(NVME_LOG_NOTICE,	\
49*4b88e723SAugustin Cavalier 		"libnvme: " format,	\
50*4b88e723SAugustin Cavalier 		## args)
51*4b88e723SAugustin Cavalier 
52*4b88e723SAugustin Cavalier #define nvme_info(format, args...)	\
53*4b88e723SAugustin Cavalier 	nvme_log(NVME_LOG_INFO,		\
54*4b88e723SAugustin Cavalier 		"libnvme: " format,	\
55*4b88e723SAugustin Cavalier 		## args)
56*4b88e723SAugustin Cavalier 
57*4b88e723SAugustin Cavalier #define nvme_debug(format, args...)	\
58*4b88e723SAugustin Cavalier 	nvme_log(NVME_LOG_DEBUG,	\
59*4b88e723SAugustin Cavalier 		"libnvme: " format,	\
60*4b88e723SAugustin Cavalier 		## args)
61*4b88e723SAugustin Cavalier #else
62*4b88e723SAugustin Cavalier #define nvme_notice(format, args...)
63*4b88e723SAugustin Cavalier #define nvme_info(format, args...)
64*4b88e723SAugustin Cavalier #define nvme_debug(format, args...)
65*4b88e723SAugustin Cavalier #endif
66*4b88e723SAugustin Cavalier 
67*4b88e723SAugustin Cavalier 
68*4b88e723SAugustin Cavalier #endif /* __NVME_LOG_H__ */
69