You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qemu/include/system
Philippe Mathieu-Daudé f4ea95c9ad system/memory: Allow restricting legacy ldst_phys() API usage
Commit 500131154d ("exec.c: Add new address_space_ld*/st*
functions") added a new API to fix a shortcoming of the
ld/st*_phys() API, which does blind bus access, not reporting
failure (and it also allow to provide transaction attributes).

Later commit 42874d3a8c ("Switch non-CPU callers from ld/st*_phys
to address_space_ld/st*") automatically converted the legacy uses
to the new API, not precising transaction attributes
(MEMTXATTRS_UNSPECIFIED) and ignoring the transation result (passing
NULL pointer as MemTxResult).

While this is a faithful replacement, without any logical change,
we later realized better is to not use MEMTXATTRS_UNSPECIFIED or
NULL MemTxResult, and adapt each call site on a pair basis, looking
at the device model datasheet to do the correct behavior (which is
unlikely to ignore transaction failures).

Since this is quite some work, we defer that to device model
maintainers. Meanwhile we introduce a definition, to allow a
target which removed all legacy API call to prohibit further
legacy API uses, named "TARGET_NOT_USING_LEGACY_LDST_PHYS_API".

Since all targets should be able to check this definition, we
take care to not poison it.

Suggested-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20251224151351.86733-6-philmd@linaro.org>
2 days ago
..
accel-blocker.h
accel-irq.h hw/intc: Generalize APIC helper names from kvm_* to accel_* 3 months ago
address-spaces.h include/system: Move exec/address-spaces.h to system/address-spaces.h 8 months ago
arch_init.h system: Replace arch_type global by qemu_arch_available() helper 10 months ago
balloon.h include: reorganize memory API headers 6 days ago
block-backend-common.h
block-backend-global-state.h block-backend: mark blk_io_limits_disable() as GRAPH_UNLOCKED 6 months ago
block-backend-io.h block: use pwrite_zeroes_alignment when writing first sector 1 month ago
block-backend.h
block-ram-registrar.h include: reorganize memory API headers 6 days ago
blockdev.h
confidential-guest-support.h backends/confidential-guest-support: Add set_guest_policy() function 6 months ago
cpu-throttle.h
cpu-timers-internal.h
cpu-timers.h include/exec: Split out icount.h 8 months ago
cpus.h bsd-user, linux-user: introduce qemu_process_cpu_events 4 months ago
cryptodev-vhost-user.h
cryptodev-vhost.h
cryptodev.h
device_tree.h hw: Centralize handling of -machine dumpdtb option 10 months ago
dirtylimit.h
dirtyrate.h
dma.h include/system: Move exec/address-spaces.h to system/address-spaces.h 8 months ago
dump-arch.h
dump.h
event-loop-base.h block: rename block/aio.h to qemu/aio.h 6 days ago
host_iommu_device.h vfio/iommufd: Save vendor specific device info 7 months ago
hostmem.h include/system: Move exec/memory.h to system/memory.h 8 months ago
hvf.h accel/hvf: Restrict internal declarations 6 months ago
hvf_int.h accel/hvf: Restrict ARM specific fields of AccelCPUState 2 months ago
hw_accel.h qapi/accel: Allow to query mshv capabilities 3 months ago
igvm-cfg.h sev: Provide sev_features flags from IGVM VMSA to KVM_SEV_INIT2 6 months ago
igvm.h igvm: add support for initial register state load in native mode 2 months ago
iommufd.h include: reorganize memory API headers 6 days ago
ioport.h include/system: Move exec/ioport.h to system/ioport.h 8 months ago
iothread.h block: rename block/aio.h to qemu/aio.h 6 days ago
kvm.h accel/kvm: Introduce KvmPutState enum 3 months ago
kvm_int.h include: move hw/boards.h to hw/core/ 6 days ago
kvm_xen.h
memory.h system/memory: Allow restricting legacy ldst_phys() API usage 2 days ago
memory_ldst.h.inc system/memory: Remove address_space_stl_notdirty and stl_phys_notdirty 2 days ago
memory_ldst_cached.h.inc include: move memory_ldst* to include/system 6 days ago
memory_ldst_phys.h.inc include: move memory_ldst* to include/system 6 days ago
memory_mapping.h include: reorganize memory API headers 6 days ago
mshv.h target/i386/mshv: Implement mshv_store_regs() 3 months ago
mshv_int.h target/i386/mshv: Use preallocated page for hvcall 3 months ago
numa.h
nvmm.h accel/nvmm: Expose nvmm_enabled() to common code 6 months ago
os-posix.h os: add an ability to lock memory on_fault 11 months ago
os-wasm.h include/qemu/osdep.h: Add Emscripten-specific OS dependencies 8 months ago
os-win32.h error: Kill @error_warn 3 months ago
physmem.h * cleanup include/hw headers 4 days ago
qtest.h char: rename CharBackend->CharFrontend 2 months ago
ram_addr.h include: reorganize memory API headers 6 days ago
ramblock.h include: reorganize memory API headers 6 days ago
ramlist.h include: reorganize memory API headers 6 days ago
replay.h block: rename block/aio.h to qemu/aio.h 6 days ago
reset.h include: move hw/resettable.h to hw/core/ 6 days ago
rng-random.h
rng.h
rtc.h
runstate-action.h
runstate.h Accelerators patches 6 months ago
seccomp.h
spdm-socket.h spdm: define SPDM transport enum types 2 months ago
stats.h
system.h system: drop the -old-param option 4 months ago
tcg.h tcg: Move qemu_tcg_mttcg_enabled() to 'system/tcg.h' 8 months ago
tpm.h
tpm_backend.h
tpm_util.h
vhost-user-backend.h char: rename CharBackend->CharFrontend 2 months ago
watchdog.h
whpx.h accel/whpx: Expose whpx_enabled() to common code 6 months ago
xen-mapcache.h include: reorganize memory API headers 6 days ago
xen.h include: reorganize memory API headers 6 days ago