mbox series

[v2,00/17] cpu: Introduce SysemuCPUOps structure

Message ID 20210301215110.772346-1-f4bug@amsat.org
Headers show
Series cpu: Introduce SysemuCPUOps structure | expand

Message

Philippe Mathieu-Daudé March 1, 2021, 9:50 p.m. UTC
Hi,

This series is inspired on Claudio TCG work.

Instead of separate TCG from other accelerators, here we
separate sysemu operations (system VS user).

Patches 1-6 are generic cleanups.
Patches 7-15 move from CPUClass to SysemuCPUOps
Patches 16-17 restrict SysemuCPUOps to sysemu

Since v1:
- Name 'sysemu' (Claudio)
- change each field progressively (Richard)

Regards,

Phil.

Supersedes: <20210226163227.4097950-1-f4bug@amsat.org>

Philippe Mathieu-Daudé (17):
  target: Set CPUClass::vmsd instead of DeviceClass::vmsd
  cpu: Un-inline cpu_get_phys_page_debug and cpu_asidx_from_attrs
  cpu: Introduce cpu_virtio_is_big_endian()
  cpu: Directly use cpu_write_elf*() fallback handlers in place
  cpu: Directly use get_paging_enabled() fallback handlers in place
  cpu: Directly use get_memory_mapping() fallback handlers in place
  cpu: Introduce SysemuCPUOps structure
  cpu: Move CPUClass::vmsd to SysemuCPUOps
  cpu: Move CPUClass::virtio_is_big_endian to SysemuCPUOps
  cpu: Move CPUClass::get_crash_info to SysemuCPUOps
  cpu: Move CPUClass::write_elf* to SysemuCPUOps
  cpu: Move CPUClass::asidx_from_attrs to SysemuCPUOps
  cpu: Move CPUClass::get_phys_page_debug to SysemuCPUOps
  cpu: Move CPUClass::get_memory_mapping to SysemuCPUOps
  cpu: Move CPUClass::get_paging_enabled to SysemuCPUOps
  cpu: Restrict cpu_paging_enabled / cpu_get_memory_mapping to sysemu
  cpu: Restrict "hw/core/sysemu-cpu-ops.h" to target/cpu.c

 include/hw/core/cpu.h            |  91 ++++++-------------------
 include/hw/core/sysemu-cpu-ops.h |  89 ++++++++++++++++++++++++
 cpu.c                            |  19 +++---
 hw/core/cpu.c                    | 113 +++++++++++++++++--------------
 hw/virtio/virtio.c               |   4 +-
 target/alpha/cpu.c               |  11 ++-
 target/arm/cpu.c                 |  19 ++++--
 target/avr/cpu.c                 |   9 ++-
 target/cris/cpu.c                |  11 ++-
 target/hppa/cpu.c                |  11 ++-
 target/i386/cpu.c                |  29 +++++---
 target/lm32/cpu.c                |  10 ++-
 target/m68k/cpu.c                |  11 ++-
 target/microblaze/cpu.c          |  11 ++-
 target/mips/cpu.c                |  11 ++-
 target/moxie/cpu.c               |  11 +--
 target/nios2/cpu.c               |  16 ++++-
 target/openrisc/cpu.c            |  11 ++-
 target/riscv/cpu.c               |  13 +++-
 target/rx/cpu.c                  |  17 ++++-
 target/s390x/cpu.c               |  15 ++--
 target/sh4/cpu.c                 |  11 ++-
 target/sparc/cpu.c               |  11 ++-
 target/tricore/cpu.c             |  14 +++-
 target/unicore32/cpu.c           |   8 ++-
 target/xtensa/cpu.c              |  11 ++-
 target/ppc/translate_init.c.inc  |  21 +++---
 27 files changed, 409 insertions(+), 199 deletions(-)
 create mode 100644 include/hw/core/sysemu-cpu-ops.h

Comments

