aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxl/libxl_utils.c
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2011-10-18 13:36:42 +0100
committerIan Campbell <ian.campbell@citrix.com>2011-10-18 13:36:42 +0100
commitef2d784f102635b276e4062701b2f8f84205ecc6 (patch)
tree8903f8bdfbca7f88c4c014bd964cae236e0fcca6 /tools/libxl/libxl_utils.c
parentbcea3858dd4ec793dd2c30fe60571402a4b1d669 (diff)
downloadxen-ef2d784f102635b276e4062701b2f8f84205ecc6.tar.gz
xen-ef2d784f102635b276e4062701b2f8f84205ecc6.tar.bz2
xen-ef2d784f102635b276e4062701b2f8f84205ecc6.zip
libxl: update nic list API to use common device API style
libxl_device_nic_list returns an array of libxl_device_nic and libxl_device_nic_getinfo retrieves further information. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson.citrix.com> Committed-by: Ian Jackson <ian.jackson.citrix.com>
Diffstat (limited to 'tools/libxl/libxl_utils.c')
-rw-r--r--tools/libxl/libxl_utils.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/tools/libxl/libxl_utils.c b/tools/libxl/libxl_utils.c
index d810f305dc..f53902a1fd 100644
--- a/tools/libxl/libxl_utils.c
+++ b/tools/libxl/libxl_utils.c
@@ -451,15 +451,15 @@ int libxl_pipe(libxl_ctx *ctx, int pipes[2])
int libxl_mac_to_device_nic(libxl_ctx *ctx, uint32_t domid,
const char *mac, libxl_device_nic *nic)
{
- libxl_nicinfo *nics;
- unsigned int nb, rc, i;
+ libxl_device_nic *nics;
+ int nb, rc, i;
libxl_mac mac_n;
rc = libxl__parse_mac(mac, mac_n);
if (rc)
return rc;
- nics = libxl_list_nics(ctx, domid, &nb);
+ nics = libxl_device_nic_list(ctx, domid, &nb);
if (!nics)
return ERROR_FAIL;
@@ -468,17 +468,17 @@ int libxl_mac_to_device_nic(libxl_ctx *ctx, uint32_t domid,
rc = ERROR_INVAL;
for (i = 0; i < nb; ++i) {
if (!libxl__compare_macs(&mac_n, &nics[i].mac)) {
- nic->backend_domid = nics[i].backend_id;
- nic->devid = nics[i].devid;
- memcpy(nic->mac, nics[i].mac, sizeof (nic->mac));
- nic->script = strdup(nics[i].script);
+ *nic = nics[i];
rc = 0;
+ i++; /* Do not dispose this NIC on exit path */
break;
}
+ libxl_device_nic_dispose(&nics[i]);
}
- for (i=0; i<nb; i++)
- libxl_nicinfo_dispose(&nics[i]);
+ for (; i<nb; i++)
+ libxl_device_nic_dispose(&nics[i]);
+
free(nics);
return rc;
}