[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v6 33/36] multi-process/mon: enable QMP module support in the rem
From: |
elena . ufimtseva |
Subject: |
[PATCH v6 33/36] multi-process/mon: enable QMP module support in the remote process |
Date: |
Mon, 6 Apr 2020 02:41:23 -0700 |
From: Elena Ufimtseva <address@hidden>
Build system changes to enable QMP module in the remote process
Signed-off-by: Elena Ufimtseva <address@hidden>
Signed-off-by: John G Johnson <address@hidden>
Signed-off-by: Jagannathan Raman <address@hidden>
---
Makefile.objs | 10 ++++++++++
Makefile.target | 35 +++++++++++++++++++++++++++++++++--
block/Makefile.objs | 3 +++
block/monitor/Makefile.objs | 2 ++
hmp-commands.hx | 1 +
hw/core/Makefile.objs | 1 +
monitor/Makefile.objs | 4 ++++
monitor/misc.c | 8 ++++++++
qapi/Makefile.objs | 2 ++
qom/Makefile.objs | 1 +
stubs/monitor.c | 1 +
ui/Makefile.objs | 2 ++
12 files changed, 68 insertions(+), 2 deletions(-)
diff --git a/Makefile.objs b/Makefile.objs
index ff3f06b146..cdb55b2f82 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -32,6 +32,7 @@ remote-pci-obj-$(CONFIG_MPQEMU) += migration/
remote-pci-obj-$(CONFIG_MPQEMU) += remote/
remote-pci-obj-$(CONFIG_MPQEMU) += accel/
remote-pci-obj-$(CONFIG_MPQEMU) += util/
+remote-pci-obj-$(CONFIG_MPQEMU) += monitor/
remote-pci-obj-$(CONFIG_MPQEMU) += cpus-common.o
remote-pci-obj-$(CONFIG_MPQEMU) += dma-helpers.o
@@ -45,6 +46,10 @@ remote-pci-obj-$(CONFIG_MPQEMU) += qemu-parse.o
# remote-lsi-obj-y is code used to implement remote LSI device
remote-lsi-obj-$(CONFIG_MPQEMU) += hw/
+remote-lsi-obj-$(CONFIG_MPQEMU) += ui/
+remote-lsi-obj-$(CONFIG_MPQEMU) += block/
+
+#remote-lsi-obj-$(CONFIG_MPQEMU) += device-hotplug.o
#######################################################################
# crypto-obj-y is code used by both qemu system emulation and qemu-img
@@ -113,6 +118,11 @@ common-obj-y += util/machine-notify.o
endif # CONFIG_SOFTMMU
+remote-pci-obj-$(CONFIG_MPQEMU) += qapi/
+remote-pci-obj-$(CONFIG_MPQEMU) += blockdev-nbd.o
+remote-pci-obj-$(CONFIG_MPQEMU) += job-qmp.o
+remote-pci-obj-$(CONFIG_MPQEMU) += balloon.o
+
#######################################################################
# Target-independent parts used in system and user emulation
common-obj-y += cpus-common.o
diff --git a/Makefile.target b/Makefile.target
index adc76886f8..1e9e102df8 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -142,13 +142,32 @@ remote-pci-tgt-obj-$(CONFIG_MPQEMU) +=
accel/stubs/hax-stub.o
remote-pci-tgt-obj-$(CONFIG_MPQEMU) += accel/stubs/whpx-stub.o
remote-pci-tgt-obj-$(CONFIG_MPQEMU) += stubs/vl-stub.o
remote-pci-tgt-obj-$(CONFIG_MPQEMU) += stubs/net-stub.o
-remote-pci-tgt-obj-$(CONFIG_MPQEMU) += stubs/monitor.o
remote-pci-tgt-obj-$(CONFIG_MPQEMU) += stubs/replay.o
remote-pci-tgt-obj-$(CONFIG_MPQEMU) += stubs/xen-mapcache.o
remote-pci-tgt-obj-$(CONFIG_MPQEMU) += stubs/audio.o
remote-pci-tgt-obj-$(CONFIG_MPQEMU) += stubs/monitor.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += stubs/migration.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += stubs/ui-stub.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += stubs/gdbstub.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += stubs/qapi-target.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += stubs/qapi-misc.o
remote-pci-tgt-obj-$(CONFIG_MPQEMU) += remote/memory.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += arch_init.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += monitor/misc.o
+
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += qapi/qapi-introspect.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += qapi/qapi-commands-block-core.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += qapi/qapi-commands-block.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += qapi/qapi-commands-misc.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += qapi/qapi-commands.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += qapi/qapi-commands-machine-target.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += qapi/qapi-commands-misc-target.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += qapi/qapi-visit-machine-target.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += qapi/qapi-visit-misc-target.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += qapi/qapi-types-machine-target.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += qapi/qapi-types-misc-target.o
+remote-pci-tgt-obj-$(CONFIG_MPQEMU) += qapi/qapi-init-commands.o
endif
#########################################################
@@ -204,6 +223,10 @@ endif
generated-files-y += hmp-commands.h hmp-commands-info.h
generated-files-y += config-devices.h
+ifdef CONFIG_MPQEMU
+generated-files-y += hmp-scsi-commands.h hmp-scsi-commands-info.h
+endif
+
endif # CONFIG_SOFTMMU
dummy := $(call unnest-vars,,obj-y)
@@ -289,10 +312,18 @@ hmp-commands.h: $(SRC_PATH)/hmp-commands.hx
$(SRC_PATH)/scripts/hxtool
hmp-commands-info.h: $(SRC_PATH)/hmp-commands-info.hx
$(SRC_PATH)/scripts/hxtool
$(call quiet-command,sh $(SRC_PATH)/scripts/hxtool -h < $< >
$@,"GEN","$(TARGET_DIR)$@")
+ifdef CONFIG_MPQEMU
+hmp-scsi-commands.h: $(SRC_PATH)/hmp-commands.hx $(SRC_PATH)/scripts/hxtool
+ $(call quiet-command,sh $(SRC_PATH)/scripts/hxtool -tgt scsi < $< > $@)
+
+hmp-scsi-commands-info.h: $(SRC_PATH)/hmp-commands-info.hx
$(SRC_PATH)/scripts/hxtool
+ $(call quiet-command,sh $(SRC_PATH)/scripts/hxtool -tgt scsi < $< > $@)
+endif
+
clean: clean-target
rm -f *.a *~ $(PROGS)
rm -f $(shell find . -name '*.[od]')
- rm -f hmp-commands.h gdbstub-xml.c
+ rm -f hmp-commands.h gdbstub-xml.c hmp-scsi-commands.h
hmp-scsi-commands-info.h
rm -f trace/generated-helpers.c trace/generated-helpers.c-timestamp
ifdef CONFIG_TRACE_SYSTEMTAP
rm -f *.stp
diff --git a/block/Makefile.objs b/block/Makefile.objs
index 3e7513967c..734548d48f 100644
--- a/block/Makefile.objs
+++ b/block/Makefile.objs
@@ -76,3 +76,6 @@ parallels.o-cflags := $(LIBXML2_CFLAGS)
parallels.o-libs := $(LIBXML2_LIBS)
remote-pci-obj-$(CONFIG_MPQEMU) += stream.o
+remote-pci-obj-$(CONFIG_MPQEMU) += qapi-sysemu.o
+
+remote-lsi-obj-$(CONFIG_MPQEMU) += monitor/
diff --git a/block/monitor/Makefile.objs b/block/monitor/Makefile.objs
index 0a74f9a8b5..a0c898711f 100644
--- a/block/monitor/Makefile.objs
+++ b/block/monitor/Makefile.objs
@@ -1 +1,3 @@
common-obj-y += block-hmp-cmds.o
+
+remote-lsi-obj-$(CONFIG_MPQEMU) += block-hmp-cmds.o
diff --git a/hmp-commands.hx b/hmp-commands.hx
index 1b60676d7c..54d01a055f 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -12,6 +12,7 @@ HXCOMM HXCOMM can be used for comments, discarded from both
rST and C.
.params = "[cmd]",
.help = "show the help",
.cmd = hmp_do_help_cmd,
+ .targets = "scsi",
.flags = "p",
},
diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs
index e3e80848c8..251b77bc4c 100644
--- a/hw/core/Makefile.objs
+++ b/hw/core/Makefile.objs
@@ -49,3 +49,4 @@ remote-pci-obj-$(CONFIG_MPQEMU) += numa.o
remote-pci-obj-$(CONFIG_MPQEMU) += cpu.o
remote-pci-obj-$(CONFIG_MPQEMU) += vmstate-if.o
remote-pci-obj-$(CONFIG_MPQEMU) += resettable.o
+remote-pci-obj-$(CONFIG_MPQEMU) += machine-qmp-cmds.o
diff --git a/monitor/Makefile.objs b/monitor/Makefile.objs
index a8533c9dd7..b6949be297 100644
--- a/monitor/Makefile.objs
+++ b/monitor/Makefile.objs
@@ -4,3 +4,7 @@ common-obj-y += qmp-cmds.o qmp-cmds-control.o
common-obj-y += hmp-cmds.o
storage-daemon-obj-y += monitor.o qmp.o qmp-cmds-control.o
+
+remote-pci-obj-$(CONFIG_MPQEMU) += monitor.o qmp.o hmp.o
+remote-pci-obj-$(CONFIG_MPQEMU) += qmp-cmds.o qmp-cmds-control.o
+remote-pci-obj-$(CONFIG_MPQEMU) += hmp-cmds.o
diff --git a/monitor/misc.c b/monitor/misc.c
index c0eee6f4ab..edda4cce17 100644
--- a/monitor/misc.c
+++ b/monitor/misc.c
@@ -1679,13 +1679,21 @@ int monitor_fd_param(Monitor *mon, const char *fdname,
Error **errp)
/* Please update hmp-commands.hx when adding or changing commands */
static HMPCommand hmp_info_cmds[] = {
+#if defined(SCSI_PROCESS)
+#include "hmp-scsi-commands-info.h"
+#else
#include "hmp-commands-info.h"
+#endif
{ NULL, NULL, },
};
/* hmp_cmds and hmp_info_cmds would be sorted at runtime */
HMPCommand hmp_cmds[] = {
+#if defined(SCSI_PROCESS)
+#include "hmp-scsi-commands.h"
+#else
#include "hmp-commands.h"
+#endif
{ NULL, NULL, },
};
diff --git a/qapi/Makefile.objs b/qapi/Makefile.objs
index 4673ab7490..f7433d6a73 100644
--- a/qapi/Makefile.objs
+++ b/qapi/Makefile.objs
@@ -36,3 +36,5 @@ QAPI_MODULES_STORAGE_DAEMON = block-core char common control
crypto
QAPI_MODULES_STORAGE_DAEMON += introspect job qom sockets pragma transaction
storage-daemon-obj-y += $(QAPI_MODULES_STORAGE_DAEMON:%=qapi-commands-%.o)
+
+remote-pci-obj-$(CONFIG_MPQEMU) += $(QAPI_COMMON_MODULES:%=qapi-commands-%.o)
diff --git a/qom/Makefile.objs b/qom/Makefile.objs
index 7e9455db90..546f9fbde6 100644
--- a/qom/Makefile.objs
+++ b/qom/Makefile.objs
@@ -6,3 +6,4 @@ storage-daemon-obj-y += qom-qmp-cmds.o
remote-pci-obj-$(CONFIG_MPQEMU) += object.o qom-qobject.o container.o
remote-pci-obj-$(CONFIG_MPQEMU) += object_interfaces.o
+remote-pci-obj-$(CONFIG_MPQEMU) += qom-qmp-cmds.o qom-hmp-cmds.o
diff --git a/stubs/monitor.c b/stubs/monitor.c
index 959460834b..1f8fa301f5 100644
--- a/stubs/monitor.c
+++ b/stubs/monitor.c
@@ -36,6 +36,7 @@
#pragma weak monitor_printf
#pragma weak monitor_cur_is_qmp
#pragma weak qmp_device_list_properties
+#pragma weak monitor_fdsets_cleanup
__thread Monitor *cur_mon;
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index e6da6ff047..c3ac572d6b 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -68,3 +68,5 @@ console-gl.o-libs += $(OPENGL_LIBS)
egl-helpers.o-libs += $(OPENGL_LIBS)
egl-context.o-libs += $(OPENGL_LIBS)
egl-headless.o-libs += $(OPENGL_LIBS)
+
+remote-lsi-obj-$(CONFIG_MPQEMU) += vnc-stubs.o
--
2.25.GIT
- [PATCH v6 13/36] multi-process: setup PCI host bridge for remote device, (continued)
- [PATCH v6 13/36] multi-process: setup PCI host bridge for remote device, elena . ufimtseva, 2020/04/06
- [PATCH v6 19/36] multi-process: Connect Proxy Object with device in the remote process, elena . ufimtseva, 2020/04/06
- [PATCH v6 22/36] multi-process: Synchronize remote memory, elena . ufimtseva, 2020/04/06
- [PATCH v6 26/36] multi-process: add parse_cmdline in remote process, elena . ufimtseva, 2020/04/06
- [PATCH v6 20/36] multi-process: Forward PCI config space acceses to the remote process, elena . ufimtseva, 2020/04/06
- [PATCH v6 25/36] multi-process: Introduce build flags to separate remote process code, elena . ufimtseva, 2020/04/06
- [PATCH v6 28/36] multi-process: send heartbeat messages to remote, elena . ufimtseva, 2020/04/06
- [PATCH v6 29/36] multi-process: handle heartbeat messages in remote process, elena . ufimtseva, 2020/04/06
- [PATCH v6 31/36] multi-process/mon: choose HMP commands based on target, elena . ufimtseva, 2020/04/06
- [PATCH v6 23/36] multi-process: create IOHUB object to handle irq, elena . ufimtseva, 2020/04/06
- [PATCH v6 33/36] multi-process/mon: enable QMP module support in the remote process,
elena . ufimtseva <=
- [PATCH v6 36/36] multi-process: add configure and usage information, elena . ufimtseva, 2020/04/06
- [PATCH v6 32/36] multi-process/mon: stub functions to enable QMP module for remote process, elena . ufimtseva, 2020/04/06
- [PATCH v6 35/36] multi-process: add the concept description to docs/devel/qemu-multiprocess, elena . ufimtseva, 2020/04/06
- [PATCH v6 02/36] multi-process: Refactor machine_init and exit notifiers, elena . ufimtseva, 2020/04/06
- [PATCH v6 03/36] command-line: refractor parser code, elena . ufimtseva, 2020/04/06
- [PATCH v6 06/36] monitor: destaticize HMP commands, elena . ufimtseva, 2020/04/06
- [PATCH v6 09/36] multi-process: Add config option for multi-process QEMU, elena . ufimtseva, 2020/04/06
- [PATCH v6 11/36] multi-process: define mpqemu-link object, elena . ufimtseva, 2020/04/06
- [PATCH v6 24/36] multi-process: Retrieve PCI info from remote process, elena . ufimtseva, 2020/04/06