00001 #ifndef QEMU_LOG_H
00002 #define QEMU_LOG_H
00003
00004
00005 extern FILE *logfile;
00006 extern int loglevel;
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #define qemu_log_enabled() (logfile != NULL)
00019
00020
00021
00022 #define qemu_loglevel_mask(b) ((loglevel & (b)) != 0)
00023
00024
00025
00026
00027
00028
00029 #define qemu_log(...) do { \
00030 if (logfile) \
00031 fprintf(logfile, ## __VA_ARGS__); \
00032 } while (0)
00033
00034
00035
00036 #define qemu_log_vprintf(fmt, va) do { \
00037 if (logfile) \
00038 vfprintf(logfile, fmt, va); \
00039 } while (0)
00040
00041
00042
00043 #define qemu_log_mask(b, ...) do { \
00044 if (loglevel & (b)) \
00045 fprintf(logfile, ## __VA_ARGS__); \
00046 } while (0)
00047
00048
00049
00050
00051
00052
00053
00054 #define log_cpu_state(env, f) cpu_dump_state((env), logfile, fprintf, (f));
00055 #define log_cpu_state_mask(b, env, f) do { \
00056 if (loglevel & (b)) log_cpu_state((env), (f)); \
00057 } while (0)
00058
00059
00060 #define log_target_disas(start, len, flags) \
00061 target_disas(logfile, (start), (len), (flags))
00062 #define log_disas(start, len) \
00063 disas(logfile, (start), (len))
00064
00065
00066 #define log_page_dump() page_dump(logfile)
00067
00068
00069
00070
00071
00072
00073 #define qemu_log_flush() fflush(logfile)
00074
00075
00076 #define qemu_log_close() do { \
00077 fclose(logfile); \
00078 logfile = NULL; \
00079 } while (0)
00080
00081
00082 #define qemu_log_set_file(f) do { \
00083 logfile = (f); \
00084 } while (0)
00085
00086
00087 #define qemu_log_try_set_file(f) do { \
00088 if (!logfile) \
00089 logfile = (f); \
00090 } while (0)
00091
00092
00093 #endif