]> xenbits.xensource.com Git - xen.git/commitdiff
libxl/xl: implement xen_platform_pci enable/disable
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 8 Jun 2010 07:01:04 +0000 (08:01 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 8 Jun 2010 07:01:04 +0000 (08:01 +0100)
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 <stefano.stabellini@eu.citrix.com>
tools/libxl/libxl.c
tools/libxl/libxl.h
tools/libxl/xl_cmdimpl.c

index 4bbe24a201a0d61fdb43f91bdabe19041fb33597..b50b6e5824c8dbd28c8a50f53fae089a36475627 100644 (file)
@@ -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);
index 0949e18528a8740e9b88523a81085712080cb684..85f81963596642f1c0e3bf2edebe03d9a1734cd9 100644 (file)
@@ -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;
index ce36d531ea24f2ccb35f8b36b8aaff8bbd429be9..d10c599c1df28060e6a971fc6c25f46766af0674 100644 (file)
@@ -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;