[PATCH 3/4] Xen: Add support for qemu commandline passthrough to config converter
Ján Tomko
jtomko at redhat.com
Sun Aug 2 11:26:38 UTC 2020
On a Friday in 2020, Jim Fehlig wrote:
>Support qemu commandline passthrough in the domXML to native config
>converter. Add tests to check the conversion.
>
>Signed-off-by: Jim Fehlig <jfehlig at suse.com>
>---
>
>I had to add a small hack to xlconfigtest.c to set def->ns after
>parsing the xl.cfg file to virDomainDef object. The hack could also
>be added to xenParseXL in src/libxl/xen_xl.c, where the virDomainDef
>object is created. Opinions much welcomed :-).
>
Yes, it should be filled by whatever is creating the config, not just
before formatting.
> src/libxl/xen_xl.c | 88 ++++++++++++++++++++
> tests/xlconfigdata/test-qemu-passthrough.cfg | 26 ++++++
> tests/xlconfigdata/test-qemu-passthrough.xml | 53 ++++++++++++
Why do all the test files in this directory have a 'test-' prefix?
> tests/xlconfigtest.c | 4 +
> 4 files changed, 171 insertions(+)
>
>diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c
>index f9dc18ab18..a5d70d4039 100644
>--- a/src/libxl/xen_xl.c
>+++ b/src/libxl/xen_xl.c
>@@ -32,6 +32,7 @@
> #include "virstoragefile.h"
> #include "xen_xl.h"
> #include "libxl_capabilities.h"
>+#include "libxl_conf.h"
> #include "cpu/cpu.h"
>
> #define VIR_FROM_THIS VIR_FROM_XENXL
>@@ -1158,6 +1159,40 @@ xenParseXLChannel(virConfPtr conf, virDomainDefPtr def)
> return -1;
> }
>
>+static int
>+xenParseXLNamespaceData(virConfPtr conf, virDomainDefPtr def)
>+{
>+ virConfValuePtr list = virConfGetValue(conf, "device_model_args");
>+ VIR_AUTOSTRINGLIST args = NULL;
>+ size_t nargs;
>+ libxlDomainXmlNsDefPtr nsdata = NULL;
>+
>+ if (list && list->type == VIR_CONF_LIST) {
>+ list = list->list;
>+ while (list) {
>+ if ((list->type != VIR_CONF_STRING) || (list->str == NULL)) {
>+ list = list->next;
>+ continue;
>+ }
>+
>+ virStringListAdd(&args, list->str);
I'm not aware of a GLib equivalent for virStringListAdd
>+ list = list->next;
>+ }
>+ }
>+
>+ nargs = virStringListLength((const char **)args);
g_strv_length
>+ if (nargs > 0) {
>+ if (VIR_ALLOC(nsdata) < 0)
>+ return -1;
g_new0
>+
>+ nsdata->args = g_steal_pointer(&args);
>+ nsdata->num_args = nargs;
>+ def->namespaceData = nsdata;
>+ }
>+
>+ return 0;
>+}
>+
> virDomainDefPtr
> xenParseXL(virConfPtr conf,
> virCapsPtr caps,
Jano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20200802/d4f04eb4/attachment-0001.sig>
More information about the libvir-list
mailing list