[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 07/20] memory-device: add device class function s
From: |
David Hildenbrand |
Subject: |
[Qemu-devel] [PATCH v2 07/20] memory-device: add device class function set_addr() |
Date: |
Wed, 29 Aug 2018 17:36:11 +0200 |
To be able to factor out address asignment of memory devices, we will
have to read (get_addr()) and write (set_addr()) the address.
We can't use properties for this purpose, as properties are device
specific. E.g. while the address property for a DIMM is called "addr", it
might be called differently (e.g. "memaddr") for other devices.
Especially virtio based memory devices cannot use "addr" as that is already
reserved and used for the address on the bus (for the proxy device).
Also, it might be possible to have memory devices without address
properties (e.g. internal DIMM-like thingies).
In contrast to get_addr(), we expect that set_addr() can fail.
Signed-off-by: David Hildenbrand <address@hidden>
---
include/hw/mem/memory-device.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/hw/mem/memory-device.h b/include/hw/mem/memory-device.h
index d353564faf..148f32743f 100644
--- a/include/hw/mem/memory-device.h
+++ b/include/hw/mem/memory-device.h
@@ -34,6 +34,7 @@ typedef struct MemoryDeviceState {
* @get_addr: The address of the @md in guest physical memory. "0" means that
* no address has been specified by the user and that no address has been
* assigned yet.
+ * @set_addr: Set the address of the @md in guest physical memory.
* @get_plugged_size: The amount of memory provided by this @md currently
* usable ("plugged") by the guest. Will not fail after the device was
realized.
* @get_memory_region: The memory region of the @md to mapped in guest
@@ -46,6 +47,7 @@ typedef struct MemoryDeviceClass {
/* public */
uint64_t (*get_addr)(const MemoryDeviceState *md);
+ void (*set_addr)(MemoryDeviceState *md, uint64_t addr, Error **errp);
uint64_t (*get_plugged_size)(const MemoryDeviceState *md, Error **errp);
MemoryRegion *(*get_memory_region)(MemoryDeviceState *md, Error **errp);
void (*fill_device_info)(const MemoryDeviceState *md,
--
2.17.1
- [Qemu-devel] [PATCH v2 00/20] memory-device: complete refactoring + virtio-pmem, David Hildenbrand, 2018/08/29
- [Qemu-devel] [PATCH v2 02/20] memory-device: use memory device terminology in error messages, David Hildenbrand, 2018/08/29
- [Qemu-devel] [PATCH v2 01/20] memory-device: fix error message when hinted address is too small, David Hildenbrand, 2018/08/29
- [Qemu-devel] [PATCH v2 03/20] memory-device: introduce separate config option, David Hildenbrand, 2018/08/29
- [Qemu-devel] [PATCH v2 04/20] memory-device: get_region_size()/get_plugged_size() might fail, David Hildenbrand, 2018/08/29
- [Qemu-devel] [PATCH v2 05/20] memory-device: convert get_region_size() to get_memory_region(), David Hildenbrand, 2018/08/29
- [Qemu-devel] [PATCH v2 06/20] memory-device: document MemoryDeviceClass, David Hildenbrand, 2018/08/29
- [Qemu-devel] [PATCH v2 07/20] memory-device: add device class function set_addr(),
David Hildenbrand <=
- [Qemu-devel] [PATCH v2 08/20] pc-dimm: implement memory device class function set_addr(), David Hildenbrand, 2018/08/29
- [Qemu-devel] [PATCH v2 09/20] memory-device: complete factoring out pre_plug handling, David Hildenbrand, 2018/08/29
- [Qemu-devel] [PATCH v2 10/20] memory-device: complete factoring out plug handling, David Hildenbrand, 2018/08/29
- [Qemu-devel] [PATCH v2 11/20] memory-device: complete factoring out unplug handling, David Hildenbrand, 2018/08/29
- [Qemu-devel] [PATCH v2 12/20] memory-device: trace when pre_assigning/assigning/unassigning addresses, David Hildenbrand, 2018/08/29
- [Qemu-devel] [PATCH v2 13/20] hw/acpi-build: only indicate nvdimm and pc-dimm, David Hildenbrand, 2018/08/29
- [Qemu-devel] [PATCH v2 14/20] memory-device: ids of virtio based devices are special, David Hildenbrand, 2018/08/29