[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 25/32] qdev: Move HMP command completion from monitor to softmmu/
From: |
Markus Armbruster |
Subject: |
[PATCH 25/32] qdev: Move HMP command completion from monitor to softmmu/ |
Date: |
Tue, 24 Jan 2023 13:19:39 +0100 |
This moves the completion code from MAINTAINERS sections "Human
Monitor (HMP)" and "QMP" to section "QOM".
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
monitor/misc.c | 82 ------------------------------------------
softmmu/qdev-monitor.c | 82 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 82 insertions(+), 82 deletions(-)
diff --git a/monitor/misc.c b/monitor/misc.c
index a2584df0ca..c76d583b4f 100644
--- a/monitor/misc.c
+++ b/monitor/misc.c
@@ -1206,88 +1206,6 @@ int get_monitor_def(Monitor *mon, int64_t *pval, const
char *name)
return ret;
}
-void device_add_completion(ReadLineState *rs, int nb_args, const char *str)
-{
- GSList *list, *elt;
- size_t len;
-
- if (nb_args != 2) {
- return;
- }
-
- len = strlen(str);
- readline_set_completion_index(rs, len);
- list = elt = object_class_get_list(TYPE_DEVICE, false);
- while (elt) {
- DeviceClass *dc = OBJECT_CLASS_CHECK(DeviceClass, elt->data,
- TYPE_DEVICE);
-
- if (dc->user_creatable) {
- readline_add_completion_of(rs, str,
- object_class_get_name(OBJECT_CLASS(dc)));
- }
- elt = elt->next;
- }
- g_slist_free(list);
-}
-
-static int qdev_add_hotpluggable_device(Object *obj, void *opaque)
-{
- GSList **list = opaque;
- DeviceState *dev = (DeviceState *)object_dynamic_cast(obj, TYPE_DEVICE);
-
- if (dev == NULL) {
- return 0;
- }
-
- if (dev->realized && object_property_get_bool(obj, "hotpluggable", NULL)) {
- *list = g_slist_append(*list, dev);
- }
-
- return 0;
-}
-
-static GSList *qdev_build_hotpluggable_device_list(Object *peripheral)
-{
- GSList *list = NULL;
-
- object_child_foreach(peripheral, qdev_add_hotpluggable_device, &list);
-
- return list;
-}
-
-static void peripheral_device_del_completion(ReadLineState *rs,
- const char *str)
-{
- Object *peripheral = container_get(qdev_get_machine(), "/peripheral");
- GSList *list, *item;
-
- list = qdev_build_hotpluggable_device_list(peripheral);
- if (!list) {
- return;
- }
-
- for (item = list; item; item = g_slist_next(item)) {
- DeviceState *dev = item->data;
-
- if (dev->id) {
- readline_add_completion_of(rs, str, dev->id);
- }
- }
-
- g_slist_free(list);
-}
-
-void device_del_completion(ReadLineState *rs, int nb_args, const char *str)
-{
- if (nb_args != 2) {
- return;
- }
-
- readline_set_completion_index(rs, strlen(str));
- peripheral_device_del_completion(rs, str);
-}
-
static int
compare_mon_cmd(const void *a, const void *b)
{
diff --git a/softmmu/qdev-monitor.c b/softmmu/qdev-monitor.c
index 4b0ef65780..b8d2c4dadd 100644
--- a/softmmu/qdev-monitor.c
+++ b/softmmu/qdev-monitor.c
@@ -973,6 +973,88 @@ void hmp_device_del(Monitor *mon, const QDict *qdict)
hmp_handle_error(mon, err);
}
+void device_add_completion(ReadLineState *rs, int nb_args, const char *str)
+{
+ GSList *list, *elt;
+ size_t len;
+
+ if (nb_args != 2) {
+ return;
+ }
+
+ len = strlen(str);
+ readline_set_completion_index(rs, len);
+ list = elt = object_class_get_list(TYPE_DEVICE, false);
+ while (elt) {
+ DeviceClass *dc = OBJECT_CLASS_CHECK(DeviceClass, elt->data,
+ TYPE_DEVICE);
+
+ if (dc->user_creatable) {
+ readline_add_completion_of(rs, str,
+ object_class_get_name(OBJECT_CLASS(dc)));
+ }
+ elt = elt->next;
+ }
+ g_slist_free(list);
+}
+
+static int qdev_add_hotpluggable_device(Object *obj, void *opaque)
+{
+ GSList **list = opaque;
+ DeviceState *dev = (DeviceState *)object_dynamic_cast(obj, TYPE_DEVICE);
+
+ if (dev == NULL) {
+ return 0;
+ }
+
+ if (dev->realized && object_property_get_bool(obj, "hotpluggable", NULL)) {
+ *list = g_slist_append(*list, dev);
+ }
+
+ return 0;
+}
+
+static GSList *qdev_build_hotpluggable_device_list(Object *peripheral)
+{
+ GSList *list = NULL;
+
+ object_child_foreach(peripheral, qdev_add_hotpluggable_device, &list);
+
+ return list;
+}
+
+static void peripheral_device_del_completion(ReadLineState *rs,
+ const char *str)
+{
+ Object *peripheral = container_get(qdev_get_machine(), "/peripheral");
+ GSList *list, *item;
+
+ list = qdev_build_hotpluggable_device_list(peripheral);
+ if (!list) {
+ return;
+ }
+
+ for (item = list; item; item = g_slist_next(item)) {
+ DeviceState *dev = item->data;
+
+ if (dev->id) {
+ readline_add_completion_of(rs, str, dev->id);
+ }
+ }
+
+ g_slist_free(list);
+}
+
+void device_del_completion(ReadLineState *rs, int nb_args, const char *str)
+{
+ if (nb_args != 2) {
+ return;
+ }
+
+ readline_set_completion_index(rs, strlen(str));
+ peripheral_device_del_completion(rs, str);
+}
+
BlockBackend *blk_by_qdev_id(const char *id, Error **errp)
{
DeviceState *dev;
--
2.39.0
- [PATCH 15/32] net: Move HMP commands from monitor to net/, (continued)
- [PATCH 15/32] net: Move HMP commands from monitor to net/, Markus Armbruster, 2023/01/24
- [PATCH 27/32] monitor: Move monitor_putc() next to monitor_puts & external linkage, Markus Armbruster, 2023/01/24
- [PATCH 32/32] monitor: Rename misc.c to hmp-target.c, Markus Armbruster, 2023/01/24
- [PATCH 09/32] machine: Move QMP commands from monitor/ to hw/core/, Markus Armbruster, 2023/01/24
- [PATCH 12/32] block: Factor out hmp_change_medium(), and move to block/monitor/, Markus Armbruster, 2023/01/24
- [PATCH 22/32] stats: Move QMP commands from monitor/ to stats/, Markus Armbruster, 2023/01/24
- [PATCH 31/32] monitor: Loosen coupling between misc.c and monitor.c slightly, Markus Armbruster, 2023/01/24
- [PATCH 30/32] monitor: Move remaining QMP stuff from misc.c to qmp-cmds.c, Markus Armbruster, 2023/01/24
- [PATCH 16/32] net: Move hmp_info_network() to net-hmp-cmds.c, Markus Armbruster, 2023/01/24
- [PATCH 28/32] monitor: Move target-dependent HMP commands to hmp-cmds-target.c, Markus Armbruster, 2023/01/24
- [PATCH 25/32] qdev: Move HMP command completion from monitor to softmmu/,
Markus Armbruster <=
- [PATCH 04/32] char: Factor out qmp_add_client() parts and move to chardev/, Markus Armbruster, 2023/01/24
- [PATCH 18/32] migration: Move the QMP command from monitor/ to migration/, Markus Armbruster, 2023/01/24
- [PATCH 24/32] acpi: Move the QMP command from monitor/ to hw/acpi/, Markus Armbruster, 2023/01/24
- [PATCH 21/32] runstate: Move HMP commands from monitor/ to softmmu/, Markus Armbruster, 2023/01/24
- [PATCH 17/32] migration: Move HMP commands from monitor/ to migration/, Markus Armbruster, 2023/01/24
- [PATCH 10/32] machine: Move HMP commands from monitor/ to hw/core/, Markus Armbruster, 2023/01/24
- [PATCH 26/32] monitor: Split file descriptor passing stuff off misc.c, Markus Armbruster, 2023/01/24
- [PATCH 29/32] monitor: Move remaining HMP commands from misc.c to hmp-cmds.c, Markus Armbruster, 2023/01/24
- [PATCH 19/32] virtio: Move HMP commands from monitor/ to hw/virtio/, Markus Armbruster, 2023/01/24