diff options
author | Andreas Färber <afaerber@suse.de> | 2013-06-28 23:18:47 +0200 |
---|---|---|
committer | Andreas Färber <afaerber@suse.de> | 2013-07-26 23:23:54 +0200 |
commit | a0e372f0c49ac01faeaeb73a6e8f50e8ac615f34 (patch) | |
tree | 0a87f5f9ab3ff51ef996c69ded7cfa8f97768e92 /include/qom/cpu.h | |
parent | 19a77215f1ba966c4d37dadec45f38be789b8529 (diff) | |
download | qemu-a0e372f0c49ac01faeaeb73a6e8f50e8ac615f34.tar.gz qemu-a0e372f0c49ac01faeaeb73a6e8f50e8ac615f34.tar.bz2 qemu-a0e372f0c49ac01faeaeb73a6e8f50e8ac615f34.zip |
cpu: Introduce CPUState::gdb_num_regs and CPUClass::gdb_num_core_regs
CPUState::gdb_num_regs replaces num_g_regs.
CPUClass::gdb_num_core_regs replaces NUM_CORE_REGS.
Allows building gdb_register_coprocessor() for xtensa, too.
As a side effect this should fix coprocessor register numbering for SMP.
Acked-by: Michael Walle <michael@walle.cc> (for lm32)
Acked-by: Max Filippov <jcmvbkbc@gmail.com> (for xtensa)
Signed-off-by: Andreas Färber <afaerber@suse.de>
Diffstat (limited to 'include/qom/cpu.h')
-rw-r--r-- | include/qom/cpu.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/include/qom/cpu.h b/include/qom/cpu.h index daf1835c1a..195fe593ea 100644 --- a/include/qom/cpu.h +++ b/include/qom/cpu.h @@ -81,6 +81,7 @@ struct TranslationBlock; * #TranslationBlock. * @get_phys_page_debug: Callback for obtaining a physical address. * @vmsd: State description for migration. + * @gdb_num_core_regs: Number of core registers accessible to GDB. * * Represents a CPU family or model. */ @@ -109,7 +110,6 @@ typedef struct CPUClass { void (*synchronize_from_tb)(CPUState *cpu, struct TranslationBlock *tb); hwaddr (*get_phys_page_debug)(CPUState *cpu, vaddr addr); - const struct VMStateDescription *vmsd; int (*write_elf64_note)(WriteCoreDumpFunction f, CPUState *cpu, int cpuid, void *opaque); int (*write_elf64_qemunote)(WriteCoreDumpFunction f, CPUState *cpu, @@ -118,6 +118,9 @@ typedef struct CPUClass { int cpuid, void *opaque); int (*write_elf32_qemunote)(WriteCoreDumpFunction f, CPUState *cpu, void *opaque); + + const struct VMStateDescription *vmsd; + int gdb_num_core_regs; } CPUClass; struct KVMState; @@ -142,6 +145,7 @@ struct kvm_run; * @env_ptr: Pointer to subclass-specific CPUArchState field. * @current_tb: Currently executing TB. * @gdb_regs: Additional GDB registers. + * @gdb_num_regs: Number of total registers accessible to GDB. * @next_cpu: Next CPU sharing TB cache. * @kvm_fd: vCPU file descriptor for KVM. * @@ -177,6 +181,7 @@ struct CPUState { void *env_ptr; /* CPUArchState */ struct TranslationBlock *current_tb; struct GDBRegisterState *gdb_regs; + int gdb_num_regs; CPUState *next_cpu; int kvm_fd; |