@@ -270,9 +270,16 @@ void memory_device_unplug_region(MachineState *ms, MemoryRegion *mr)
uint64_t memory_device_get_region_size(const MemoryDeviceState *md,
Error **errp)
{
- MemoryDeviceClass *mdc = MEMORY_DEVICE_GET_CLASS(md);
+ const MemoryDeviceClass *mdc = MEMORY_DEVICE_GET_CLASS(md);
+ MemoryRegion *mr;
- return mdc->get_region_size(md, errp);
+ /* dropping const here is fine as we don't touch the memory region */
+ mr = mdc->get_memory_region((MemoryDeviceState *)md, errp);
+ if (!mr) {
+ return 0;
+ }
+
+ return memory_region_size(mr);
}
static const TypeInfo memory_device_info = {
@@ -236,21 +236,6 @@ static uint64_t pc_dimm_md_get_addr(const MemoryDeviceState *md)
return dimm->addr;
}
-static uint64_t pc_dimm_md_get_region_size(const MemoryDeviceState *md,
- Error **errp)
-{
- MemoryDeviceClass *mdc = MEMORY_DEVICE_GET_CLASS(md);
- MemoryRegion *mr;
-
- /* dropping const here is fine as we don't touch the memory region */
- mr = mdc->get_memory_region((MemoryDeviceState *)md, errp);
- if (!mr) {
- return 0;
- }
-
- return memory_region_size(mr);
-}
-
static MemoryRegion *pc_dimm_md_get_memory_region(MemoryDeviceState *md,
Error **errp)
{
@@ -302,8 +287,7 @@ static void pc_dimm_class_init(ObjectClass *oc, void *data)
mdc->get_addr = pc_dimm_md_get_addr;
/* for a dimm plugged_size == region_size */
- mdc->get_plugged_size = pc_dimm_md_get_region_size;
- mdc->get_region_size = pc_dimm_md_get_region_size;
+ mdc->get_plugged_size = memory_device_get_region_size;
mdc->get_memory_region = pc_dimm_md_get_memory_region;
mdc->fill_device_info = pc_dimm_md_fill_device_info;
}
@@ -39,8 +39,6 @@ typedef struct MemoryDeviceState {
* dynamically manage the amount of memory accessible by the guest via
* the reserved memory region. For most devices, this corresponds to the
* size of the memory region.
- * @get_region_size: The size of the memory region of the @md that's mapped
- * in guest physical memory at @get_addr.
* @get_memory_region: The memory region of the @md that's mapped in guest
* physical memory at @get_addr. If a @md is ever composed of multiple
* successive memory regions, a covering memory region is to be used.
@@ -54,7 +52,6 @@ typedef struct MemoryDeviceClass {
/* public */
uint64_t (*get_addr)(const MemoryDeviceState *md);
uint64_t (*get_plugged_size)(const MemoryDeviceState *md, Error **errp);
- uint64_t (*get_region_size)(const MemoryDeviceState *md, Error **errp);
MemoryRegion *(*get_memory_region)(MemoryDeviceState *md, Error **errp);
void (*fill_device_info)(const MemoryDeviceState *md,
MemoryDeviceInfo *info);