Commit 9967c949 authored by Bharata B Rao's avatar Bharata B Rao Committed by Michael S. Tsirkin
Browse files

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: default avatarBharata B Rao <bharata@linux.vnet.ibm.com>
Reviewed-by: default avatarIgor Mammedov <imammedo@redhat.com>
Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
parent 759048ac
Loading
Loading
Loading
Loading
+0 −24
Original line number Diff line number Diff line
@@ -1552,30 +1552,6 @@ void qemu_register_pc_machine(QEMUMachine *m)
    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,
                         DeviceState *dev, Error **errp)
{
+25 −0
Original line number Diff line number Diff line
@@ -22,6 +22,31 @@
#include "qemu/config-file.h"
#include "qapi/visitor.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)
{
+1 −0
Original line number Diff line number Diff line
@@ -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 qmp_pc_dimm_device_list(Object *obj, void *opaque);
int pc_existing_dimms_capacity(Object *obj, void *opaque);
#endif