# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1318499565 -3600
# Node ID 0ffea6ba20dddbf2a79cfed884a5444446c196ba
# Parent 32a1ea4a0b13f2b9bdc9385cc175ed28086d5681
libxl: reimplement devid->nic in terms of from_xs_be function.
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
diff -r 32a1ea4a0b13 -r 0ffea6ba20dd tools/libxl/libxl.c
--- a/tools/libxl/libxl.c Thu Oct 13 10:52:45 2011 +0100
+++ b/tools/libxl/libxl.c Thu Oct 13 10:52:45 2011 +0100
@@ -1315,7 +1315,7 @@ static void libxl__device_nic_from_xs_be
libxl__sprintf(gc, "%s/mac", be_path), &len);
rc = libxl__parse_mac(tmp, nic->mac);
if (rc)
- memset(nic->mac, 0, sizeof(nic->mac));
+ memset(nic->mac, 0, sizeof(nic->mac));
nic->ip = xs_read(ctx->xsh, XBT_NULL,
libxl__sprintf(gc, "%s/ip", be_path), &len);
@@ -1332,6 +1332,32 @@ static void libxl__device_nic_from_xs_be
nic->ifname = NULL; /* XXX Only for TYPE_IOEMU */
}
+int libxl_devid_to_device_nic(libxl_ctx *ctx, uint32_t domid,
+ const char *devid, libxl_device_nic *nic)
+{
+ libxl__gc gc = LIBXL_INIT_GC(ctx);
+ char *dompath, *path;
+ int rc = ERROR_FAIL;
+
+ memset(nic, 0, sizeof (libxl_device_nic));
+ dompath = libxl__xs_get_dompath(&gc, domid);
+ if (!dompath)
+ goto out;
+
+ path = libxl__xs_read(&gc, XBT_NULL,
+ libxl__sprintf(&gc, "%s/device/vif/%s/backend",
+ dompath, devid));
+ if (!path)
+ goto out;
+
+ libxl__device_nic_from_xs_be(&gc, path, nic);
+
+ rc = 0;
+out:
+ libxl__free_all(&gc);
+ return rc;
+}
+
static int libxl__append_nic_list_of_type(libxl__gc *gc,
uint32_t domid,
const char *type,
diff -r 32a1ea4a0b13 -r 0ffea6ba20dd tools/libxl/libxl_utils.c
--- a/tools/libxl/libxl_utils.c Thu Oct 13 10:52:45 2011 +0100
+++ b/tools/libxl/libxl_utils.c Thu Oct 13 10:52:45 2011 +0100
@@ -483,41 +483,6 @@ int libxl_mac_to_device_nic(libxl_ctx *c
return rc;
}
-int libxl_devid_to_device_nic(libxl_ctx *ctx, uint32_t domid,
- const char *devid, libxl_device_nic *nic)
-{
- libxl__gc gc = LIBXL_INIT_GC(ctx);
- char *val;
- char *dompath, *nic_path_fe, *nic_path_be;
- int rc = ERROR_FAIL;
-
- memset(nic, 0, sizeof (libxl_device_nic));
- dompath = libxl__xs_get_dompath(&gc, domid);
- if (!dompath) {
- goto out;
- }
- nic_path_fe = libxl__sprintf(&gc, "%s/device/vif/%s", dompath, devid);
- nic_path_be = libxl__xs_read(&gc, XBT_NULL,
- libxl__sprintf(&gc, "%s/backend",
nic_path_fe));
- val = libxl__xs_read(&gc, XBT_NULL, libxl__sprintf(&gc, "%s/backend-id",
nic_path_fe));
- if ( NULL == val ) {
- goto out;
- }
- nic->backend_domid = strtoul(val, NULL, 10);
- nic->devid = strtoul(devid, NULL, 10);
-
- val = libxl__xs_read(&gc, XBT_NULL, libxl__sprintf(&gc, "%s/mac",
nic_path_fe));
- rc = libxl__parse_mac(val, nic->mac);
- if (rc)
- goto out;
-
- nic->script = xs_read(ctx->xsh, XBT_NULL, libxl__sprintf(&gc, "%s/script",
nic_path_be), NULL);
- rc = 0;
-out:
- libxl__free_all(&gc);
- return rc;
-}
-
int libxl_devid_to_device_disk(libxl_ctx *ctx, uint32_t domid,
const char *devid, libxl_device_disk *disk)
{
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|