From e1e4abdf2a4b0c8dd1706f99056f2a23c9254b3f Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 8 Jun 2010 08:01:04 +0100 Subject: [PATCH] libxl/xl: implement xen_platform_pci enable/disable Implement xen_platform_pci support in xl/libxl to allow users to disable the xen platform pci device from the VM config file. Signed-off-by: Stefano Stabellini --- tools/libxl/libxl.c | 1 + tools/libxl/libxl.h | 1 + tools/libxl/xl_cmdimpl.c | 3 +++ 3 files changed, 5 insertions(+) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 4bbe24a201..b50b6e5824 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -1159,6 +1159,7 @@ int libxl_create_device_model(struct libxl_ctx *ctx, path = libxl_sprintf(ctx, "/local/domain/0/device-model/%d", info->domid); xs_mkdir(ctx->xsh, XBT_NULL, path); + libxl_xs_write(ctx, XBT_NULL, libxl_sprintf(ctx, "%s/disable_pf", path), "%d", !info->xen_platform_pci); libxl_create_logfile(ctx, libxl_sprintf(ctx, "qemu-dm-%s", info->dom_name), &logfile); logfile_w = open(logfile, O_WRONLY|O_CREAT, 0644); diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h index 0949e18528..85f8196359 100644 --- a/tools/libxl/libxl.h +++ b/tools/libxl/libxl.h @@ -164,6 +164,7 @@ typedef struct { bool apic; /* apic enabled or disabled */ int vcpus; /* max number of vcpus */ int vcpu_avail; /* vcpus actually available */ + int xen_platform_pci; /* enable/disable the xen platform pci device */ char **extra; /* extra parameters pass directly to qemu, NULL terminated */ /* Network is missing */ } libxl_device_model_info; diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index ce36d531ea..d10c599c1d 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -240,6 +240,7 @@ static void init_dm_info(libxl_device_model_info *dm_info, dm_info->boot = "cda"; dm_info->usb = 0; dm_info->usbdevice = NULL; + dm_info->xen_platform_pci = 1; } static void init_nic_info(libxl_device_nic *nic_info, int devnum) @@ -869,6 +870,8 @@ skip_pci: dm_info->usb = l; if (!xlu_cfg_get_string (config, "usbdevice", &buf)) dm_info->usbdevice = strdup(buf); + if (!xlu_cfg_get_long (config, "xen_platform_pci", &l)) + dm_info->xen_platform_pci = l; } dm_info->type = c_info->hvm ? XENFV : XENPV; -- 2.30.2