Commit 6c1db528 authored by Kevin Wolf's avatar Kevin Wolf
Browse files

qdev-monitor: Factor out find_device_state()



Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
parent 1c89e1fa
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -801,7 +801,7 @@ void qmp_device_add(QDict *qdict, QObject **ret_data, Error **errp)
    object_unref(OBJECT(dev));
}

void qmp_device_del(const char *id, Error **errp)
static DeviceState *find_device_state(const char *id, Error **errp)
{
    Object *obj;

@@ -819,15 +819,23 @@ void qmp_device_del(const char *id, Error **errp)
    if (!obj) {
        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
                  "Device '%s' not found", id);
        return;
        return NULL;
    }

    if (!object_dynamic_cast(obj, TYPE_DEVICE)) {
        error_setg(errp, "%s is not a hotpluggable device", id);
        return;
        return NULL;
    }

    qdev_unplug(DEVICE(obj), errp);
    return DEVICE(obj);
}

void qmp_device_del(const char *id, Error **errp)
{
    DeviceState *dev = find_device_state(id, errp);
    if (dev != NULL) {
        qdev_unplug(dev, errp);
    }
}

void qdev_machine_init(void)