1be0aa7acSPeter Maydell /* log-for-trace.h: logging basics required by the trace.h generated 2be0aa7acSPeter Maydell * by the log trace backend. 3be0aa7acSPeter Maydell * 4be0aa7acSPeter Maydell * This should not be included directly by any .c file: if you 5be0aa7acSPeter Maydell * need to use the logging functions include "qemu/log.h". 6be0aa7acSPeter Maydell * 7be0aa7acSPeter Maydell * The purpose of splitting these parts out into their own header 8be0aa7acSPeter Maydell * is to catch the easy mistake where a .c file includes trace.h 9be0aa7acSPeter Maydell * but forgets to include qemu/log.h. Without this split, that 10be0aa7acSPeter Maydell * would result in the .c file compiling fine when the default 11be0aa7acSPeter Maydell * trace backend is in use but failing to compile with any other 12be0aa7acSPeter Maydell * backend. 13be0aa7acSPeter Maydell * 14be0aa7acSPeter Maydell * This code is licensed under the GNU General Public License, 15be0aa7acSPeter Maydell * version 2 or (at your option) any later version. 16be0aa7acSPeter Maydell */ 17be0aa7acSPeter Maydell 18be0aa7acSPeter Maydell #ifndef QEMU_LOG_FOR_TRACE_H 19be0aa7acSPeter Maydell #define QEMU_LOG_FOR_TRACE_H 20be0aa7acSPeter Maydell 21be0aa7acSPeter Maydell /* Private global variable, don't use */ 22be0aa7acSPeter Maydell extern int qemu_loglevel; 23be0aa7acSPeter Maydell 24be0aa7acSPeter Maydell #define LOG_TRACE (1 << 15) 25be0aa7acSPeter Maydell 26be0aa7acSPeter Maydell /* Returns true if a bit is set in the current loglevel mask */ qemu_loglevel_mask(int mask)27be0aa7acSPeter Maydellstatic inline bool qemu_loglevel_mask(int mask) 28be0aa7acSPeter Maydell { 29be0aa7acSPeter Maydell return (qemu_loglevel & mask) != 0; 30be0aa7acSPeter Maydell } 31be0aa7acSPeter Maydell 32be0aa7acSPeter Maydell /* main logging function */ 33*3c06a417SRichard Henderson void G_GNUC_PRINTF(1, 2) qemu_log(const char *fmt, ...); 34be0aa7acSPeter Maydell 35be0aa7acSPeter Maydell #endif 36