qemu/hw
David Hildenbrand 2cc0e2e814 pc-dimm: factor out MemoryDevice interface
On the qmp level, we already have the concept of memory devices:
    "query-memory-devices"
Right now, we only support NVDIMM and PCDIMM.

We want to map other devices later into the address space of the guest.
Such device could e.g. be virtio devices. These devices will have a
guest memory range assigned but won't be exposed via e.g. ACPI. We want
to make them look like memory device, but not glued to pc-dimm.

Especially, it will not always be possible to have TYPE_PC_DIMM as a parent
class (e.g. virtio devices). Let's use an interface instead. As a first
part, convert handling of
- qmp_pc_dimm_device_list
- get_plugged_memory_size
to our new model. plug/unplug stuff etc. will follow later.

A memory device will have to provide the following functions:
- get_addr(): Necessary, as the property "addr" can e.g. not be used for
              virtio devices (already defined).
- get_plugged_size(): The amount this device offers to the guest as of
                      now.
- get_region_size(): Because this can later on be bigger than the
                     plugged size.
- fill_device_info(): Fill MemoryDeviceInfo, e.g. for qmp.

Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20180423165126.15441-2-david@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2018-05-07 10:00:02 -03:00
..
9pfs 9p: add trace event for v9fs_setattr() 2018-05-02 08:59:24 +02:00
acpi virt_arm: acpi: reuse common build_fadt() 2018-03-13 23:09:50 +02:00
adc
alpha hw/alpha/dp264: Use the TYPE_SMC37C669_SUPERIO 2018-03-12 16:12:49 +01:00
arm Remove checks on MAX_SERIAL_PORTS that are just bounds checks 2018-04-26 13:57:00 +01:00
audio hw/audio: Fix crashes when devices are used on ISA bus without DMA 2018-03-26 14:37:13 +02:00
block hw/block/pflash_cfi: fix off-by-one error 2018-04-10 16:33:08 +02:00
bt
char serial-isa: Use MAX_ISA_SERIAL_PORTS instead of MAX_SERIAL_PORTS 2018-04-26 13:57:00 +01:00
core Use cpu_create(type) instead of cpu_init(cpu_model) 2018-03-19 14:10:36 -03:00
cpu
cris Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
display secondary-vga: properly close QemuConsole on unplug 2018-03-13 11:17:29 -06:00
dma hw/dma/i82374: Avoid double creation of the 82374 controller 2018-04-09 16:36:39 +02:00
gpio
hppa Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
i2c
i386 pc-dimm: factor out MemoryDevice interface 2018-05-07 10:00:02 -03:00
ide macio: fix NULL pointer dereference when issuing IDE trim 2018-03-27 00:38:00 -04:00
input hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h 2018-03-12 16:12:48 +01:00
intc heathrow: remove obsolete heathow_init() function 2018-04-27 18:05:22 +10:00
ipack
ipmi
isa Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
lm32 Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
m68k hw/m68k/mcf5208: Fix trivial typo in board description 2018-05-01 15:37:54 +02:00
mem pc-dimm: factor out MemoryDevice interface 2018-05-07 10:00:02 -03:00
microblaze Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
mips serial-isa: Use MAX_ISA_SERIAL_PORTS instead of MAX_SERIAL_PORTS 2018-04-26 13:57:00 +01:00
misc mac_newworld: move wiring of macio IRQs to macio_newworld_realize() 2018-05-04 15:00:37 +10:00
moxie Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
net e1000: Choose which set of props to migrate 2018-04-10 11:30:03 +08:00
nios2 Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
nvram
openrisc Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
pci virtio,vhost,pci,pc: features, cleanups 2018-03-20 15:48:34 +00:00
pci-bridge
pci-host uninorth: create new uninorth device 2018-05-04 15:00:37 +10:00
pcmcia
ppc pc-dimm: factor out MemoryDevice interface 2018-05-07 10:00:02 -03:00
rdma hw/rdma: Fix possible out of bounds access to port GID index 2018-05-03 20:52:29 +03:00
riscv Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
s390x pc-bios/s390-ccw: fix loadparm initialization and int conversion 2018-05-02 11:27:14 +02:00
scsi hw/scsi: support SCSI-2 passthrough without PI 2018-04-09 16:36:39 +02:00
sd hw/sd/bcm2835_sdhost: Don't raise spurious interrupts 2018-04-10 13:02:25 +01:00
sh4 Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
smbios
sparc Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
sparc64 serial-isa: Use MAX_ISA_SERIAL_PORTS instead of MAX_SERIAL_PORTS 2018-04-26 13:57:00 +01:00
ssi xilinx_spips: Correct SNOOP_NONE state when flushing the txfifo 2018-04-26 11:04:40 +01:00
timer timer/aspeed: fix vmstate version id 2018-04-26 11:04:39 +01:00
tpm tpm: CRB: Enforce locality is requested before processing buffer 2018-03-29 17:41:02 -04:00
tricore hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-03-12 16:12:46 +01:00
unicore32 hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h 2018-03-12 16:12:48 +01:00
usb qobject: Replace qobject_incref/QINCREF qobject_decref/QDECREF 2018-05-04 08:27:53 +02:00
vfio vfio-ccw: introduce vfio_ccw_get_device() 2018-04-30 10:31:41 +02:00
virtio vhost: do not verify ring mappings when IOMMU is enabled 2018-04-16 19:11:38 +03:00
watchdog
xen xen: Expect xenstore write to fail when restricted 2018-04-26 16:29:51 +01:00
xenpv
xtensa Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
Makefile.objs