123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #ifndef QEMU_LOG_H
- #define QEMU_LOG_H
- /* The deprecated global variables: */
- extern FILE *logfile;
- extern int loglevel;
- /*
- * The new API:
- *
- */
- /* Log settings checking macros: */
- /* Returns true if qemu_log() will really write somewhere
- */
- #define qemu_log_enabled() (logfile != NULL)
- /* Returns true if a bit is set in the current loglevel mask
- */
- #define qemu_loglevel_mask(b) ((loglevel & (b)) != 0)
- /* Logging functions: */
- /* main logging function
- */
- #define qemu_log(...) do { \
- if (logfile) \
- fprintf(logfile, ## __VA_ARGS__); \
- } while (0)
- /* vfprintf-like logging function
- */
- #define qemu_log_vprintf(fmt, va) do { \
- if (logfile) \
- vfprintf(logfile, fmt, va); \
- } while (0)
- /* log only if a bit is set on the current loglevel mask
- */
- #define qemu_log_mask(b, ...) do { \
- if (loglevel & (b)) \
- fprintf(logfile, ## __VA_ARGS__); \
- } while (0)
- /* Special cases: */
- /* cpu_dump_state() logging functions: */
- #define log_cpu_state(env, f) cpu_dump_state((env), logfile, fprintf, (f));
- #define log_cpu_state_mask(b, env, f) do { \
- if (loglevel & (b)) log_cpu_state((env), (f)); \
- } while (0)
- /* disas() and target_disas() to logfile: */
- #define log_target_disas(start, len, flags) \
- target_disas(logfile, (start), (len), (flags))
- #define log_disas(start, len) \
- disas(logfile, (start), (len))
- /* page_dump() output to the log file: */
- #define log_page_dump() page_dump(logfile)
- /* Maintenance: */
- /* fflush() the log file */
- #define qemu_log_flush() fflush(logfile)
- /* Close the log file */
- #define qemu_log_close() do { \
- fclose(logfile); \
- logfile = NULL; \
- } while (0)
- /* Set up a new log file */
- #define qemu_log_set_file(f) do { \
- logfile = (f); \
- } while (0)
- /* Set up a new log file, only if none is set */
- #define qemu_log_try_set_file(f) do { \
- if (!logfile) \
- logfile = (f); \
- } while (0)
- #endif
|