1 /*
2  * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef DEBUG_H
8 #define DEBUG_H
9 
10 #include <stdio.h>
11 
12 /* The log output macros print output to the console. These macros produce
13  * compiled log output only if the LOG_LEVEL defined in the makefile (or the
14  * make command line) is greater or equal than the level required for that
15  * type of log output.
16  * The format expected is the same as for printf(). For example:
17  * INFO("Info %s.\n", "message")    -> INFO:    Info message.
18  * WARN("Warning %s.\n", "message") -> WARNING: Warning message.
19  */
20 
21 #define LOG_LEVEL_NONE			0
22 #define LOG_LEVEL_ERROR			10
23 #define LOG_LEVEL_NOTICE		20
24 #define LOG_LEVEL_WARNING		30
25 #define LOG_LEVEL_INFO			40
26 #define LOG_LEVEL_VERBOSE		50
27 
28 
29 #if LOG_LEVEL >= LOG_LEVEL_NOTICE
30 # define NOTICE(...)	printf("NOTICE:  " __VA_ARGS__)
31 #else
32 # define NOTICE(...)
33 #endif
34 
35 #if LOG_LEVEL >= LOG_LEVEL_ERROR
36 # define ERROR(...)	printf("ERROR:   " __VA_ARGS__)
37 #else
38 # define ERROR(...)
39 #endif
40 
41 #if LOG_LEVEL >= LOG_LEVEL_WARNING
42 # define WARN(...)	printf("WARNING: " __VA_ARGS__)
43 #else
44 # define WARN(...)
45 #endif
46 
47 #if LOG_LEVEL >= LOG_LEVEL_INFO
48 # define INFO(...)	printf("INFO:    " __VA_ARGS__)
49 #else
50 # define INFO(...)
51 #endif
52 
53 #if LOG_LEVEL >= LOG_LEVEL_VERBOSE
54 # define VERBOSE(...)	printf("VERBOSE: " __VA_ARGS__)
55 #else
56 # define VERBOSE(...)
57 #endif
58 
59 #endif /* DEBUG_H */
60