qemu/include/hw
David Gibson 9d4c0f4f0a spapr: Consolidate DRC state variables
Each DRC has three fields describing its state: isolation_state,
allocation_state and configured.  At first this seems like a reasonable
representation, since its based directly on the PAPR defined
isolation-state and allocation-state indicators.  However:
  * Only a few combinations of the two fields' values are permitted
  * allocation_state isn't used at all for physical DRCs
  * The indicators are write only so they don't really have a well
    defined current value independent of each other

This replaces these variables with a single state variable, whose names
and numbers are based on the diagram in LoPAPR section 13.4.  Along with
this we add code to check the current state on various operations and make
sure the requested transition is permitted.

Strictly speaking, this makes guest visible changes to behaviour (since we
probably allowed some transitions we shouldn't have before).  However, a
hypothetical guest broken by that wasn't PAPR compliant, and probably
wouldn't have worked under PowerVM.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Daniel Barboza <danielhb@linux.vnet.ibm.com>
Tested-by: Daniel Barboza <danielhb@linux.vnet.ibm.com>
2017-07-17 15:07:05 +10:00
..
acpi migration: Remove unneeded includes of migration/vmstate.h 2017-06-01 18:49:22 +02:00
adc
arm aspeed: Register all watchdogs 2017-07-11 11:21:26 +01:00
audio audio: Rename hw/audio/audio.h to hw/audio/soundhw.h 2017-05-19 10:48:54 +02:00
block hw/block: Introduce share-rw qdev property 2017-02-28 20:40:36 +01:00
char char: move CharBackend handling in char-fe unit 2017-06-02 11:33:53 +04:00
core
cpu
cris
display
dma
gpio bcm2835_gpio: add bcm2835 gpio controller 2017-02-28 17:10:00 +00:00
i2c
i386 memory/iommu: introduce IOMMUMemoryRegionClass 2017-07-14 12:04:41 +02:00
ide ide: core: add cleanup function 2017-03-15 20:50:14 -04:00
input ps2: add and use PS2State typedef 2017-06-23 11:51:50 +02:00
intc hw/intc/arm_gicv3_its: Implement state save/restore 2017-06-13 14:57:00 +01:00
ipack
ipmi ipmi: introduce an ipmi_bmc_gen_event() API 2017-04-26 12:41:55 +10:00
isa isa: use get_uint() for "io-base" 2017-06-20 14:31:32 +02:00
kvm
lm32
m68k
mem
mips memory/iommu: QOM'fy IOMMU MemoryRegion 2017-07-14 12:04:41 +02:00
misc hw/misc: add missing includes 2017-07-11 11:18:37 +03:00
net net/ftgmac100: add a 'aspeed' property 2017-04-25 19:17:25 +08:00
nvram
pci pci: Convert shpc_init() to Error 2017-07-03 22:29:49 +03:00
pci-host q35/mch: implement extended TSEG sizes 2017-06-16 18:07:08 +03:00
ppc spapr: Consolidate DRC state variables 2017-07-17 15:07:05 +10:00
s390x s390x/kvm/migration/cpumodel: fixes, enhancements and cleanups 2017-07-14 14:19:35 +01:00
scsi
sd hw/sd: add card-reparenting function 2017-02-28 17:10:00 +00:00
sh4
smbios
sparc
ssi
timer qtest: add rtc periodic timer test 2017-06-06 20:18:35 +02:00
tricore
unicore32
usb
vfio memory/iommu: QOM'fy IOMMU MemoryRegion 2017-07-14 12:04:41 +02:00
virtio virtio-net: enable configurable tx queue size 2017-07-03 22:29:48 +03:00
watchdog
xen xenfb: remove xen_init_display "temporary" hack 2017-07-07 11:10:03 -07:00
boards.h machine: call machine init from wrapper 2017-05-11 16:08:50 -03:00
bt.h
compat.h migration: move skip_section_footers 2017-06-28 11:18:39 +02:00
devices.h sm501: QOMify 2017-04-24 12:32:12 +01:00
elf_ops.h elf-loader: Allow late loading of elf 2017-02-28 12:04:48 +01:00
empty_slot.h
fw-path-provider.h
hotplug.h
hw.h migration: Split qemu-file.h 2017-06-01 18:49:22 +02:00
ide.h
irq.h
loader-fit.h
loader.h elf-loader: Allow late loading of elf 2017-02-28 12:04:48 +01:00
nmi.h
or-irq.h
pcmcia.h
platform-bus.h
ptimer.h include/hw/ptimer.h: Add documentation comments 2017-07-11 17:44:27 +03:00
qdev-core.h qdev: Add const qualifier to PropertyInfo definitions 2017-07-14 12:04:42 +02:00
qdev-dma.h
qdev-properties.h qdev: Add const qualifier to PropertyInfo definitions 2017-07-14 12:04:42 +02:00
qdev.h
register.h
registerfields.h
stream.h
sysbus.h
usb.h