From: elena.ufimtseva@oracle.com
To: qemu-devel@nongnu.org
Cc: elena.ufimtseva@oracle.com, fam@euphon.net,
swapnil.ingle@nutanix.com, john.g.johnson@oracle.com,
kraxel@redhat.com, jag.raman@oracle.com, quintela@redhat.com,
mst@redhat.com, armbru@redhat.com, kanth.ghatraju@oracle.com,
felipe@nutanix.com, thuth@redhat.com, ehabkost@redhat.com,
konrad.wilk@oracle.com, dgilbert@redhat.com,
liran.alon@oracle.com, stefanha@redhat.com,
thanos.makatos@nutanix.com, rth@twiddle.net, kwolf@redhat.com,
berrange@redhat.com, mreitz@redhat.com,
ross.lagerwall@citrix.com, marcandre.lureau@gmail.com,
pbonzini@redhat.com
Subject: [PATCH RESEND v6 05/36] multi-process: Refactor monitor functions out of vl.c
Date: Wed, 22 Apr 2020 21:13:40 -0700 [thread overview]
Message-ID: <22a91b836f4105dc314f24536e96f883c0ad638c.1587614626.git.elena.ufimtseva@oracle.com> (raw)
In-Reply-To: <cover.1587614626.git.elena.ufimtseva@oracle.com>
From: Elena Ufimtseva <elena.ufimtseva@oracle.com>
Some of the initialization helper functions w.r.t monitor
in vl.c are also used by the remote process. Therefore, these functions
are refactored into shared files that both QEMU & remote process
could use.
Signed-off-by: Elena Ufimtseva <elena.ufimtseva@oracle.com>
Signed-off-by: John G Johnson <john.g.johnson@oracle.com>
Signed-off-by: Jagannathan Raman <jag.raman@oracle.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
include/monitor/monitor.h | 3 +++
monitor/monitor.c | 37 +++++++++++++++++++++++++++++++++++++
softmmu/vl.c | 35 -----------------------------------
3 files changed, 40 insertions(+), 35 deletions(-)
diff --git a/include/monitor/monitor.h b/include/monitor/monitor.h
index 1018d754a6..3803e904f2 100644
--- a/include/monitor/monitor.h
+++ b/include/monitor/monitor.h
@@ -48,4 +48,7 @@ int monitor_fdset_dup_fd_add(int64_t fdset_id, int dup_fd);
void monitor_fdset_dup_fd_remove(int dup_fd);
int64_t monitor_fdset_dup_fd_find(int dup_fd);
+int mon_init_func(void *opaque, QemuOpts *opts, Error **errp);
+void monitor_parse(const char *optarg, const char *mode, bool pretty);
+
#endif /* MONITOR_H */
diff --git a/monitor/monitor.c b/monitor/monitor.c
index 125494410a..88423b38b6 100644
--- a/monitor/monitor.c
+++ b/monitor/monitor.c
@@ -35,6 +35,8 @@
#include "sysemu/qtest.h"
#include "sysemu/sysemu.h"
#include "trace.h"
+#include "qemu/cutils.h"
+#include "qemu/config-file.h"
/*
* To prevent flooding clients, events can be throttled. The
@@ -611,6 +613,41 @@ void monitor_init_globals_core(void)
NULL);
}
+int mon_init_func(void *opaque, QemuOpts *opts, Error **errp)
+{
+ return monitor_init_opts(opts, errp);
+}
+
+void monitor_parse(const char *optarg, const char *mode, bool pretty)
+{
+ static int monitor_device_index;
+ QemuOpts *opts;
+ const char *p;
+ char label[32];
+
+ if (strstart(optarg, "chardev:", &p)) {
+ snprintf(label, sizeof(label), "%s", p);
+ } else {
+ snprintf(label, sizeof(label), "compat_monitor%d",
+ monitor_device_index);
+ opts = qemu_chr_parse_compat(label, optarg, true);
+ if (!opts) {
+ error_report("parse error: %s", optarg);
+ exit(1);
+ }
+ }
+
+ opts = qemu_opts_create(qemu_find_opts("mon"), label, 1, &error_fatal);
+ qemu_opt_set(opts, "mode", mode, &error_abort);
+ qemu_opt_set(opts, "chardev", label, &error_abort);
+ if (!strcmp(mode, "control")) {
+ qemu_opt_set_bool(opts, "pretty", pretty, &error_abort);
+ } else {
+ assert(pretty == false);
+ }
+ monitor_device_index++;
+}
+
int monitor_init(MonitorOptions *opts, bool allow_hmp, Error **errp)
{
Chardev *chr;
diff --git a/softmmu/vl.c b/softmmu/vl.c
index 6e35f3787d..abc746c1b5 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -2045,41 +2045,6 @@ static int fsdev_init_func(void *opaque, QemuOpts *opts, Error **errp)
}
#endif
-static int mon_init_func(void *opaque, QemuOpts *opts, Error **errp)
-{
- return monitor_init_opts(opts, errp);
-}
-
-static void monitor_parse(const char *optarg, const char *mode, bool pretty)
-{
- static int monitor_device_index = 0;
- QemuOpts *opts;
- const char *p;
- char label[32];
-
- if (strstart(optarg, "chardev:", &p)) {
- snprintf(label, sizeof(label), "%s", p);
- } else {
- snprintf(label, sizeof(label), "compat_monitor%d",
- monitor_device_index);
- opts = qemu_chr_parse_compat(label, optarg, true);
- if (!opts) {
- error_report("parse error: %s", optarg);
- exit(1);
- }
- }
-
- opts = qemu_opts_create(qemu_find_opts("mon"), label, 1, &error_fatal);
- qemu_opt_set(opts, "mode", mode, &error_abort);
- qemu_opt_set(opts, "chardev", label, &error_abort);
- if (!strcmp(mode, "control")) {
- qemu_opt_set_bool(opts, "pretty", pretty, &error_abort);
- } else {
- assert(pretty == false);
- }
- monitor_device_index++;
-}
-
struct device_config {
enum {
DEV_USB, /* -usbdevice */
--
2.25.GIT
next prev parent reply other threads:[~2020-04-23 4:18 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-23 4:13 [PATCH RESEND v6 00/36] Initial support for multi-process qemu elena.ufimtseva
2020-04-23 4:13 ` [PATCH RESEND v6 01/36] memory: alloc RAM from file at offset elena.ufimtseva
2020-05-12 8:26 ` Stefan Hajnoczi
2020-05-12 8:48 ` Daniel P. Berrangé
2020-05-12 11:56 ` Jag Raman
2020-05-13 8:40 ` Stefan Hajnoczi
2020-05-13 15:25 ` Igor Mammedov
2020-05-13 20:08 ` Jag Raman
2020-05-14 9:47 ` Igor Mammedov
2020-05-14 9:51 ` Dr. David Alan Gilbert
2020-04-23 4:13 ` [PATCH RESEND v6 02/36] multi-process: Refactor machine_init and exit notifiers elena.ufimtseva
2020-04-23 14:13 ` Philippe Mathieu-Daudé
2020-04-23 4:13 ` [PATCH RESEND v6 03/36] command-line: refractor parser code elena.ufimtseva
2020-04-24 12:55 ` Stefan Hajnoczi
2020-04-23 4:13 ` [PATCH RESEND v6 04/36] multi-process: Refactor chardev functions out of vl.c elena.ufimtseva
2020-04-23 4:13 ` elena.ufimtseva [this message]
2020-04-24 13:02 ` [PATCH RESEND v6 05/36] multi-process: Refactor monitor " Stefan Hajnoczi
2020-04-23 4:13 ` [PATCH RESEND v6 06/36] monitor: destaticize HMP commands elena.ufimtseva
2020-04-23 14:14 ` Philippe Mathieu-Daudé
2020-04-23 15:07 ` Jag Raman
2020-04-23 15:58 ` Philippe Mathieu-Daudé
2020-04-23 4:13 ` [PATCH RESEND v6 07/36] multi-process: add a command line option for debug file elena.ufimtseva
2020-04-23 4:13 ` [PATCH RESEND v6 08/36] multi-process: Add stub functions to facilitate build of multi-process elena.ufimtseva
2020-04-24 13:12 ` Stefan Hajnoczi
2020-04-24 13:47 ` Jag Raman
2020-04-28 16:29 ` Stefan Hajnoczi
2020-04-28 18:58 ` Jag Raman
2020-04-29 9:41 ` Stefan Hajnoczi
2020-04-23 4:13 ` [PATCH RESEND v6 09/36] multi-process: Add config option for multi-process QEMU elena.ufimtseva
2020-04-24 13:47 ` Stefan Hajnoczi
2020-04-23 4:13 ` [PATCH RESEND v6 10/36] multi-process: build system for remote device process elena.ufimtseva
2020-04-24 15:04 ` Stefan Hajnoczi
2020-04-23 4:13 ` [PATCH RESEND v6 11/36] multi-process: define mpqemu-link object elena.ufimtseva
2020-05-12 8:56 ` Stefan Hajnoczi
2020-05-12 12:09 ` Jag Raman
2020-04-23 4:13 ` [PATCH RESEND v6 12/36] multi-process: add functions to synchronize proxy and remote endpoints elena.ufimtseva
2020-05-12 10:21 ` Stefan Hajnoczi
2020-05-12 12:28 ` Jag Raman
2020-05-13 8:43 ` Stefan Hajnoczi
2020-04-23 4:13 ` [PATCH RESEND v6 13/36] multi-process: setup PCI host bridge for remote device elena.ufimtseva
2020-05-12 10:31 ` Stefan Hajnoczi
2020-04-23 4:13 ` [PATCH RESEND v6 14/36] multi-process: setup a machine object for remote device process elena.ufimtseva
2020-05-12 10:43 ` Stefan Hajnoczi
2020-05-12 12:12 ` Jag Raman
2020-04-23 4:13 ` [PATCH RESEND v6 15/36] multi-process: setup memory manager for remote device elena.ufimtseva
2020-05-12 12:11 ` Stefan Hajnoczi
2020-04-23 4:13 ` [PATCH RESEND v6 16/36] multi-process: remote process initialization elena.ufimtseva
2020-04-23 4:13 ` [PATCH RESEND v6 17/36] multi-process: introduce proxy object elena.ufimtseva
2020-05-12 12:23 ` Stefan Hajnoczi
2020-05-12 12:35 ` Jag Raman
2020-04-23 4:13 ` [PATCH RESEND v6 18/36] multi-process: Initialize Proxy Object's communication channel elena.ufimtseva
2020-05-12 12:35 ` Stefan Hajnoczi
2020-04-23 4:13 ` [PATCH RESEND v6 19/36] multi-process: Connect Proxy Object with device in the remote process elena.ufimtseva
2020-05-12 12:54 ` Stefan Hajnoczi
2020-04-23 4:13 ` [PATCH RESEND v6 20/36] multi-process: Forward PCI config space acceses to " elena.ufimtseva
2020-05-12 13:50 ` Stefan Hajnoczi
2020-04-23 4:13 ` [PATCH RESEND v6 21/36] multi-process: PCI BAR read/write handling for proxy & remote endpoints elena.ufimtseva
2020-05-12 14:19 ` Stefan Hajnoczi
2020-04-23 4:13 ` [PATCH RESEND v6 22/36] multi-process: Synchronize remote memory elena.ufimtseva
2020-05-12 15:07 ` Stefan Hajnoczi
2020-05-12 15:49 ` Dr. David Alan Gilbert
2020-04-23 4:13 ` [PATCH RESEND v6 23/36] multi-process: create IOHUB object to handle irq elena.ufimtseva
2020-05-12 15:57 ` Stefan Hajnoczi
2020-05-12 16:12 ` Stefan Hajnoczi
2020-04-23 4:13 ` [PATCH RESEND v6 24/36] multi-process: Retrieve PCI info from remote process elena.ufimtseva
2020-05-12 16:07 ` Stefan Hajnoczi
2020-04-23 4:14 ` [PATCH RESEND v6 25/36] multi-process: Introduce build flags to separate remote process code elena.ufimtseva
2020-04-23 4:14 ` [PATCH RESEND v6 26/36] multi-process: add parse_cmdline in remote process elena.ufimtseva
2020-04-23 4:14 ` [PATCH RESEND v6 27/36] multi-process: add support to parse device option elena.ufimtseva
2020-04-23 4:14 ` [PATCH RESEND v6 28/36] multi-process: send heartbeat messages to remote elena.ufimtseva
2020-04-23 4:14 ` [PATCH RESEND v6 29/36] multi-process: handle heartbeat messages in remote process elena.ufimtseva
2020-04-23 4:14 ` [PATCH RESEND v6 30/36] multi-process: perform device reset in the " elena.ufimtseva
2020-04-23 4:14 ` [PATCH RESEND v6 31/36] multi-process/mon: choose HMP commands based on target elena.ufimtseva
2020-04-23 4:14 ` [PATCH RESEND v6 32/36] multi-process/mon: stub functions to enable QMP module for remote process elena.ufimtseva
2020-04-23 4:14 ` [PATCH RESEND v6 33/36] multi-process/mon: enable QMP module support in the " elena.ufimtseva
2020-04-23 4:14 ` [PATCH RESEND v6 34/36] multi-process/mon: Initialize QMP module for remote processes elena.ufimtseva
2020-04-23 4:14 ` [PATCH RESEND v6 35/36] multi-process: add the concept description to docs/devel/qemu-multiprocess elena.ufimtseva
2020-04-23 4:14 ` [PATCH RESEND v6 36/36] multi-process: add configure and usage information elena.ufimtseva
2020-04-23 13:54 ` 罗勇刚(Yonggang Luo)
2020-04-23 15:01 ` Jag Raman
2020-04-23 22:56 ` 罗勇刚(Yonggang Luo)
2020-04-24 0:34 ` 罗勇刚(Yonggang Luo)
2020-04-24 12:48 ` [PATCH RESEND v6 00/36] Initial support for multi-process qemu Stefan Hajnoczi
2020-04-24 12:53 ` Daniel P. Berrangé
2020-04-24 12:53 ` Eric Blake
2020-04-24 13:42 ` Max Reitz
2020-04-28 17:29 ` Stefan Hajnoczi
2020-04-28 17:47 ` Michael S. Tsirkin
2020-04-29 9:30 ` Stefan Hajnoczi
2020-04-29 9:59 ` Michael S. Tsirkin
2020-05-11 14:40 ` Stefan Hajnoczi
2020-05-11 19:30 ` Jag Raman
2020-05-12 16:13 ` Stefan Hajnoczi
2020-05-12 16:55 ` Jag Raman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=22a91b836f4105dc314f24536e96f883c0ad638c.1587614626.git.elena.ufimtseva@oracle.com \
--to=elena.ufimtseva@oracle.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=dgilbert@redhat.com \
--cc=ehabkost@redhat.com \
--cc=fam@euphon.net \
--cc=felipe@nutanix.com \
--cc=jag.raman@oracle.com \
--cc=john.g.johnson@oracle.com \
--cc=kanth.ghatraju@oracle.com \
--cc=konrad.wilk@oracle.com \
--cc=kraxel@redhat.com \
--cc=kwolf@redhat.com \
--cc=liran.alon@oracle.com \
--cc=marcandre.lureau@gmail.com \
--cc=mreitz@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=ross.lagerwall@citrix.com \
--cc=rth@twiddle.net \
--cc=stefanha@redhat.com \
--cc=swapnil.ingle@nutanix.com \
--cc=thanos.makatos@nutanix.com \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).