qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH RFC qom-cpu 00/41] QOM CPUState, part 11: GDB stub
@ 2013-06-29 20:01 Andreas Färber
  2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 01/41] log: Change log_cpu_state[_mask]() argument to CPUState Andreas Färber
                   ` (41 more replies)
  0 siblings, 42 replies; 82+ messages in thread
From: Andreas Färber @ 2013-06-29 20:01 UTC (permalink / raw)
  To: qemu-devel
  Cc: Anthony Green, Blue Swirl, Max Filippov, jan.kiszka,
	Anthony Liguori, Paolo Bonzini, Guan Xuetao, Andreas Färber,
	Aurélien Jarno

Hello,

This series cleans up gdbstub by changing all its internal CPU state to CPUState
and by moving most target-specific code into the target directories.

It depends on part 10 and starts with a follow-up, consolidating reset logging.

Support for m68k, moxie and unicore32 to set the PC via gdbstub is added.

Lightweight subclasses for XtensaCPU are introduced, keeping the XtensaConfig
mechanisms, to stop xtensa from deviating at gdbstub level wrt register count.

I'm wondering whether there would be interest in adding a "program-counter"
dynamic property to the CPU, given that a setter has been factored out here?

Available for testing at:
git://github.com/afaerber/qemu-cpu.git qom-cpu-11.v1
https://github.com/afaerber/qemu-cpu/commits/qom-cpu-11.v1

Regards,
Andreas

Cc: Anthony Liguori <anthony@codemonkey.ws>
Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Aurélien Jarno <aurelien@aurel32.net>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Jan Kiszka <jan.kiszka@web.de> (gdbstub)
Cc: Anthony Green <green@moxielogic.com> (moxie)
Cc: Guan Xuetao <gxt@mprc.pku.edu.cn> (unicore32)
Cc: Max Filippov <jcmvbkbc@gmail.com> (xtensa)

Andreas Färber (41):
  log: Change log_cpu_state[_mask]() argument to CPUState
  cpu: Move reset logging to CPUState
  gdbstub: Change GDBState::query_cpu to CPUState
  cpu: Introduce CPUClass::set_pc() for gdb_set_cpu_pc()
  target-m68k: Implement CPUClass::set_pc()
  target-moxie: Implement CPUClass::set_pc()
  target-unicore32: Implement CPUClass::set_pc()
  cpu: Introduce CPUClass::synchronize_from_tb() to drop
    cpu_pc_from_tb()
  gdbstub: Replace two find_cpu() with qemu_get_cpu()
  target-alpha: Change gen_intermediate_code_internal() argument to
    AlphaCPU
  target-arm: Change gen_intermediate_code_internal() argument to ARMCPU
  target-cris: Change gen_intermediate_code_internal() argument to
    CRISCPU
  target-i386: Change gen_intermediate_code_internal() argument to
    X86CPU
  target-lm32: Change gen_intermediate_code_internal() argument to
    LM32CPU
  target-m68k: Change gen_intermediate_code_internal() argument to
    M68kCPU
  target-microblaze: Change gen_intermediate_code_internal() argument
    types
  target-mips: Change gen_intermediate_code_internal() argument to
    MIPSCPU
  target-ppc: Change gen_intermediate_code_internal() argument to
    PowerPCCPU
  target-s390x: Change gen_intermediate_code_internal() argument to
    S390CPU
  target-sh4: Change gen_intermediate_code_internal() argument to
    SuperHCPU
  target-sparc: Change gen_intermediate_code_internal() argument to
    SPARCCPU
  target-unicore32: Change gen_intermediate_code_internal() signature
  target-xtensa: Change gen_intermediate_code_internal() arg to
    XtensaCPU
  target-alpha: Change DisasContext::env to CPUState
  cpu: Move singlestep_enabled field from CPU_COMMON to CPUState
  gdbstub: Update gdb_handlesig() and gdb_signalled() Coding Style
  cpu: Change cpu_single_step() argument to CPUState
  kvm: Change kvm_{insert,remove}_breakpoint() argument to CPUState
  gdbstub: Change syscall callback argument to CPUState
  gdbstub: Change gdb_handlesig() argument to CPUState
  gdbstub: Change GDBState::c_cpu to CPUState
  gdbstub: Change gdb_{read,write}_register() argument to CPUState
  cpu: Turn cpu_get_phys_page_debug() into a CPUClass hook
  exec: Change cpu_memory_rw_debug() argument to CPUState
  cpu: Introduce CPUClass::memory_rw_debug() for
    target_memory_rw_debug()
  gdbstub: Change GDBState::g_cpu to CPUState
  cpu: Move gdb_regs field from CPU_COMMON to CPUState
  gdbstub: Change gdb_register_coprocessor() argument to CPUState
  target-xtensa: Introduce XtensaCPU subclasses
  gdbstub: Move num_g_regs to CPUState and NUM_CORE_REGS to CPUClass
  cpu: Introduce CPUClass::gdb_{read,write}_register()

 bsd-user/main.c                 |   10 +-
 cpu-exec.c                      |   16 +-
 cpus.c                          |    6 +-
 disas.c                         |    4 +-
 exec.c                          |   38 +-
 gdbstub.c                       | 1590 ++++-----------------------------------
 hw/i386/kvmvapic.c              |   78 +-
 hw/xtensa/pic_cpu.c             |   47 +-
 include/exec/cpu-all.h          |   14 +-
 include/exec/cpu-defs.h         |    3 -
 include/exec/exec-all.h         |    3 -
 include/exec/gdbstub.h          |   45 +-
 include/exec/softmmu-semi.h     |   18 +-
 include/qemu/log.h              |   26 +-
 include/qemu/typedefs.h         |    3 +
 include/qom/cpu.h               |   95 ++-
 include/sysemu/kvm.h            |    4 +-
 kvm-all.c                       |   12 +-
 kvm-stub.c                      |    4 +-
 linux-user/main.c               |   40 +-
 linux-user/signal.c             |    3 +-
 monitor.c                       |    2 +-
 qom/cpu.c                       |   30 +
 target-alpha/Makefile.objs      |    1 +
 target-alpha/cpu-qom.h          |    3 +
 target-alpha/cpu.c              |   18 +-
 target-alpha/cpu.h              |    5 -
 target-alpha/gdbstub.c          |   93 +++
 target-alpha/helper.c           |    5 +-
 target-alpha/translate.c        |   25 +-
 target-arm/Makefile.objs        |    1 +
 target-arm/arm-semi.c           |   10 +-
 target-arm/cpu-qom.h            |    5 +
 target-arm/cpu.c                |   21 +-
 target-arm/cpu.h                |    5 -
 target-arm/gdbstub.c            |  102 +++
 target-arm/helper.c             |   15 +-
 target-arm/translate.c          |   16 +-
 target-cris/Makefile.objs       |    1 +
 target-cris/cpu-qom.h           |    6 +
 target-cris/cpu.c               |   24 +-
 target-cris/cpu.h               |    4 -
 target-cris/gdbstub.c           |  130 ++++
 target-cris/helper.c            |    7 +-
 target-cris/translate.c         |   16 +-
 target-i386/Makefile.objs       |    1 +
 target-i386/cpu-qom.h           |    5 +
 target-i386/cpu.c               |   28 +-
 target-i386/cpu.h               |    5 -
 target-i386/gdbstub.c           |  231 ++++++
 target-i386/helper.c            |   12 +-
 target-i386/kvm.c               |   20 +-
 target-i386/seg_helper.c        |    5 +-
 target-i386/smm_helper.c        |    6 +-
 target-i386/translate.c         |   14 +-
 target-lm32/Makefile.objs       |    1 +
 target-lm32/cpu-qom.h           |    3 +
 target-lm32/cpu.c               |   21 +-
 target-lm32/cpu.h               |    5 -
 target-lm32/gdbstub.c           |   92 +++
 target-lm32/helper.c            |   10 +-
 target-lm32/translate.c         |   16 +-
 target-m68k/Makefile.objs       |    1 +
 target-m68k/cpu-qom.h           |    3 +
 target-m68k/cpu.c               |   19 +-
 target-m68k/cpu.h               |    5 -
 target-m68k/gdbstub.c           |   75 ++
 target-m68k/helper.c            |    5 +-
 target-m68k/m68k-semi.c         |    5 +-
 target-m68k/translate.c         |   16 +-
 target-microblaze/Makefile.objs |    1 +
 target-microblaze/cpu-qom.h     |    3 +
 target-microblaze/cpu.c         |   21 +-
 target-microblaze/cpu.h         |    5 -
 target-microblaze/gdbstub.c     |   56 ++
 target-microblaze/helper.c      |   16 +-
 target-microblaze/translate.c   |   19 +-
 target-mips/Makefile.objs       |    1 +
 target-mips/cpu-qom.h           |    3 +
 target-mips/cpu.c               |   39 +-
 target-mips/cpu.h               |    7 -
 target-mips/gdbstub.c           |  154 ++++
 target-mips/helper.c            |    9 +-
 target-mips/translate.c         |   20 +-
 target-moxie/cpu.c              |   18 +-
 target-moxie/cpu.h              |    6 +-
 target-moxie/helper.c           |   11 +-
 target-moxie/translate.c        |    5 +-
 target-openrisc/Makefile.objs   |    1 +
 target-openrisc/cpu.c           |   21 +-
 target-openrisc/cpu.h           |    8 +-
 target-openrisc/gdbstub.c       |   86 +++
 target-openrisc/mmu.c           |    5 +-
 target-openrisc/translate.c     |    9 +-
 target-ppc/Makefile.objs        |    1 +
 target-ppc/cpu-qom.h            |    3 +
 target-ppc/cpu.h                |    5 -
 target-ppc/gdbstub.c            |  131 ++++
 target-ppc/mmu-hash32.c         |    2 +-
 target-ppc/mmu-hash64.c         |    2 +-
 target-ppc/mmu_helper.c         |    6 +-
 target-ppc/translate.c          |   17 +-
 target-ppc/translate_init.c     |   32 +-
 target-s390x/Makefile.objs      |    1 +
 target-s390x/cpu-qom.h          |    3 +
 target-s390x/cpu.c              |   19 +-
 target-s390x/cpu.h              |    5 -
 target-s390x/gdbstub.c          |   88 +++
 target-s390x/helper.c           |    5 +-
 target-s390x/translate.c        |   14 +-
 target-sh4/Makefile.objs        |    1 +
 target-sh4/cpu-qom.h            |    3 +
 target-sh4/cpu.c                |   28 +-
 target-sh4/cpu.h                |    6 -
 target-sh4/gdbstub.c            |  146 ++++
 target-sh4/helper.c             |    7 +-
 target-sh4/translate.c          |   17 +-
 target-sparc/Makefile.objs      |    1 +
 target-sparc/cpu-qom.h          |    3 +
 target-sparc/cpu.c              |   39 +-
 target-sparc/cpu.h              |   11 +-
 target-sparc/gdbstub.c          |  208 +++++
 target-sparc/int32_helper.c     |    2 +-
 target-sparc/int64_helper.c     |    2 +-
 target-sparc/mmu_helper.c       |   22 +-
 target-sparc/translate.c        |   13 +-
 target-unicore32/cpu-qom.h      |    1 +
 target-unicore32/cpu.c          |   11 +
 target-unicore32/cpu.h          |    5 -
 target-unicore32/softmmu.c      |    7 +-
 target-unicore32/translate.c    |   16 +-
 target-xtensa/Makefile.objs     |    1 +
 target-xtensa/cpu-qom.h         |    6 +
 target-xtensa/cpu.c             |   46 +-
 target-xtensa/cpu.h             |   27 +-
 target-xtensa/gdbstub.c         |  111 +++
 target-xtensa/helper.c          |  108 ++-
 target-xtensa/op_helper.c       |  121 ++-
 target-xtensa/translate.c       |   29 +-
 target-xtensa/xtensa-semi.c     |   14 +-
 140 files changed, 2965 insertions(+), 2113 deletions(-)
 create mode 100644 target-alpha/gdbstub.c
 create mode 100644 target-arm/gdbstub.c
 create mode 100644 target-cris/gdbstub.c
 create mode 100644 target-i386/gdbstub.c
 create mode 100644 target-lm32/gdbstub.c
 create mode 100644 target-m68k/gdbstub.c
 create mode 100644 target-microblaze/gdbstub.c
 create mode 100644 target-mips/gdbstub.c
 create mode 100644 target-openrisc/gdbstub.c
 create mode 100644 target-ppc/gdbstub.c
 create mode 100644 target-s390x/gdbstub.c
 create mode 100644 target-sh4/gdbstub.c
 create mode 100644 target-sparc/gdbstub.c
 create mode 100644 target-xtensa/gdbstub.c

-- 
1.8.1.4

^ permalink raw reply	[flat|nested] 82+ messages in thread

end of thread, other threads:[~2013-07-07 18:51 UTC | newest]

Thread overview: 82+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-29 20:01 [Qemu-devel] [PATCH RFC qom-cpu 00/41] QOM CPUState, part 11: GDB stub Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 01/41] log: Change log_cpu_state[_mask]() argument to CPUState Andreas Färber
2013-07-01 17:03   ` Richard Henderson
2013-07-01 17:21     ` Andreas Färber
2013-07-01 20:22       ` Richard Henderson
2013-07-02  1:26   ` Andreas Färber
2013-07-02 21:17     ` Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 02/41] cpu: Move reset logging " Andreas Färber
2013-07-01 17:04   ` Richard Henderson
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 03/41] gdbstub: Change GDBState::query_cpu " Andreas Färber
2013-07-01 17:05   ` Richard Henderson
2013-07-02 22:11     ` Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 04/41] cpu: Introduce CPUClass::set_pc() for gdb_set_cpu_pc() Andreas Färber
2013-07-01 17:09   ` Richard Henderson
2013-07-01 17:25     ` Andreas Färber
2013-07-01 19:03       ` Richard Henderson
2013-07-01 19:41         ` Peter Maydell
2013-07-01 20:20           ` Richard Henderson
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 05/41] target-m68k: Implement CPUClass::set_pc() Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 06/41] target-moxie: " Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 07/41] target-unicore32: " Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 08/41] cpu: Introduce CPUClass::synchronize_from_tb() to drop cpu_pc_from_tb() Andreas Färber
2013-07-01 17:13   ` Richard Henderson
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 09/41] gdbstub: Replace two find_cpu() with qemu_get_cpu() Andreas Färber
2013-07-01 17:14   ` Richard Henderson
2013-07-06  0:42     ` Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 10/41] target-alpha: Change gen_intermediate_code_internal() argument to AlphaCPU Andreas Färber
2013-07-01 17:15   ` Richard Henderson
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 11/41] target-arm: Change gen_intermediate_code_internal() argument to ARMCPU Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 12/41] target-cris: Change gen_intermediate_code_internal() argument to CRISCPU Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 13/41] target-i386: Change gen_intermediate_code_internal() argument to X86CPU Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 14/41] target-lm32: Change gen_intermediate_code_internal() argument to LM32CPU Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 15/41] target-m68k: Change gen_intermediate_code_internal() argument to M68kCPU Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 16/41] target-microblaze: Change gen_intermediate_code_internal() argument types Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 17/41] target-mips: Change gen_intermediate_code_internal() argument to MIPSCPU Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 18/41] target-ppc: Change gen_intermediate_code_internal() argument to PowerPCCPU Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 19/41] target-s390x: Change gen_intermediate_code_internal() argument to S390CPU Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 20/41] target-sh4: Change gen_intermediate_code_internal() argument to SuperHCPU Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 21/41] target-sparc: Change gen_intermediate_code_internal() argument to SPARCCPU Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 22/41] target-unicore32: Change gen_intermediate_code_internal() signature Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 23/41] target-xtensa: Change gen_intermediate_code_internal() arg to XtensaCPU Andreas Färber
2013-07-01 17:16   ` Richard Henderson
2013-07-01 17:51     ` Andreas Färber
2013-07-01 18:03       ` Richard Henderson
2013-07-01 21:46         ` Andreas Färber
2013-07-02 21:13     ` Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 24/41] target-alpha: Change DisasContext::env to CPUState Andreas Färber
2013-07-01 17:18   ` Richard Henderson
2013-07-01 17:23   ` Richard Henderson
2013-07-01 17:42     ` Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 25/41] cpu: Move singlestep_enabled field from CPU_COMMON " Andreas Färber
2013-07-01 17:27   ` Richard Henderson
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 26/41] gdbstub: Update gdb_handlesig() and gdb_signalled() Coding Style Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 27/41] cpu: Change cpu_single_step() argument to CPUState Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 28/41] kvm: Change kvm_{insert, remove}_breakpoint() " Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 29/41] gdbstub: Change syscall callback " Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 30/41] gdbstub: Change gdb_handlesig() " Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 31/41] gdbstub: Change GDBState::c_cpu " Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 32/41] gdbstub: Change gdb_{read, write}_register() argument " Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 33/41] cpu: Turn cpu_get_phys_page_debug() into a CPUClass hook Andreas Färber
2013-07-06 20:19   ` Andreas Färber
2013-07-06 22:42     ` Max Filippov
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 34/41] exec: Change cpu_memory_rw_debug() argument to CPUState Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 35/41] cpu: Introduce CPUClass::memory_rw_debug() for target_memory_rw_debug() Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 36/41] gdbstub: Change GDBState::g_cpu to CPUState Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 37/41] cpu: Move gdb_regs field from CPU_COMMON " Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 38/41] gdbstub: Change gdb_register_coprocessor() argument " Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 39/41] target-xtensa: Introduce XtensaCPU subclasses Andreas Färber
2013-07-06 12:55   ` Andreas Färber
2013-07-06 18:01     ` Max Filippov
2013-07-06 18:39       ` Max Filippov
2013-07-06 19:12         ` Andreas Färber
2013-07-06 19:54           ` Max Filippov
2013-07-07 18:51             ` Andreas Färber
2013-07-06 18:45       ` Andreas Färber
2013-07-06 19:41         ` Max Filippov
2013-07-06 19:45       ` Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 40/41] gdbstub: Move num_g_regs to CPUState and NUM_CORE_REGS to CPUClass Andreas Färber
2013-06-29 20:01 ` [Qemu-devel] [PATCH RFC qom-cpu 41/41] cpu: Introduce CPUClass::gdb_{read, write}_register() Andreas Färber
2013-07-01 18:07   ` Richard Henderson
2013-07-06 19:18     ` Andreas Färber
2013-06-30 12:23 ` [Qemu-devel] [PATCH RFC qom-cpu 00/41] QOM CPUState, part 11: GDB stub Michael Walle

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).