[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] tools/xl: Add stubdomain_cmdline option to xl.cfg
commit ce233b10319dfb77ab5e0102202190a5911ae8f3 Author: Scott Davis <scottwd@xxxxxxxxx> AuthorDate: Thu Jul 22 12:54:30 2021 -0400 Commit: Ian Jackson <iwj@xxxxxxxxxxxxxx> CommitDate: Tue Jul 27 14:22:01 2021 +0100 tools/xl: Add stubdomain_cmdline option to xl.cfg This adds an option to the xl domain configuration file syntax for specifying a kernel command line for device-model stubdomains. It is intended for use with Linux-based stubdomains. Signed-off-by: Scott Davis <scott.davis@xxxxxxxxxx> Reviewed-by: Jason Andryuk <jandryuk@xxxxxxxxx> Acked-by: Ian Jackson <iwj@xxxxxxxxxxxxxx> --- docs/man/xl.cfg.5.pod.in | 4 ++++ tools/golang/xenlight/helpers.gen.go | 3 +++ tools/golang/xenlight/types.gen.go | 1 + tools/include/libxl.h | 12 ++++++++++++ tools/libs/light/libxl_dm.c | 1 + tools/libs/light/libxl_types.idl | 1 + tools/xl/xl_parse.c | 2 ++ 7 files changed, 24 insertions(+) diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in index 56370a37db..4b1e3028d2 100644 --- a/docs/man/xl.cfg.5.pod.in +++ b/docs/man/xl.cfg.5.pod.in @@ -2742,6 +2742,10 @@ In case of B<qemu-xen-traditional> it is expected to be MiniOS-based stubdomain image, in case of B<qemu-xen> it is expected to be Linux-based stubdomain kernel. +=item B<stubdomain_cmdline="STRING"> + +Set the device-model stubdomain kernel command line to B<STRING>. + =item B<stubdomain_ramdisk="PATH"> Override the path to the ramdisk image used as device-model stubdomain. diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight/helpers.gen.go index db82537b42..bfc1e7f312 100644 --- a/tools/golang/xenlight/helpers.gen.go +++ b/tools/golang/xenlight/helpers.gen.go @@ -1018,6 +1018,7 @@ return fmt.Errorf("converting field DeviceModelStubdomain: %v", err) } x.StubdomainMemkb = uint64(xc.stubdomain_memkb) x.StubdomainKernel = C.GoString(xc.stubdomain_kernel) +x.StubdomainCmdline = C.GoString(xc.stubdomain_cmdline) x.StubdomainRamdisk = C.GoString(xc.stubdomain_ramdisk) x.DeviceModel = C.GoString(xc.device_model) x.DeviceModelSsidref = uint32(xc.device_model_ssidref) @@ -1344,6 +1345,8 @@ return fmt.Errorf("converting field DeviceModelStubdomain: %v", err) xc.stubdomain_memkb = C.uint64_t(x.StubdomainMemkb) if x.StubdomainKernel != "" { xc.stubdomain_kernel = C.CString(x.StubdomainKernel)} +if x.StubdomainCmdline != "" { +xc.stubdomain_cmdline = C.CString(x.StubdomainCmdline)} if x.StubdomainRamdisk != "" { xc.stubdomain_ramdisk = C.CString(x.StubdomainRamdisk)} if x.DeviceModel != "" { diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/types.gen.go index a214dd9df6..09a3bb67e2 100644 --- a/tools/golang/xenlight/types.gen.go +++ b/tools/golang/xenlight/types.gen.go @@ -483,6 +483,7 @@ DeviceModelVersion DeviceModelVersion DeviceModelStubdomain Defbool StubdomainMemkb uint64 StubdomainKernel string +StubdomainCmdline string StubdomainRamdisk string DeviceModel string DeviceModelSsidref uint32 diff --git a/tools/include/libxl.h b/tools/include/libxl.h index ae7fe27c1f..b9ba16d698 100644 --- a/tools/include/libxl.h +++ b/tools/include/libxl.h @@ -1030,6 +1030,18 @@ typedef struct libxl__ctx libxl_ctx; */ #define LIBXL_HAVE_BUILDINFO_KERNEL 1 +/* + * LIBXL_HAVE_BUILDINFO_DEVICE_MODEL_STUBDOMAIN + * + * If this is defined, then the libxl_domain_build_info structure will contain + * the following fields that specify options for device model stubdomains: + * - stubdomain_memkb: integer indicating stubdomain RAM size + * - stubdomain_kernel: string indicating stubdomain kernel image location + * - stubdomain_cmdline: string of parameters to pass to the stubdomain kernel + * - stubdomain_ramdisk: string indicating stubdomain ramdisk location + */ +#define LIBXL_HAVE_BUILDINFO_DEVICE_MODEL_STUBDOMAIN 1 + /* * LIBXL_HAVE_DEVICE_CHANNEL * diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c index dbd3c7f278..b1732c1944 100644 --- a/tools/libs/light/libxl_dm.c +++ b/tools/libs/light/libxl_dm.c @@ -2373,6 +2373,7 @@ void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss) } stubdom_state->pv_kernel.path = guest_config->b_info.stubdomain_kernel; + stubdom_state->pv_cmdline = guest_config->b_info.stubdomain_cmdline; stubdom_state->pv_ramdisk.path = guest_config->b_info.stubdomain_ramdisk; /* fixme: this function can leak the stubdom if it fails */ diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl index f45adddab0..3f9fff653a 100644 --- a/tools/libs/light/libxl_types.idl +++ b/tools/libs/light/libxl_types.idl @@ -523,6 +523,7 @@ libxl_domain_build_info = Struct("domain_build_info",[ ("device_model_stubdomain", libxl_defbool), ("stubdomain_memkb", MemKB), ("stubdomain_kernel", string), + ("stubdomain_cmdline", string), ("stubdomain_ramdisk", string), # if you set device_model you must set device_model_version too ("device_model", string), diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c index 9fb0791429..17dddb4cd5 100644 --- a/tools/xl/xl_parse.c +++ b/tools/xl/xl_parse.c @@ -2533,6 +2533,8 @@ skip_usbdev: xlu_cfg_replace_string (config, "stubdomain_kernel", &b_info->stubdomain_kernel, 0); + xlu_cfg_replace_string (config, "stubdomain_cmdline", + &b_info->stubdomain_cmdline, 0); xlu_cfg_replace_string (config, "stubdomain_ramdisk", &b_info->stubdomain_ramdisk, 0); if (!xlu_cfg_get_long (config, "stubdomain_memory", &l, 0)) -- generated by git-patchbot for /home/xen/git/xen.git#master
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |