diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2012-03-01 12:26:14 +0000 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2012-03-01 12:26:14 +0000 |
commit | 966deb4db61ea44e2487c84daa0939f52416fa83 (patch) | |
tree | 0f5fb9857c72f61e6559c37a1b878de2e997ddf6 /tools | |
parent | ffa165bb9fb29adf4063fd950e07b91611892c63 (diff) | |
download | xen-966deb4db61ea44e2487c84daa0939f52416fa83.tar.gz xen-966deb4db61ea44e2487c84daa0939f52416fa83.tar.bz2 xen-966deb4db61ea44e2487c84daa0939f52416fa83.zip |
libxl: pci: use _init/_setdefault
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/libxl/libxl.h | 2 | ||||
-rw-r--r-- | tools/libxl/libxl_internal.h | 1 | ||||
-rw-r--r-- | tools/libxl/libxl_pci.c | 13 | ||||
-rw-r--r-- | tools/libxl/xl_cmdimpl.c | 2 |
4 files changed, 16 insertions, 2 deletions
diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h index f7cbc819fc..564ad67e4d 100644 --- a/tools/libxl/libxl.h +++ b/tools/libxl/libxl.h @@ -552,7 +552,7 @@ int libxl_device_vfb_remove(libxl_ctx *ctx, uint32_t domid, int libxl_device_vfb_destroy(libxl_ctx *ctx, uint32_t domid, libxl_device_vfb *vfb); /* PCI Passthrough */ -int libxl_device_pci_init(libxl_ctx *ctx, libxl_device_pci *pci); +void libxl_device_pci_init(libxl_device_pci *pci); int libxl_device_pci_add(libxl_ctx *ctx, uint32_t domid, libxl_device_pci *pcidev); int libxl_device_pci_remove(libxl_ctx *ctx, uint32_t domid, libxl_device_pci *pcidev); int libxl_device_pci_destroy(libxl_ctx *ctx, uint32_t domid, libxl_device_pci *pcidev); diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h index b408bb347b..e0a1070dd9 100644 --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -196,6 +196,7 @@ _hidden int libxl__device_disk_setdefault(libxl__gc *gc, _hidden int libxl__device_nic_setdefault(libxl__gc *gc, libxl_device_nic *nic); _hidden int libxl__device_vfb_setdefault(libxl__gc *gc, libxl_device_vfb *vfb); _hidden int libxl__device_vkb_setdefault(libxl__gc *gc, libxl_device_vkb *vkb); +_hidden int libxl__device_pci_setdefault(libxl__gc *gc, libxl_device_pci *pci); struct libxl__evgen_domain_death { uint32_t domid; diff --git a/tools/libxl/libxl_pci.c b/tools/libxl/libxl_pci.c index 33425f5fe9..e42f11281d 100644 --- a/tools/libxl/libxl_pci.c +++ b/tools/libxl/libxl_pci.c @@ -765,6 +765,16 @@ static int libxl__device_pci_reset(libxl__gc *gc, unsigned int domain, unsigned return -1; } +void libxl_device_pci_init(libxl_device_pci *pci) +{ + memset(pci, '\0', sizeof(*pci)); +} + +int libxl__device_pci_setdefault(libxl__gc *gc, libxl_device_pci *pci) +{ + return 0; +} + int libxl_device_pci_add(libxl_ctx *ctx, uint32_t domid, libxl_device_pci *pcidev) { GC_INIT(ctx); @@ -782,6 +792,9 @@ int libxl__device_pci_add(libxl__gc *gc, uint32_t domid, libxl_device_pci *pcide int num_assigned, i, rc; int stubdomid = 0; + rc = libxl__device_pci_setdefault(gc, pcidev); + if (rc) goto out; + rc = get_all_assigned_devices(gc, &assigned, &num_assigned); if ( rc ) { LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "cannot determine if device is assigned, refusing to continue"); diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index 9851705ca3..1c261235db 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -1021,7 +1021,7 @@ skip_vfb: d_config->pcidevs = (libxl_device_pci *) realloc(d_config->pcidevs, sizeof (libxl_device_pci) * (d_config->num_pcidevs + 1)); pcidev = d_config->pcidevs + d_config->num_pcidevs; - memset(pcidev, 0x00, sizeof(libxl_device_pci)); + libxl_device_pci_init(pcidev); pcidev->msitranslate = pci_msitranslate; pcidev->power_mgmt = pci_power_mgmt; |