mirror of https://github.com/xemu-project/xemu.git
pc-dimm: Make pc_existing_dimms_capacity global
Move pc_existing_dimms_capacity() to pc-dimm.c since it would be needed by PowerPC memory hotplug code too. Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
759048ac20
commit
9967c94957
24
hw/i386/pc.c
24
hw/i386/pc.c
|
@ -1552,30 +1552,6 @@ void qemu_register_pc_machine(QEMUMachine *m)
|
||||||
g_free(name);
|
g_free(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pc_existing_dimms_capacity(Object *obj, void *opaque)
|
|
||||||
{
|
|
||||||
Error *local_err = NULL;
|
|
||||||
uint64_t *size = opaque;
|
|
||||||
|
|
||||||
if (object_dynamic_cast(obj, TYPE_PC_DIMM)) {
|
|
||||||
DeviceState *dev = DEVICE(obj);
|
|
||||||
|
|
||||||
if (dev->realized) {
|
|
||||||
(*size) += object_property_get_int(obj, PC_DIMM_SIZE_PROP,
|
|
||||||
&local_err);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (local_err) {
|
|
||||||
qerror_report_err(local_err);
|
|
||||||
error_free(local_err);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
object_child_foreach(obj, pc_existing_dimms_capacity, opaque);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void pc_dimm_plug(HotplugHandler *hotplug_dev,
|
static void pc_dimm_plug(HotplugHandler *hotplug_dev,
|
||||||
DeviceState *dev, Error **errp)
|
DeviceState *dev, Error **errp)
|
||||||
{
|
{
|
||||||
|
|
|
@ -22,6 +22,31 @@
|
||||||
#include "qemu/config-file.h"
|
#include "qemu/config-file.h"
|
||||||
#include "qapi/visitor.h"
|
#include "qapi/visitor.h"
|
||||||
#include "qemu/range.h"
|
#include "qemu/range.h"
|
||||||
|
#include "qapi/qmp/qerror.h"
|
||||||
|
|
||||||
|
int pc_existing_dimms_capacity(Object *obj, void *opaque)
|
||||||
|
{
|
||||||
|
Error *local_err = NULL;
|
||||||
|
uint64_t *size = opaque;
|
||||||
|
|
||||||
|
if (object_dynamic_cast(obj, TYPE_PC_DIMM)) {
|
||||||
|
DeviceState *dev = DEVICE(obj);
|
||||||
|
|
||||||
|
if (dev->realized) {
|
||||||
|
(*size) += object_property_get_int(obj, PC_DIMM_SIZE_PROP,
|
||||||
|
&local_err);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (local_err) {
|
||||||
|
qerror_report_err(local_err);
|
||||||
|
error_free(local_err);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
object_child_foreach(obj, pc_existing_dimms_capacity, opaque);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int qmp_pc_dimm_device_list(Object *obj, void *opaque)
|
int qmp_pc_dimm_device_list(Object *obj, void *opaque)
|
||||||
{
|
{
|
||||||
|
|
|
@ -78,4 +78,5 @@ uint64_t pc_dimm_get_free_addr(uint64_t address_space_start,
|
||||||
int pc_dimm_get_free_slot(const int *hint, int max_slots, Error **errp);
|
int pc_dimm_get_free_slot(const int *hint, int max_slots, Error **errp);
|
||||||
|
|
||||||
int qmp_pc_dimm_device_list(Object *obj, void *opaque);
|
int qmp_pc_dimm_device_list(Object *obj, void *opaque);
|
||||||
|
int pc_existing_dimms_capacity(Object *obj, void *opaque);
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue