1508127e2SPaolo Bonzini #ifndef QEMU_EXEC_LOG_H 2508127e2SPaolo Bonzini #define QEMU_EXEC_LOG_H 3508127e2SPaolo Bonzini 4508127e2SPaolo Bonzini #include "qemu/log.h" 52e5b09fdSMarkus Armbruster #include "hw/core/cpu.h" 6508127e2SPaolo Bonzini #include "disas/disas.h" 7508127e2SPaolo Bonzini 8508127e2SPaolo Bonzini /* cpu_dump_state() logging functions: */ 9508127e2SPaolo Bonzini /** 10508127e2SPaolo Bonzini * log_cpu_state: 11508127e2SPaolo Bonzini * @cpu: The CPU whose state is to be logged. 12508127e2SPaolo Bonzini * @flags: Flags what to log. 13508127e2SPaolo Bonzini * 14508127e2SPaolo Bonzini * Logs the output of cpu_dump_state(). 15508127e2SPaolo Bonzini */ log_cpu_state(CPUState * cpu,int flags)16508127e2SPaolo Bonzinistatic inline void log_cpu_state(CPUState *cpu, int flags) 17508127e2SPaolo Bonzini { 18*bf619eaeSRichard Henderson FILE *f = qemu_log_trylock(); 19*bf619eaeSRichard Henderson if (f) { 20*bf619eaeSRichard Henderson cpu_dump_state(cpu, f, flags); 21*bf619eaeSRichard Henderson qemu_log_unlock(f); 22508127e2SPaolo Bonzini } 23508127e2SPaolo Bonzini } 24508127e2SPaolo Bonzini 25508127e2SPaolo Bonzini /** 26508127e2SPaolo Bonzini * log_cpu_state_mask: 27508127e2SPaolo Bonzini * @mask: Mask when to log. 28508127e2SPaolo Bonzini * @cpu: The CPU whose state is to be logged. 29508127e2SPaolo Bonzini * @flags: Flags what to log. 30508127e2SPaolo Bonzini * 31508127e2SPaolo Bonzini * Logs the output of cpu_dump_state() if loglevel includes @mask. 32508127e2SPaolo Bonzini */ log_cpu_state_mask(int mask,CPUState * cpu,int flags)33508127e2SPaolo Bonzinistatic inline void log_cpu_state_mask(int mask, CPUState *cpu, int flags) 34508127e2SPaolo Bonzini { 35508127e2SPaolo Bonzini if (qemu_loglevel & mask) { 36508127e2SPaolo Bonzini log_cpu_state(cpu, flags); 37508127e2SPaolo Bonzini } 38508127e2SPaolo Bonzini } 39508127e2SPaolo Bonzini 40508127e2SPaolo Bonzini #endif 41