1 | #ifndef QEMU_EXEC_LOG_H |
2 | #define QEMU_EXEC_LOG_H |
3 | |
4 | #include "qemu/log.h" |
5 | #include "hw/core/cpu.h" |
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()) { |
19 | cpu_dump_state(cpu, qemu_logfile, flags); |
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, |
41 | target_ulong len) |
42 | { |
43 | target_disas(qemu_logfile, cpu, start, len); |
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 |
61 | |