qemu-e2k/include
David Gibson 3153119e9b vfio: Start improving VFIO/EEH interface
At present the code handling IBM's Enhanced Error Handling (EEH) interface
on VFIO devices operates by bypassing the usual VFIO logic with
vfio_container_ioctl().  That's a poorly designed interface with unclear
semantics about exactly what can be operated on.

In particular it operates on a single vfio container internally (hence the
name), but takes an address space and group id, from which it deduces the
container in a rather roundabout way.  groupids are something that code
outside vfio shouldn't even be aware of.

This patch creates new interfaces for EEH operations.  Internally we
have vfio_eeh_container_op() which takes a VFIOContainer object
directly.  For external use we have vfio_eeh_as_ok() which determines
if an AddressSpace is usable for EEH (at present this means it has a
single container with exactly one group attached), and vfio_eeh_as_op()
which will perform an operation on an AddressSpace in the unambiguous case,
and otherwise returns an error.

This interface still isn't great, but it's enough of an improvement to
allow a number of cleanups in other places.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
2016-03-16 09:55:10 +11:00
..
block block: Remove unused typedef of BlockDriverDirtyHandler 2016-03-14 17:35:05 +01:00
crypto include: Clean up includes 2016-02-23 12:43:05 +00:00
disas disas: Add print_insn to disassemble info 2015-07-09 15:20:40 +02:00
exec exec: Pass RAMBlock pointer to qemu_ram_free 2016-03-07 13:26:37 +01:00
fpu include: Clean up includes 2016-02-23 12:43:05 +00:00
hw vfio: Start improving VFIO/EEH interface 2016-03-16 09:55:10 +11:00
io io: implement socket watch for win32 using WSAEventSelect+select 2016-03-10 17:19:07 +00:00
libdecnumber include: Clean up includes 2016-02-23 12:43:05 +00:00
migration migration (ordinary): move bdrv_invalidate_cache_all of of coroutine context 2016-02-26 20:39:50 +05:30
monitor qom: add helpers for UserCreatable object types 2016-02-16 17:12:57 +01:00
net filter: Add 'status' property for filter object 2016-03-08 15:34:18 +08:00
qapi include: Clean up includes 2016-02-23 12:43:05 +00:00
qemu typedefs: Add BdrvDirtyBitmap 2016-03-14 17:35:05 +01:00
qom typedefs: Add CPUState 2016-03-01 13:27:09 +00:00
standard-headers virtio-balloon: add 'available' counter 2016-03-11 14:55:15 +02:00
sysemu block: Introduce blk_set_allow_write_beyond_eof() 2016-03-14 16:46:43 +01:00
ui input: linux evdev support 2016-03-08 12:20:11 +01:00
config.h include: Clean up includes 2016-02-23 12:43:05 +00:00
elf.h include: Clean up includes 2016-02-23 12:43:05 +00:00
glib-compat.h glib: add compatibility interface for g_hash_table_add() 2015-10-30 09:01:03 +01:00
qemu-common.h cutils: add avx2 instruction optimization 2016-03-08 16:53:26 +05:30
qemu-io.h qemu-io: Use BlockBackend 2015-02-16 15:07:19 +00:00
qjson.h
trace-tcg.h
trace.h