]>
Commit | Line | Data |
---|---|---|
508127e2 PB |
1 | #ifndef QEMU_EXEC_LOG_H |
2 | #define QEMU_EXEC_LOG_H | |
3 | ||
4 | #include "qemu/log.h" | |
2e5b09fd | 5 | #include "hw/core/cpu.h" |
508127e2 PB |
6 | #include "disas/disas.h" |
7 | ||
8 | /* cpu_dump_state() logging functions: */ | |
9 | /** | |
10 | * log_cpu_state: | |
11 | * @cpu: The CPU whose state is to be logged. | |
12 | * @flags: Flags what to log. | |
13 | * | |
14 | * Logs the output of cpu_dump_state(). | |
15 | */ | |
16 | static inline void log_cpu_state(CPUState *cpu, int flags) | |
17 | { | |
18 | if (qemu_log_enabled()) { | |
90c84c56 | 19 | cpu_dump_state(cpu, qemu_logfile, flags); |
508127e2 PB |
20 | } |
21 | } | |
22 | ||
23 | /** | |
24 | * log_cpu_state_mask: | |
25 | * @mask: Mask when to log. | |
26 | * @cpu: The CPU whose state is to be logged. | |
27 | * @flags: Flags what to log. | |
28 | * | |
29 | * Logs the output of cpu_dump_state() if loglevel includes @mask. | |
30 | */ | |
31 | static inline void log_cpu_state_mask(int mask, CPUState *cpu, int flags) | |
32 | { | |
33 | if (qemu_loglevel & mask) { | |
34 | log_cpu_state(cpu, flags); | |
35 | } | |
36 | } | |
37 | ||
38 | #ifdef NEED_CPU_H | |
39 | /* disas() and target_disas() to qemu_logfile: */ | |
40 | static inline void log_target_disas(CPUState *cpu, target_ulong start, | |
1d48474d | 41 | target_ulong len) |
508127e2 | 42 | { |
1d48474d | 43 | target_disas(qemu_logfile, cpu, start, len); |
508127e2 PB |
44 | } |
45 | ||
46 | static inline void log_disas(void *code, unsigned long size) | |
47 | { | |
48 | disas(qemu_logfile, code, size); | |
49 | } | |
50 | ||
51 | #if defined(CONFIG_USER_ONLY) | |
52 | /* page_dump() output to the log file: */ | |
53 | static inline void log_page_dump(void) | |
54 | { | |
55 | page_dump(qemu_logfile); | |
56 | } | |
57 | #endif | |
58 | #endif | |
59 | ||
60 | #endif |