qemu/stubs
Paolo Bonzini 37fb26601d bql: check that the BQL is not dropped within marked sections
The Big QEMU Lock (BQL) is used to provide interior mutability to Rust
code.  While BqlCell performs indivisible accesses, an equivalent of
RefCell will allow the borrower to hold to the interior content for a
long time.  If the BQL is dropped, another thread could come and mutate
the data from C code (Rust code would panic on borrow_mut() instead).
In order to prevent this, add a new BQL primitive that can mark
BQL-atomic sections and aborts if the BQL is dropped within them.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-12-10 18:49:25 +01:00
..
bdrv-next-monitor-owned.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
blk-commit-all.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
blk-exp-close-all.c meson: Drop the .fa library suffix 2024-07-03 18:41:26 +02:00
blockdev-close-all-bdrv-states.c all: Clean up includes 2016-02-16 14:29:28 +00:00
change-state-handler.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
cmos.c stubs/cmos: Use correct include 2020-09-01 09:10:58 +02:00
cpu-get-clock.c cpu-timers, icount: new modules 2020-10-05 16:41:22 +02:00
cpu-synchronize-state.c cpus: prepare new CpusAccel cpu accelerator interface 2020-10-05 16:41:22 +02:00
cpus-virtual-clock.c sysemu: add set_virtual_time to accel ops 2024-06-24 10:14:34 +01:00
dump.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
error-printf.c Move error_printf_unless_qmp() with monitor unit 2022-04-21 17:09:09 +04:00
fdset.c monitor: Report errors from monitor_fdset_dup_fd_add 2024-06-21 09:47:21 -03:00
fw_cfg.c hw/nvram/fw_cfg: Add fw_cfg_arch_key_name() 2019-05-23 14:10:31 +02:00
gdbstub.c gdbstub: Introduce GDBFeature structure 2023-10-11 08:46:33 +01:00
get-vm-name.c include: move qemu_get_vm_name() to sysemu.h 2022-04-06 14:31:43 +02:00
graph-lock.c async: Register/unregister aiocontext in graph lock list 2022-12-15 16:07:43 +01:00
hotplug-stubs.c hw/core: Move system emulation files to system_ss 2024-04-18 11:17:27 +02:00
icount.c system/replay: Restrict icount to system emulation 2024-01-19 12:28:59 +01:00
io_uring.c stubs: add stubs for io_uring interface 2020-01-30 20:59:41 +00:00
iothread-lock-block.c main-loop.h: introduce qemu_in_main_thread() 2022-03-04 18:18:15 +01:00
iothread-lock.c bql: check that the BQL is not dropped within marked sections 2024-12-10 18:49:25 +01:00
is-daemonized.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
linux-aio.c linux-aio: properly bubble up errors from initialization 2018-06-27 13:06:34 +01:00
meson.build stubs: avoid duplicate symbols in libqemuutil.a 2024-10-30 16:30:56 +01:00
migr-blocker.c migration: per-mode blockers 2023-11-01 16:13:59 +01:00
monitor-core.c stubs: remove obsolete stubs 2024-04-18 11:17:27 +02:00
monitor-internal.c stubs: move monitor_fdsets_cleanup with other fdset stubs 2024-04-18 11:17:27 +02:00
physmem.c stubs: add qemu_ram_block_from_host() and qemu_ram_get_fd() 2022-10-26 14:56:42 -04:00
qdev.c stubs: remove obsolete stubs 2024-04-18 11:17:27 +02:00
qemu-timer-notify-cb.c cpu-timers, icount: new modules 2020-10-05 16:41:22 +02:00
qmp-command-available.c remove preconfig state 2020-12-15 12:51:48 -05:00
qmp-quit.c chardev: don't exit() straight away on C-a x 2021-11-04 10:32:01 +00:00
qtest.c stubs: remove obsolete stubs 2024-04-18 11:17:27 +02:00
ram-block.c util/vfio-helpers.c: Use ram_block_discard_disable() in qemu_vfio_open_pci() 2020-11-16 13:22:17 -05:00
replay-mode.c stubs: split record/replay stubs further 2024-04-18 11:17:27 +02:00
replay-tools.c chardev: src buffer const for write functions 2022-09-29 14:38:05 +04:00
replay.c stubs: split record/replay stubs further 2024-04-18 11:17:27 +02:00
runstate-check.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
sysbus.c stubs: Clean up includes 2016-02-04 17:01:04 +00:00
target-get-monitor-def.c Clean up includes some more 2016-03-22 22:20:16 +01:00
target-monitor-defs.c monitor: remove MonitorDef from typedefs.h 2024-05-03 15:47:48 +02:00
trace-control.c trace: remove code that depends on setting vcpu 2023-06-01 11:05:05 -04:00
uuid.c qapi: Restrict query-uuid command to machine code 2020-09-29 15:41:35 +02:00
vm-stop.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
vmstate.c cpu: Move CPUClass::vmsd to SysemuCPUOps 2021-05-26 15:33:59 -07:00
win32-kbd-hook.c ui/win32-kbd-hook: handle AltGr in a hook procedure 2020-05-19 09:06:44 +02:00
xen-hw-stub.c hw/xen: Remove unnecessary xen_hvm_inject_msi() stub 2024-03-09 18:51:45 +01:00