[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 07 of 23] libxl: reimplement devid->nic in terms of from_xs_be function
# HG changeset patch # User Ian Campbell <ian.campbell@xxxxxxxxxx> # Date 1317389247 -3600 # Node ID e65e18b230493e7886654d30838ce74407c36168 # Parent cafd8b3f9e0c8bbf5c30cfcd512c1486661ca4d9 libxl: reimplement devid->nic in terms of from_xs_be function. Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> diff -r cafd8b3f9e0c -r e65e18b23049 tools/libxl/libxl.c --- a/tools/libxl/libxl.c Fri Sep 30 14:27:27 2011 +0100 +++ b/tools/libxl/libxl.c Fri Sep 30 14:27:27 2011 +0100 @@ -1312,7 +1312,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); @@ -1329,6 +1329,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 cafd8b3f9e0c -r e65e18b23049 tools/libxl/libxl_utils.c --- a/tools/libxl/libxl_utils.c Fri Sep 30 14:27:27 2011 +0100 +++ b/tools/libxl/libxl_utils.c Fri Sep 30 14:27:27 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |