device.backend_domid = disk->backend_domid;
device.devid = devid;
device.domid = domid;
- device.kind = DEVICE_VBD;
+ device.kind = LIBXL__DEVICE_KIND_VBD;
switch (disk->backend) {
case LIBXL_DISK_BACKEND_PHY:
flexarray_append(back, "params");
flexarray_append(back, dev);
- device.backend_kind = DEVICE_VBD;
+ device.backend_kind = LIBXL__DEVICE_KIND_VBD;
break;
case LIBXL_DISK_BACKEND_TAP:
dev = libxl__blktap_devpath(&gc, disk->pdev_path, disk->format);
flexarray_append(back, "params");
flexarray_append(back, libxl__sprintf(&gc, "%s:%s",
libxl__device_disk_string_of_format(disk->format), disk->pdev_path));
- device.backend_kind = DEVICE_QDISK;
+ device.backend_kind = LIBXL__DEVICE_KIND_QDISK;
break;
default:
LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "unrecognized disk backend type: %d\n", disk->backend);
switch (disk->backend) {
case LIBXL_DISK_BACKEND_PHY:
- device.backend_kind = DEVICE_VBD;
+ device.backend_kind = LIBXL__DEVICE_KIND_VBD;
break;
case LIBXL_DISK_BACKEND_TAP:
- device.backend_kind = DEVICE_VBD;
+ device.backend_kind = LIBXL__DEVICE_KIND_VBD;
break;
case LIBXL_DISK_BACKEND_QDISK:
- device.backend_kind = DEVICE_QDISK;
+ device.backend_kind = LIBXL__DEVICE_KIND_QDISK;
break;
default:
LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "unrecognized disk backend type: %d\n",
}
device.domid = domid;
device.devid = devid;
- device.kind = DEVICE_VBD;
+ device.kind = LIBXL__DEVICE_KIND_VBD;
if (wait)
rc = libxl__device_del(&gc, &device);
else
device.backend_devid = nic->devid;
device.backend_domid = nic->backend_domid;
- device.backend_kind = DEVICE_VIF;
+ device.backend_kind = LIBXL__DEVICE_KIND_VIF;
device.devid = nic->devid;
device.domid = domid;
- device.kind = DEVICE_VIF;
+ device.kind = LIBXL__DEVICE_KIND_VIF;
flexarray_append(back, "frontend-id");
flexarray_append(back, libxl__sprintf(&gc, "%d", domid));
device.backend_devid = nic->devid;
device.backend_domid = nic->backend_domid;
- device.backend_kind = DEVICE_VIF;
+ device.backend_kind = LIBXL__DEVICE_KIND_VIF;
device.devid = nic->devid;
device.domid = domid;
- device.kind = DEVICE_VIF;
+ device.kind = LIBXL__DEVICE_KIND_VIF;
if (wait)
rc = libxl__device_del(&gc, &device);
device.backend_devid = console->devid;
device.backend_domid = console->backend_domid;
- device.backend_kind = DEVICE_CONSOLE;
+ device.backend_kind = LIBXL__DEVICE_KIND_CONSOLE;
device.devid = console->devid;
device.domid = domid;
- device.kind = DEVICE_CONSOLE;
+ device.kind = LIBXL__DEVICE_KIND_CONSOLE;
flexarray_append(back, "frontend-id");
flexarray_append(back, libxl__sprintf(gc, "%d", domid));
device.backend_devid = vkb->devid;
device.backend_domid = vkb->backend_domid;
- device.backend_kind = DEVICE_VKBD;
+ device.backend_kind = LIBXL__DEVICE_KIND_VKBD;
device.devid = vkb->devid;
device.domid = domid;
- device.kind = DEVICE_VKBD;
+ device.kind = LIBXL__DEVICE_KIND_VKBD;
flexarray_append(back, "frontend-id");
flexarray_append(back, libxl__sprintf(&gc, "%d", domid));
device.backend_devid = vfb->devid;
device.backend_domid = vfb->backend_domid;
- device.backend_kind = DEVICE_VFB;
+ device.backend_kind = LIBXL__DEVICE_KIND_VFB;
device.devid = vfb->devid;
device.domid = domid;
- device.kind = DEVICE_VFB;
+ device.kind = LIBXL__DEVICE_KIND_VFB;
flexarray_append_pair(back, "frontend-id", libxl__sprintf(&gc, "%d", domid));
flexarray_append_pair(back, "online", "1");
#include <unistd.h>
#include <fcntl.h>
-
#include "libxl.h"
#include "libxl_internal.h"
-static const char *string_of_kinds[] = {
- [DEVICE_VIF] = "vif",
- [DEVICE_VBD] = "vbd",
- [DEVICE_QDISK] = "qdisk",
- [DEVICE_PCI] = "pci",
- [DEVICE_VFB] = "vfb",
- [DEVICE_VKBD] = "vkbd",
- [DEVICE_CONSOLE] = "console",
-};
-
char *libxl__device_frontend_path(libxl__gc *gc, libxl__device *device)
{
char *dom_path = libxl__xs_get_dompath(gc, device->domid);
/* Console 0 is a special case */
- if (device->kind == DEVICE_CONSOLE && device->devid == 0)
+ if (device->kind == LIBXL__DEVICE_KIND_CONSOLE && device->devid == 0)
return libxl__sprintf(gc, "%s/console", dom_path);
return libxl__sprintf(gc, "%s/device/%s/%d", dom_path,
- string_of_kinds[device->kind], device->devid);
+ libxl__device_kind_to_string(device->kind),
+ device->devid);
}
char *libxl__device_backend_path(libxl__gc *gc, libxl__device *device)
char *dom_path = libxl__xs_get_dompath(gc, device->backend_domid);
return libxl__sprintf(gc, "%s/backend/%s/%u/%d", dom_path,
- string_of_kinds[device->backend_kind],
+ libxl__device_kind_to_string(device->backend_kind),
device->domid, device->devid);
}
xs_transaction_t t;
struct xs_permissions frontend_perms[2];
struct xs_permissions backend_perms[2];
- int rc;
-
- if (!is_valid_device_kind(device->backend_kind) || !is_valid_device_kind(device->kind)) {
- rc = ERROR_INVAL;
- goto out;
- }
frontend_path = libxl__device_frontend_path(gc, device);
backend_path = libxl__device_backend_path(gc, device);
else
LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "xs transaction failed");
}
- rc = 0;
-out:
- return rc;
+
+ return 0;
}
typedef struct {