qemu/include/hw
Peter Maydell 408b2b3d9d accel/tcg: Make TCGCPUOps::cpu_exec_halt return bool for whether to halt
The TCGCPUOps::cpu_exec_halt method is called from cpu_handle_halt()
when the CPU is halted, so that a target CPU emulation can do
anything target-specific it needs to do.  (At the moment we only use
this on i386.)

The current specification of the method doesn't allow the target
specific code to do something different if the CPU is about to come
out of the halt state, because cpu_handle_halt() only determines this
after the method has returned.  (If the method called cpu_has_work()
itself this would introduce a potential race if an interrupt arrived
between the target's method implementation checking and
cpu_handle_halt() repeating the check.)

Change the definition of the method so that it returns a bool to
tell cpu_handle_halt() whether to stay in halt or not.

We will want this for the Arm target, where FEAT_WFxT wants to do
some work only for the case where the CPU is in halt but about to
leave it.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20240430140035.3889879-2-peter.maydell@linaro.org
2024-05-30 16:13:48 +01:00
..
acpi hw/acpi: Implement the SRAT GI affinity structure 2024-03-12 17:56:55 -04:00
adc
arm hw/arm: Add the USART to the stm32l4x5 SoC 2024-04-25 10:21:59 +01:00
audio virtio-snd: rewrite invalid tx/rx message handling 2024-04-09 02:31:16 -04:00
block aspeed/smc: Only wire flash devices at reset 2024-03-19 11:58:15 +01:00
char hw/char/stm32l4x5_usart: Enable serial read and write 2024-04-25 10:21:59 +01:00
core accel/tcg: Make TCGCPUOps::cpu_exec_halt return bool for whether to halt 2024-05-30 16:13:48 +01:00
cpu
cris
cxl hw/cxl/cxl-cdat: Make cxl_doe_cdat_init() return boolean 2024-04-25 12:48:12 +02:00
display hw/display : Add device DM163 2024-04-30 16:02:43 +01:00
dma hw/dma: Pass parent object to i8257_dma_init() 2024-02-15 16:58:46 +01:00
firmware smbios: get rid of global smbios_ep_type 2024-03-18 08:42:45 -04:00
fsi
gpio misc/pca955*: Move models under hw/gpio 2024-03-25 15:05:38 +01:00
hyperv vmbus: Print a warning when enabled without the recommended set of features 2024-03-08 14:18:56 +01:00
i2c hw/i2c: Implement Broadcom Serial Controller (BSC) 2024-03-05 13:22:55 +00:00
i386 i386: Support module_id in X86CPUTopoIDs 2024-05-22 19:43:29 +02:00
ide ide, vl: turn -win2k-hack into a property on IDE devices 2024-02-28 00:23:39 +01:00
input hw/input/pckbd: Open-code i8042_setup_a20_line() wrapper 2024-02-22 12:47:35 +01:00
intc hw/intc/loongarch_ipi: Rename as loongson_ipi 2024-05-09 00:07:21 +02:00
ipack
ipmi
isa
loongarch hw/intc/loongarch_ipi: Rename as loongson_ipi 2024-05-09 00:07:21 +02:00
m68k
mem
mips
misc misc/pca955*: Move models under hw/gpio 2024-03-25 15:05:38 +01:00
net hw/net/npcm_gmac.h: correct typos 2024-02-21 08:16:43 +03:00
nubus hw/nubus: add nubus-virtio-mmio device 2024-02-27 09:36:39 +01:00
nvram fw_cfg: remove useless declarations from typedefs.h 2024-05-03 15:47:48 +02:00
openrisc
pci pci: remove some types from typedefs.h 2024-05-03 15:47:48 +02:00
pci-bridge
pci-host hw/loongarch: fdt adds pch_msi Controller 2024-04-29 10:25:56 +08:00
ppc ppc/pef: switch to use confidential_guest_kvm_init/reset() 2024-04-23 17:35:25 +02:00
remote
riscv hw/riscv/virt.h: correct typos 2024-02-21 08:16:43 +03:00
rtc hw/i386: move rtc-reset-reinjection command out of hw/rtc 2024-05-10 15:45:15 +02:00
rx hw/rx/rx62n: Only call qdev_get_gpio_in() when necessary 2024-02-15 16:58:46 +01:00
s390x hw/s390x: Remove unused macro VMSTATE_ADAPTER_ROUTES 2024-05-29 12:41:56 +02:00
scsi esp.c: keep track of the DRQ state during DMA 2024-02-13 19:37:28 +00:00
sd
sensor
sh4
southbridge
sparc hw/sparc/grlib: split out the headers for each peripherals 2024-02-15 16:58:46 +01:00
ssi
timer hw/timer: Move HPET_INTCAP definition to "hpet.h" 2024-02-20 20:34:21 +03:00
tricore hw/tricore/testboard: Use qdev_new() instead of QOM basic API 2024-02-22 12:47:40 +01:00
usb
vfio vfio/helpers: Make vfio_device_get_name() return bool 2024-05-22 10:04:21 +02:00
virtio virtio-gpu: fix v2 migration 2024-05-22 17:34:41 -03:00
watchdog hw/watchdog/sbsa_gwdt: Make watchdog timer frequency a QOM property 2024-04-30 15:14:15 +01:00
xen xen: register legacy backends via xen_backend_init 2024-05-10 15:45:15 +02:00
xtensa
boards.h hw/core/machine: Introduce the module as a CPU topology level 2024-04-25 12:48:12 +02:00
clock.h hw/clock: Let clock_set_mul_div() return a boolean value 2024-03-26 14:24:06 +01:00
elf_ops.h.inc hw/elf_ops: Rename elf_ops.h -> elf_ops.h.inc 2024-04-25 12:48:12 +02:00
fw-path-provider.h
hotplug.h
hw.h
irq.h
loader-fit.h
loader.h
nmi.h
or-irq.h
pcmcia.h
platform-bus.h
ptimer.h
qdev-clock.h
qdev-core.h qdev-core: remove DeviceListener from typedefs.h 2024-05-03 15:47:48 +02:00
qdev-dma.h
qdev-properties-system.h migration/multifd: Add new migration option zero-page-detection. 2024-03-11 16:57:05 -04:00
qdev-properties.h
register.h
registerfields.h
resettable.h reset: Add RESET_TYPE_SNAPSHOT_LOAD 2024-04-25 10:21:59 +01:00
stream.h
sysbus.h hw/sysbus: Remove now unused sysbus_address_space() 2024-02-26 18:40:21 +01:00
usb.h hw/usb: remove usb_bus_find 2024-02-27 09:37:21 +01:00
vmstate-if.h