qemu/include/hw
Michael Clark d78940ec5d RISC-V: Use atomic_cmpxchg to update PLIC bitmaps
The PLIC previously used a mutex to protect against concurrent
access to the claimed and pending bitfields. Instead of using
a mutex, we update the bitfields using atomic_cmpxchg.

Rename sifive_plic_num_irqs_pending to sifive_plic_irqs_pending
and add an early out if any interrupts are pending as the
count of pending interrupts is not used.

Cc: Sagar Karandikar <sagark@eecs.berkeley.edu>
Cc: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Cc: Palmer Dabbelt <palmer@sifive.com>
Cc: Alistair Francis <Alistair.Francis@wdc.com>
Signed-off-by: Michael Clark <mjc@sifive.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2018-09-04 13:19:31 -07:00
..
acpi hw/tpm: Use the IEC binary prefix definitions 2018-07-02 15:41:13 +02:00
adc
arm hw/arm/iotkit: Wire up the lines for MSCs 2018-08-24 13:17:44 +01:00
audio hw/audio/wm8750: move WM8750 declarations from i2c/i2c.h to audio/wm8750.h 2018-02-02 08:19:25 +01:00
block block: Remove deprecated -drive option serial 2018-08-15 12:50:39 +02:00
char imx_serial: Generate interrupt on receive data ready if enabled 2018-08-20 11:24:31 +01:00
core hw/core/split-irq: Device that splits IRQ lines 2018-03-02 11:03:45 +00:00
cpu hw: remove "qemu/osdep.h" from header files 2017-12-18 17:07:02 +03:00
cris
display hw/display/bcm2835_fb: Validate config settings 2018-08-24 13:17:50 +01:00
dma hw/dma/pl080: Don't use CPU address space for DMA accesses 2018-08-20 11:24:33 +01:00
gpio
i2c i2c: pm_smbus: Add the ability to force block transfer enable 2018-08-23 18:46:25 +02:00
i386 i386: do not migrate MSR_SMI_COUNT on machine types <2.12 2018-07-30 14:00:11 +02:00
ide ide: introduce ide_transfer_start_norecurse 2018-06-08 13:36:31 -04:00
input adb: add property to disable direct reg 3 writes 2018-06-16 16:32:33 +10:00
intc intc/arm_gic: Add the virtualization extensions to the GIC state 2018-08-14 17:17:20 +01:00
ipack
ipmi
isa superio: Don't use MAX_SERIAL_PORTS for serial port limit 2018-04-26 13:57:00 +01:00
kvm
lm32
m68k
mem pc-dimm: assign and verify the "addr" property during pre_plug 2018-08-23 18:46:25 +02:00
mips hw/mips: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
misc check/next for 20180822 2018-08-24 14:46:31 +01:00
net hw/net: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
nvram fw_cfg: import & use linux/qemu_fw_cfg.h 2018-08-23 18:46:25 +02:00
pci allocate pci id for mdpy 2018-05-23 03:14:40 +03:00
pci-bridge Clean up includes 2018-02-09 05:05:11 +01:00
pci-host uninorth: remove token register from uninorth device 2018-06-12 09:33:52 +10:00
ppc spapr: introduce a IRQ controller backend to the machine 2018-08-21 14:28:45 +10:00
riscv RISC-V: Use atomic_cmpxchg to update PLIC bitmaps 2018-09-04 13:19:31 -07:00
s390x s390x: remove 's390-squash-mcss' option 2018-08-20 14:18:49 +02:00
scsi Block layer patches: 2018-06-29 18:29:15 +01:00
sd sdcard: Reflect when the Spec v3 is supported in the Config Register (SCR) 2018-06-08 13:15:34 +01:00
sh4 hw: Do not include "exec/address-spaces.h" if it is not necessary 2018-06-01 14:15:10 +02:00
smbios Move include qemu/option.h from qemu-common.h to actual users 2018-02-09 13:52:16 +01:00
sparc sun4u_iommu: update to reflect IOMMU is no longer part of the APB device 2018-01-09 21:48:20 +00:00
ssi hw/ssi/pl022: Allow use as embedded-struct device 2018-08-24 13:17:44 +01:00
timer hw/timer/cmsdk-apb-dualtimer: Implement CMSDK dual timer module 2018-08-24 13:17:41 +01:00
tricore
unicore32 hw/unicore32: restrict hw addr defines to source file 2017-12-18 17:07:02 +03:00
usb usb: Add basic code to emulate Chipidea USB IP 2018-02-09 10:40:30 +00:00
vfio vfio/spapr: Allow backing bigger guest IOMMU pages with smaller physical pages 2018-08-21 14:28:45 +10:00
virtio vhost-user-scsi: move host_features into VHostSCSICommon 2018-08-23 18:46:25 +02:00
watchdog hw/watchdog/cmsdk_apb_watchdog: Implement CMSDK APB watchdog module 2018-08-20 11:24:33 +01:00
xen compiler: add a sizeof_field() macro 2018-06-27 13:01:40 +01:00
xtensa Clean up includes 2018-02-09 05:05:11 +01:00
boards.h fw_cfg: ignore suffixes in the bootdevice list dependent on machine class 2018-08-16 22:27:43 -03:00
bt.h
compat.h s390x: introduce 3.1 compat machine 2018-08-20 14:18:49 +02:00
devices.h hw: Clean "hw/devices.h" includes 2018-06-01 14:15:10 +02:00
elf_ops.h elf: On elf loading, treat both EM_MIPS and EM_NANOMIPS as legal for MIPS 2018-08-24 17:51:59 +02:00
empty_slot.h
fw-path-provider.h
hotplug.h qdev: add HotplugHandler->post_plug() callback 2018-07-16 16:58:16 +02:00
hw.h
ide.h
irq.h hw/core/split-irq: Device that splits IRQ lines 2018-03-02 11:03:45 +00:00
loader-fit.h Use #include "..." for our own headers, <...> for others 2018-02-09 05:05:11 +01:00
loader.h loader: Implement .hex file loader 2018-08-16 14:05:28 +01:00
nmi.h
or-irq.h hw/core/or-irq: Support more than 16 inputs to an OR gate 2018-06-15 15:23:34 +01:00
pcmcia.h
platform-bus.h platform-bus-device: use device plug callback instead of machine_done notifier 2018-05-10 18:10:56 +01:00
ptimer.h ptimer: Add TRIGGER_ONLY_ON_DECREMENT policy option 2018-07-09 14:51:34 +01:00
qdev-core.h qdev: Remove DeviceClass::init() and ::exit() 2018-06-01 15:14:31 +02:00
qdev-dma.h
qdev-properties.h net: Remove the deprecated "vlan" parameter 2018-05-14 15:47:14 +08:00
qdev.h
register.h hw: register: Run post_write hook on reset 2018-03-01 11:05:43 +00:00
registerfields.h Use #include "..." for our own headers, <...> for others 2018-02-09 05:05:11 +01:00
stream.h
sysbus.h hw/core/sysbus: Add a function for creating and attaching an object 2018-07-17 13:12:49 +01:00
usb.h usb: Remove legacy -usbdevice options (host, serial, disk and net) 2018-01-26 07:15:08 +01:00