qemu-cr16/include/hw
Greg Kurz a005b3ef50 xics: report errors with the QEMU Error API
Using the return value to report errors is error prone:
- xics_alloc() returns -1 on error but spapr_vio_busdev_realize() errors
  on 0
- xics_alloc_block() returns the unclear value of ics->offset - 1 on error
  but both rtas_ibm_change_msi() and spapr_phb_realize() error on 0

This patch adds an errp argument to xics_alloc() and xics_alloc_block() to
report errors. The return value of these functions is a valid IRQ number
if errp is NULL. It is undefined otherwise.

The corresponding error traces get promotted to error messages. Note that
the "can't allocate IRQ" error message in spapr_vio_busdev_realize() also
moves to xics_alloc(). Similar error message consolidation isn't really
applicable to xics_alloc_block() because callers have extra context (device
config address, MSI or MSIX).

This fixes the issues mentioned above.

Based on previous work from Brian W. Hart.

Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2016-02-28 16:19:02 +11:00
..
acpi vhost, virtio, pci, pc 2016-02-25 12:13:49 +00:00
arm arm/boot: move highbank secure board setup code to common routine 2016-02-03 15:00:46 +00:00
audio
block include: Clean up includes 2016-02-23 12:43:05 +00:00
char
cpu icc_bus: drop the unused files 2015-10-02 16:22:02 -03:00
cris
gpio i.MX: add support for lower and upper interrupt in GPIO. 2015-12-17 13:37:13 +00:00
i2c i.MX: Add I2C controller emulator 2015-09-07 10:39:30 +01:00
i386 vhost, virtio, pci, pc 2016-02-25 12:13:49 +00:00
input cuda: port SET_DEVICE_LIST command to new framework 2016-02-17 09:59:30 +11:00
intc bcm2836_control: add bcm2836 ARM control logic 2016-02-03 15:00:45 +00:00
ipack
ipmi ipmi: introduce a struct ipmi_sdr_compact 2016-02-06 20:44:09 +02:00
isa include: Clean up includes 2016-02-23 12:43:05 +00:00
kvm
lm32
m68k
mem dimm: Correct type of MemoryHotplugState->base 2016-02-06 20:44:10 +02:00
mips
misc bcm2835_property: implement "get board revision" query 2016-02-11 11:17:32 +00:00
net i.MX: Add FEC Ethernet Emulator 2015-09-07 10:39:30 +01:00
nvram include: Clean up includes 2016-02-23 12:43:05 +00:00
pci include: Clean up includes 2016-02-23 12:43:05 +00:00
pci-host q35: Remove MCHPCIState.guest_info field 2015-12-22 17:45:13 +02:00
ppc xics: report errors with the QEMU Error API 2016-02-28 16:19:02 +11:00
s390x s390/sclp: store the increment_size in the sclp device 2015-09-07 16:10:44 +02:00
scsi scsi-generic: grab device and port SAS addresses from backend 2016-02-09 15:45:26 +01:00
sd sdhci: add quirk property for card insert interrupt status on Raspberry Pi 2016-02-26 15:09:42 +00:00
sh4
smbios
sparc
ssi xilinx_spips: Separate the state struct into a header 2016-01-21 14:15:03 +00:00
timer pc: acpi: move HPET from DSDT to SSDT 2016-01-09 23:20:18 +02:00
tricore
unicore32
usb
vfio hw/vfio/platform: amd-xgbe device 2016-02-19 09:42:29 -07:00
virtio vhost, virtio, pci, pc 2016-02-25 12:13:49 +00:00
watchdog
xen include: Clean up includes 2016-02-23 12:43:05 +00:00
boards.h migration: allow machine to enforce configuration section migration 2016-02-28 16:19:02 +11:00
bt.h bt: check struct sizes 2015-12-04 09:39:55 +03:00
compat.h fdc: change auto fallback drive for ISA FDC to 288 2016-01-25 14:36:01 -05:00
devices.h
elf_ops.h elf: Update EM_MOXIE definition 2015-09-25 12:04:43 +02:00
empty_slot.h
fw-path-provider.h
hotplug.h
hw.h vmstate: define vmstate_info_uinttl 2016-01-16 12:01:23 +00:00
ide.h
irq.h
loader.h
nmi.h
pcmcia.h
platform-bus.h
ptimer.h
qdev-core.h include: Clean up includes 2016-02-23 12:43:05 +00:00
qdev-dma.h
qdev-properties.h fdc: Add fallback option 2016-01-25 14:35:23 -05:00
qdev.h
stream.h
sysbus.h
usb.h