qemu-cr16/include/hw
Nicholas Piggin 581bec5a04 ppc/xive: tctx signaling registers rework
The tctx "signaling" registers (PIPR, CPPR, NSR) raise an interrupt on
the target CPU thread. The POOL and PHYS rings both raise hypervisor
interrupts, so they both share one set of signaling registers in the
PHYS ring. The PHYS NSR register contains a field that indicates which
ring has presented the interrupt being signaled to the CPU.

This sharing results in all the "alt_regs" throughout the code. alt_regs
is not very descriptive, and worse is that the name is used for
conversions in both directions, i.e., to find the presenting ring from
the signaling ring, and the signaling ring from the presenting ring.

Instead of alt_regs, use the names sig_regs and sig_ring, and regs and
ring for the presenting ring being worked on. Add a helper function to
get the sign_regs, and add some asserts to ensure the POOL regs are
never used to signal interrupts.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Glenn Miles <milesg@linux.ibm.com>
Reviewed-by: Michael Kowal <kowal@linux.ibm.com>
Tested-by: Gautam Menghani <gautam@linux.ibm.com>
Link: https://lore.kernel.org/qemu-devel/20250512031100.439842-34-npiggin@gmail.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
2025-07-21 08:03:53 +02:00
..
acpi hw/arm/virt: Minor code reshuffling in create_acpi_ged 2025-07-15 02:56:40 -04:00
adc hw/adc: Remove MAX111X device 2024-10-15 15:16:17 +01:00
arm Accelerators patches 2025-07-16 07:13:40 -04:00
audio
block hw/block: Drop unused nand.c 2025-05-29 17:45:13 +01:00
char MAX78000: UART Implementation 2025-07-08 17:31:38 +01:00
core cpus: Document CPUState::vcpu_dirty field 2025-07-04 12:08:25 +02:00
cpu
cxl hw/cxl: mailbox-utils: 0x5604 - FMAPI Initiate DC Add 2025-07-15 02:56:40 -04:00
display hw/display: Allow injection of virtio-gpu EDID name 2025-07-15 10:22:33 +04:00
dma include/hw/dma/xlnx_dpdma: Remove dependency on console.h 2025-05-14 11:50:42 +02:00
firmware hw/smbios: Remove 'uuid_encoded' argument from smbios_set_defaults() 2024-06-19 12:40:49 +02:00
fsi include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
gpio hw/gpio/aspeed: Fix definition of AspeedGPIOClass 2025-06-10 12:59:09 +02:00
hyperv hw/hyperv/hyperv.h: header cleanup 2025-05-08 14:22:12 +02:00
i2c include/hw: replace FSF postal address with licenses URL 2025-06-26 00:42:37 +02:00
i386 Accelerators patches 2025-07-16 07:13:40 -04:00
ide include/system: Move exec/ioport.h to system/ioport.h 2025-04-23 14:08:21 -07:00
input hw/input: Remove lm832x device 2024-10-01 14:41:10 +01:00
intc target-arm queue: 2025-07-13 01:45:18 -04:00
ipack hw/ipack: Remove legacy qemu_allocate_irqs() use 2025-01-31 19:36:44 +01:00
ipmi include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
isa include/system: Move exec/ioport.h to system/ioport.h 2025-04-23 14:08:21 -07:00
loongarch hw/loongarch/virt: Remove global variables about memmap tables 2025-06-10 15:01:41 +08:00
m68k include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
mem include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
mips include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
misc MAX78000: AES implementation 2025-07-08 17:31:59 +01:00
net include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
nubus include/system: Move exec/address-spaces.h to system/address-spaces.h 2025-04-23 14:08:21 -07:00
nvram hw/nvram/fw_cfg: Remove legacy FW_CFG_ORDER_OVERRIDE 2025-05-30 09:52:08 +02:00
openrisc hw/openrisc: Support monitor dumpdtb command 2025-02-24 15:03:42 +00:00
pci pci: Add a memory attribute for pre-translated DMA operations 2025-07-15 02:56:39 -04:00
pci-bridge hw/pci-bridge/cxl-upstream: Add properties to control link speed and width 2024-11-04 16:03:24 -05:00
pci-host hw/pci-host/gpex-acpi: Use GED acpi pcihp property 2025-07-15 02:56:40 -04:00
ppc ppc/xive: tctx signaling registers rework 2025-07-21 08:03:53 +02:00
remote include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
riscv hw/riscv: Initial support for BOSC's Xiangshan Kunminghu FPGA prototype 2025-07-04 21:09:49 +10:00
rtc
rx
s390x hw/s390x: add Control-Program Identification to QOM 2025-06-25 17:04:40 +02:00
scsi esp.c: only allow ESP commands permitted in the current asc_mode 2025-07-15 00:25:21 +02:00
sd hw/sd/sdhci: Remove need for SDHCI_VENDOR_IMX definition 2025-03-12 11:11:42 +01:00
sensor
sh4 include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
southbridge include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
sparc
ssi hw/ssi/pnv_spi: Put a limit to RDR match failures 2025-03-11 22:43:31 +10:00
timer include/hw: replace FSF postal address with licenses URL 2025-06-26 00:42:37 +02:00
tricore include/system: Move exec/address-spaces.h to system/address-spaces.h 2025-04-23 14:08:21 -07:00
uefi hw/uefi: add include/hw/uefi/var-service.h 2025-03-04 12:01:42 +01:00
usb hw/usb/hcd-dwc3: Align global registers size with Linux 2025-02-25 15:32:58 +00:00
vfio vfio/migration: Max in-flight VFIO device state buffers size limit 2025-07-15 17:11:12 +02:00
virtio UI-related for 10.1 2025-07-16 07:07:05 -04:00
vmapple hw/vmapple/virtio-blk: Add support for apple virtio-blk 2025-03-04 14:45:34 +01:00
watchdog aspeed/wdt: Add AST2700 support 2024-06-16 21:08:54 +02:00
xen hw/xen/arch_hvm: Unify x86 and ARM variants 2025-07-15 19:10:15 +02:00
xtensa include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
boards.h acpi: Add machine option to disable SPCR table 2025-07-14 09:16:40 -04:00
clock.h clock: clear callback on unparent 2024-12-10 18:49:24 +01:00
elf_ops.h.inc
fw-path-provider.h
hotplug.h
hw.h meson: Only allow CONFIG_USER_ONLY from certain source sets 2025-04-23 14:08:44 -07:00
irq.h hw/irq: Introduce qemu_init_irqs() helper 2025-01-31 19:36:44 +01:00
loader-fit.h hw/mips/boston: Support dumpdtb monitor commands 2025-02-24 15:03:42 +00:00
loader.h hw/nvram/fw_cfg: Remove legacy FW_CFG_ORDER_OVERRIDE 2025-05-30 09:52:08 +02:00
nmi.h
or-irq.h
platform-bus.h
ptimer.h
qdev-clock.h
qdev-core.h hw/qdev: Factor qdev_hotunplug_allowed() out 2025-01-13 17:16:03 +01:00
qdev-dma.h
qdev-properties-system.h hw/display: Allow injection of virtio-gpu EDID name 2025-07-15 10:22:33 +04:00
qdev-properties.h qdev-properties: Add DEFINE_PROP_ON_OFF_AUTO_BIT64() 2025-07-14 05:25:34 -04:00
register.h include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
registerfields.h
resettable.h reset: Add RESET_TYPE_WAKEUP 2024-09-24 11:33:35 +02:00
stream.h
sysbus.h hw/core/sysbus: Introduce sysbus_mmio_map_name() helper 2025-07-15 02:56:40 -04:00
usb.h include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
vmstate-if.h