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