[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 07/18] qom: Move HMP command handlers to qom/
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PULL 07/18] qom: Move HMP command handlers to qom/ |
Date: |
Tue, 2 Jul 2019 12:47:05 +0200 |
Move the HMP command handlers related to QOM handlers from
monitor/hmp-cmds.c and qdev-monitor.c to new qom/qom-hmp-cmds.c, where
they are covered by MAINTAINERS section QOM.
Cc: Paolo Bonzini <address@hidden>
Cc: "Daniel P. Berrange" <address@hidden>
Cc: Eduardo Habkost <address@hidden>
Cc: "Dr. David Alan Gilbert" <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
[Also move hmp_info_qom_tree(), tweak commit message accordingly]
---
include/monitor/hmp.h | 2 ++
monitor/hmp-cmds.c | 50 +---------------------------------
qom/Makefile.objs | 2 +-
qom/qom-hmp-cmds.c | 62 +++++++++++++++++++++++++++++++++++++++++++
4 files changed, 66 insertions(+), 50 deletions(-)
create mode 100644 qom/qom-hmp-cmds.c
diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h
index 1d095d5837..f46ccdaa35 100644
--- a/include/monitor/hmp.h
+++ b/include/monitor/hmp.h
@@ -16,6 +16,8 @@
#include "qemu/readline.h"
+void hmp_handle_error(Monitor *mon, Error **errp);
+
void hmp_info_name(Monitor *mon, const QDict *qdict);
void hmp_info_version(Monitor *mon, const QDict *qdict);
void hmp_info_kvm(Monitor *mon, const QDict *qdict);
diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
index d94ab7563e..5641036dc3 100644
--- a/monitor/hmp-cmds.c
+++ b/monitor/hmp-cmds.c
@@ -60,7 +60,7 @@
#include <spice/enums.h>
#endif
-static void hmp_handle_error(Monitor *mon, Error **errp)
+void hmp_handle_error(Monitor *mon, Error **errp)
{
assert(errp);
if (*errp) {
@@ -2714,54 +2714,6 @@ void hmp_info_iothreads(Monitor *mon, const QDict *qdict)
qapi_free_IOThreadInfoList(info_list);
}
-void hmp_qom_list(Monitor *mon, const QDict *qdict)
-{
- const char *path = qdict_get_try_str(qdict, "path");
- ObjectPropertyInfoList *list;
- Error *err = NULL;
-
- if (path == NULL) {
- monitor_printf(mon, "/\n");
- return;
- }
-
- list = qmp_qom_list(path, &err);
- if (err == NULL) {
- ObjectPropertyInfoList *start = list;
- while (list != NULL) {
- ObjectPropertyInfo *value = list->value;
-
- monitor_printf(mon, "%s (%s)\n",
- value->name, value->type);
- list = list->next;
- }
- qapi_free_ObjectPropertyInfoList(start);
- }
- hmp_handle_error(mon, &err);
-}
-
-void hmp_qom_set(Monitor *mon, const QDict *qdict)
-{
- const char *path = qdict_get_str(qdict, "path");
- const char *property = qdict_get_str(qdict, "property");
- const char *value = qdict_get_str(qdict, "value");
- Error *err = NULL;
- bool ambiguous = false;
- Object *obj;
-
- obj = object_resolve_path(path, &ambiguous);
- if (obj == NULL) {
- error_set(&err, ERROR_CLASS_DEVICE_NOT_FOUND,
- "Device '%s' not found", path);
- } else {
- if (ambiguous) {
- monitor_printf(mon, "Warning: Path '%s' is ambiguous\n", path);
- }
- object_property_parse(obj, value, property, &err);
- }
- hmp_handle_error(mon, &err);
-}
-
void hmp_rocker(Monitor *mon, const QDict *qdict)
{
const char *name = qdict_get_str(qdict, "name");
diff --git a/qom/Makefile.objs b/qom/Makefile.objs
index 5fb43b842c..aae478fc21 100644
--- a/qom/Makefile.objs
+++ b/qom/Makefile.objs
@@ -2,4 +2,4 @@ qom-obj-y = object.o container.o qom-qobject.o
qom-obj-y += object_interfaces.o
common-obj-y = cpu.o
-common-obj-$(CONFIG_SOFTMMU) += qom-qmp-cmds.o
+common-obj-$(CONFIG_SOFTMMU) += qom-hmp-cmds.o qom-qmp-cmds.o
diff --git a/qom/qom-hmp-cmds.c b/qom/qom-hmp-cmds.c
new file mode 100644
index 0000000000..2028a21052
--- /dev/null
+++ b/qom/qom-hmp-cmds.c
@@ -0,0 +1,62 @@
+/*
+ * HMP commands related to QOM
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or
+ * later. See the COPYING file in the top-level directory.
+ */
+
+#include "qemu/osdep.h"
+#include "monitor/hmp.h"
+#include "qapi/qapi-commands-qom.h"
+#include "qapi/qmp/qdict.h"
+#include "monitor/monitor.h"
+#include "qom/object.h"
+#include "qapi/error.h"
+
+void hmp_qom_list(Monitor *mon, const QDict *qdict)
+{
+ const char *path = qdict_get_try_str(qdict, "path");
+ ObjectPropertyInfoList *list;
+ Error *err = NULL;
+
+ if (path == NULL) {
+ monitor_printf(mon, "/\n");
+ return;
+ }
+
+ list = qmp_qom_list(path, &err);
+ if (err == NULL) {
+ ObjectPropertyInfoList *start = list;
+ while (list != NULL) {
+ ObjectPropertyInfo *value = list->value;
+
+ monitor_printf(mon, "%s (%s)\n",
+ value->name, value->type);
+ list = list->next;
+ }
+ qapi_free_ObjectPropertyInfoList(start);
+ }
+ hmp_handle_error(mon, &err);
+}
+
+void hmp_qom_set(Monitor *mon, const QDict *qdict)
+{
+ const char *path = qdict_get_str(qdict, "path");
+ const char *property = qdict_get_str(qdict, "property");
+ const char *value = qdict_get_str(qdict, "value");
+ Error *err = NULL;
+ bool ambiguous = false;
+ Object *obj;
+
+ obj = object_resolve_path(path, &ambiguous);
+ if (obj == NULL) {
+ error_set(&err, ERROR_CLASS_DEVICE_NOT_FOUND,
+ "Device '%s' not found", path);
+ } else {
+ if (ambiguous) {
+ monitor_printf(mon, "Warning: Path '%s' is ambiguous\n", path);
+ }
+ object_property_parse(obj, value, property, &err);
+ }
+ hmp_handle_error(mon, &err);
+}
--
2.21.0
- [Qemu-devel] [PULL 02/18] MAINTAINERS: Make section "QOM" cover qdev as well, (continued)
- [Qemu-devel] [PULL 02/18] MAINTAINERS: Make section "QOM" cover qdev as well, Markus Armbruster, 2019/07/02
- [Qemu-devel] [PULL 04/18] hmp: Move hmp.h to include/monitor/, Markus Armbruster, 2019/07/02
- [Qemu-devel] [PULL 01/18] MAINTAINERS: new maintainers for QOM, Markus Armbruster, 2019/07/02
- [Qemu-devel] [PULL 06/18] qom: Move QMP command handlers to qom/, Markus Armbruster, 2019/07/02
- [Qemu-devel] [PULL 17/18] MAINTAINERS: Add Windows dump to section "Dump", Markus Armbruster, 2019/07/02
- [Qemu-devel] [PULL 14/18] qapi: Rename target.json to misc-target.json, Markus Armbruster, 2019/07/02
- [Qemu-devel] [PULL 13/18] qapi: Split machine-target.json off target.json and misc.json, Markus Armbruster, 2019/07/02
- [Qemu-devel] [PULL 10/18] hw/core: Move numa.c to hw/core/, Markus Armbruster, 2019/07/02
- [Qemu-devel] [PULL 16/18] dump: Move the code to dump/, Markus Armbruster, 2019/07/02
- [Qemu-devel] [PULL 03/18] Makefile: Don't add monitor/ twice to common-obj-y, Markus Armbruster, 2019/07/02
- [Qemu-devel] [PULL 07/18] qom: Move HMP command handlers to qom/,
Markus Armbruster <=
- [Qemu-devel] [PULL 12/18] hw/core: Collect HMP command handlers in hw/core/, Markus Armbruster, 2019/07/02
- [Qemu-devel] [PULL 08/18] MAINTAINERS: Merge sections CPU, NUMA into Machine core, Markus Armbruster, 2019/07/02
- [Qemu-devel] [PULL 15/18] qapi: Split dump.json off misc.json, Markus Armbruster, 2019/07/02
- [Qemu-devel] [PULL 11/18] hw/core: Collect QMP command handlers in hw/core/, Markus Armbruster, 2019/07/02
- [Qemu-devel] [PULL 05/18] qapi: Split qom.json and qdev.json off misc.json, Markus Armbruster, 2019/07/02
- [Qemu-devel] [PULL 09/18] qapi: Split machine.json off misc.json, Markus Armbruster, 2019/07/02
- [Qemu-devel] [PULL 18/18] dump: Move HMP command handlers to dump/, Markus Armbruster, 2019/07/02
- Re: [Qemu-devel] [PULL 00/18] Monitor patches for 2019-07-02, no-reply, 2019/07/02
- Re: [Qemu-devel] [PULL 00/18] Monitor patches for 2019-07-02, no-reply, 2019/07/02