Claudio Fontana March 2, 2021, 12:35 p.m. UTC | #1
On 3/1/21 10:50 PM, Philippe Mathieu-Daudé wrote:
> Hi,
> 
> This series is inspired on Claudio TCG work.
> 
> Instead of separate TCG from other accelerators, here we
> separate sysemu operations (system VS user).
> 
> Patches 1-6 are generic cleanups.
> Patches 7-15 move from CPUClass to SysemuCPUOps
> Patches 16-17 restrict SysemuCPUOps to sysemu
> 
> Since v1:
> - Name 'sysemu' (Claudio)
> - change each field progressively (Richard)
> 
> Regards,
> 
> Phil.

Very cool overall, and it all LGTM,

with the exception of patch 16.

Ciao,

Claudio

> 
> Supersedes: <20210226163227.4097950-1-f4bug@amsat.org>
> 
> Philippe Mathieu-Daudé (17):
>   target: Set CPUClass::vmsd instead of DeviceClass::vmsd
>   cpu: Un-inline cpu_get_phys_page_debug and cpu_asidx_from_attrs
>   cpu: Introduce cpu_virtio_is_big_endian()
>   cpu: Directly use cpu_write_elf*() fallback handlers in place
>   cpu: Directly use get_paging_enabled() fallback handlers in place
>   cpu: Directly use get_memory_mapping() fallback handlers in place
>   cpu: Introduce SysemuCPUOps structure
>   cpu: Move CPUClass::vmsd to SysemuCPUOps
>   cpu: Move CPUClass::virtio_is_big_endian to SysemuCPUOps
>   cpu: Move CPUClass::get_crash_info to SysemuCPUOps
>   cpu: Move CPUClass::write_elf* to SysemuCPUOps
>   cpu: Move CPUClass::asidx_from_attrs to SysemuCPUOps
>   cpu: Move CPUClass::get_phys_page_debug to SysemuCPUOps
>   cpu: Move CPUClass::get_memory_mapping to SysemuCPUOps
>   cpu: Move CPUClass::get_paging_enabled to SysemuCPUOps
>   cpu: Restrict cpu_paging_enabled / cpu_get_memory_mapping to sysemu
>   cpu: Restrict "hw/core/sysemu-cpu-ops.h" to target/cpu.c
> 
>  include/hw/core/cpu.h            |  91 ++++++-------------------
>  include/hw/core/sysemu-cpu-ops.h |  89 ++++++++++++++++++++++++
>  cpu.c                            |  19 +++---
>  hw/core/cpu.c                    | 113 +++++++++++++++++--------------
>  hw/virtio/virtio.c               |   4 +-
>  target/alpha/cpu.c               |  11 ++-
>  target/arm/cpu.c                 |  19 ++++--
>  target/avr/cpu.c                 |   9 ++-
>  target/cris/cpu.c                |  11 ++-
>  target/hppa/cpu.c                |  11 ++-
>  target/i386/cpu.c                |  29 +++++---
>  target/lm32/cpu.c                |  10 ++-
>  target/m68k/cpu.c                |  11 ++-
>  target/microblaze/cpu.c          |  11 ++-
>  target/mips/cpu.c                |  11 ++-
>  target/moxie/cpu.c               |  11 +--
>  target/nios2/cpu.c               |  16 ++++-
>  target/openrisc/cpu.c            |  11 ++-
>  target/riscv/cpu.c               |  13 +++-
>  target/rx/cpu.c                  |  17 ++++-
>  target/s390x/cpu.c               |  15 ++--
>  target/sh4/cpu.c                 |  11 ++-
>  target/sparc/cpu.c               |  11 ++-
>  target/tricore/cpu.c             |  14 +++-
>  target/unicore32/cpu.c           |   8 ++-
>  target/xtensa/cpu.c              |  11 ++-
>  target/ppc/translate_init.c.inc  |  21 +++---
>  27 files changed, 409 insertions(+), 199 deletions(-)
>  create mode 100644 include/hw/core/sysemu-cpu-ops.h
>