pcidev->vdevfn = vdevfn;
}
-static void libxl_create_pci_backend_device(libxl__gc *gc, flexarray_t *back, int num, libxl_device_pci *pcidev)
+static void libxl_create_pci_backend_device(libxl__gc *gc,
+ flexarray_t *back,
+ int num,
+ const libxl_device_pci *pcidev)
{
flexarray_append(back, GCSPRINTF("key-%d", num));
flexarray_append(back, GCSPRINTF(PCI_BDF, pcidev->domain, pcidev->bus, pcidev->dev, pcidev->func));
}
static void libxl__device_from_pcidev(libxl__gc *gc, uint32_t domid,
- libxl_device_pci *pcidev,
+ const libxl_device_pci *pcidev,
libxl__device *device)
{
device->backend_devid = 0;
}
static int libxl__create_pci_backend(libxl__gc *gc, uint32_t domid,
- libxl_device_pci *pcidev, int num)
+ const libxl_device_pci *pcidev,
+ int num)
{
flexarray_t *front = NULL;
flexarray_t *back = NULL;
NULL);
}
-static int libxl__device_pci_add_xenstore(libxl__gc *gc, uint32_t domid, libxl_device_pci *pcidev, int starting)
+static int libxl__device_pci_add_xenstore(libxl__gc *gc,
+ uint32_t domid,
+ const libxl_device_pci *pcidev,
+ int starting)
{
flexarray_t *back;
char *num_devs, *be_path;
xs_transaction_t t = XBT_NULL;
int rc;
libxl_domain_config d_config;
- libxl_device_pci pcidev_saved;
libxl__domain_userdata_lock *lock = NULL;
libxl_domain_config_init(&d_config);
- libxl_device_pci_init(&pcidev_saved);
- libxl_device_pci_copy(CTX, &pcidev_saved, pcidev);
be_path = libxl__domain_device_backend_path(gc, 0, domid, 0,
LIBXL__DEVICE_KIND_PCI);
if (rc) goto out;
device_add_domain_config(gc, &d_config, &libxl__pcidev_devtype,
- &pcidev_saved);
+ pcidev);
rc = libxl__dm_check_start(gc, &d_config, domid);
if (rc) goto out;
out:
libxl__xs_transaction_abort(gc, &t);
if (lock) libxl__unlock_domain_userdata(lock);
- libxl_device_pci_dispose(&pcidev_saved);
libxl_domain_config_dispose(&d_config);
return rc;
}