disk->backend = DISK_BACKEND_UNKNOWN;
}
- disk->domid = domid;
disk->pdev_path = strdup("");
disk->format = DISK_FORMAT_EMPTY;
/* this value is returned to the user: do not free right away */
device.backend_devid = devid;
device.backend_domid = disk->backend_domid;
device.devid = devid;
- device.domid = disk->domid;
+ device.domid = domid;
device.kind = DEVICE_VBD;
switch (disk->backend) {
}
flexarray_append(back, "frontend-id");
- flexarray_append(back, libxl__sprintf(&gc, "%d", disk->domid));
+ flexarray_append(back, libxl__sprintf(&gc, "%d", domid));
flexarray_append(back, "online");
flexarray_append(back, "1");
flexarray_append(back, "removable");
return rc;
}
-int libxl_device_disk_del(libxl_ctx *ctx,
+int libxl_device_disk_del(libxl_ctx *ctx, uint32_t domid,
libxl_device_disk *disk, int wait)
{
libxl__gc gc = LIBXL_INIT_GC(ctx);
device.backend_devid = devid;
device.backend_kind =
(disk->backend == DISK_BACKEND_PHY) ? DEVICE_VBD : DEVICE_TAP;
- device.domid = disk->domid;
+ device.domid = domid;
device.devid = devid;
device.kind = DEVICE_VBD;
rc = libxl__device_del(&gc, &device, wait);
memset(nic_info, '\0', sizeof(*nic_info));
nic_info->backend_domid = 0;
- nic_info->domid = 0;
nic_info->devid = devnum;
nic_info->mtu = 1492;
nic_info->model = strdup("rtl8139");
device.backend_domid = nic->backend_domid;
device.backend_kind = DEVICE_VIF;
device.devid = nic->devid;
- device.domid = nic->domid;
+ device.domid = domid;
device.kind = DEVICE_VIF;
flexarray_append(back, "frontend-id");
- flexarray_append(back, libxl__sprintf(&gc, "%d", nic->domid));
+ flexarray_append(back, libxl__sprintf(&gc, "%d", domid));
flexarray_append(back, "online");
flexarray_append(back, "1");
flexarray_append(back, "state");
return rc;
}
-int libxl_device_nic_del(libxl_ctx *ctx,
+int libxl_device_nic_del(libxl_ctx *ctx, uint32_t domid,
libxl_device_nic *nic, int wait)
{
libxl__gc gc = LIBXL_INIT_GC(ctx);
device.backend_domid = nic->backend_domid;
device.backend_kind = DEVICE_VIF;
device.devid = nic->devid;
- device.domid = nic->domid;
+ device.domid = domid;
device.kind = DEVICE_VIF;
rc = libxl__device_del(&gc, &device, wait);
device.backend_domid = console->backend_domid;
device.backend_kind = DEVICE_CONSOLE;
device.devid = console->devid;
- device.domid = console->domid;
+ device.domid = domid;
device.kind = DEVICE_CONSOLE;
flexarray_append(back, "frontend-id");
- flexarray_append(back, libxl__sprintf(&gc, "%d", console->domid));
+ flexarray_append(back, libxl__sprintf(&gc, "%d", domid));
flexarray_append(back, "online");
flexarray_append(back, "1");
flexarray_append(back, "state");
device.backend_domid = vkb->backend_domid;
device.backend_kind = DEVICE_VKBD;
device.devid = vkb->devid;
- device.domid = vkb->domid;
+ device.domid = domid;
device.kind = DEVICE_VKBD;
flexarray_append(back, "frontend-id");
- flexarray_append(back, libxl__sprintf(&gc, "%d", vkb->domid));
+ flexarray_append(back, libxl__sprintf(&gc, "%d", domid));
flexarray_append(back, "online");
flexarray_append(back, "1");
flexarray_append(back, "state");
pdisk_end = *disks + *ndisks;
for (; pdisk < pdisk_end; pdisk++, dir++) {
pdisk->backend_domid = 0;
- pdisk->domid = domid;
physpath_tmp = xs_read(ctx->xsh, XBT_NULL, libxl__sprintf(gc, "%s/%s/params", be_path, *dir), &len);
if (physpath_tmp && strchr(physpath_tmp, ':')) {
pdisk->pdev_path = strdup(strchr(physpath_tmp, ':') + 1);
ret = 0;
- libxl_device_disk_del(ctx, disks + i, 1);
+ libxl_device_disk_del(ctx, domid, disks + i, 1);
libxl_device_disk_add(ctx, domid, disk);
stubdomid = libxl_get_stubdom_id(ctx, domid);
if (stubdomid) {
- disks[i].domid = stubdomid;
- libxl_device_disk_del(ctx, disks + i, 1);
- disk->domid = stubdomid;
+ libxl_device_disk_del(ctx, stubdomid, disks + i, 1);
libxl_device_disk_add(ctx, stubdomid, disk);
- disk->domid = domid;
}
out:
for (i = 0; i < num; i++)
device.backend_domid = vfb->backend_domid;
device.backend_kind = DEVICE_VFB;
device.devid = vfb->devid;
- device.domid = vfb->domid;
+ device.domid = domid;
device.kind = DEVICE_VFB;
- flexarray_append_pair(back, "frontend-id", libxl__sprintf(&gc, "%d", vfb->domid));
+ flexarray_append_pair(back, "frontend-id", libxl__sprintf(&gc, "%d", domid));
flexarray_append_pair(back, "online", "1");
flexarray_append_pair(back, "state", libxl__sprintf(&gc, "%d", 1));
flexarray_append_pair(back, "domain", libxl__domid_to_name(&gc, domid));
libxl_vminfo * libxl_list_vm(libxl_ctx *ctx, int *nb_vm);
int libxl_device_disk_add(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk);
-int libxl_device_disk_del(libxl_ctx *ctx, libxl_device_disk *disk, int wait);
+int libxl_device_disk_del(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk, int wait);
libxl_device_disk *libxl_device_disk_list(libxl_ctx *ctx, uint32_t domid, int *num);
int libxl_device_disk_getinfo(libxl_ctx *ctx, uint32_t domid,
libxl_device_disk *disk, libxl_diskinfo *diskinfo);
int libxl_device_nic_init(libxl_device_nic *nic, int dev_num);
int libxl_device_nic_add(libxl_ctx *ctx, uint32_t domid, libxl_device_nic *nic);
-int libxl_device_nic_del(libxl_ctx *ctx, libxl_device_nic *nic, int wait);
+int libxl_device_nic_del(libxl_ctx *ctx, uint32_t domid, libxl_device_nic *nic, int wait);
libxl_nicinfo *libxl_list_nics(libxl_ctx *ctx, uint32_t domid, unsigned int *nb);
int libxl_device_console_add(libxl_ctx *ctx, uint32_t domid, libxl_device_console *console);
libxl_device_vfb = Struct("device_vfb", [
("backend_domid", uint32),
- ("domid", uint32),
("devid", integer),
("vnc", bool, False, "vnc enabled or disabled"),
("vnclisten", string, False, "address:port that should be listened on for the VNC server if vnc is set"),
libxl_device_vkb = Struct("device_vkb", [
("backend_domid", uint32),
- ("domid", domid),
("devid", integer),
])
libxl_device_console = Struct("device_console", [
("backend_domid", uint32),
- ("domid", domid),
("devid", integer),
("consback", libxl_console_consback),
("build_state", Reference(libxl_domain_build_state), True),
libxl_device_disk = Struct("device_disk", [
("backend_domid", uint32),
- ("domid", domid),
("pdev_path", string),
("vdev", string),
("backend", libxl_disk_backend),
libxl_device_nic = Struct("device_nic", [
("backend_domid", uint32),
- ("domid", domid),
("devid", integer),
("mtu", integer),
("model", string),
}
for (i = 0; i < d_config->num_disks; i++) {
- d_config->disks[i].domid = domid;
ret = libxl_device_disk_add(ctx, domid, &d_config->disks[i]);
if (ret) {
fprintf(stderr, "cannot add disk %d to domain: %d\n", i, ret);
}
}
for (i = 0; i < d_config->num_vifs; i++) {
- d_config->vifs[i].domid = domid;
ret = libxl_device_nic_add(ctx, domid, &d_config->vifs[i]);
if (ret) {
fprintf(stderr, "cannot add nic %d to domain: %d\n", i, ret);
ret = init_console_info(&console, 0, &state);
if ( ret )
goto error_out;
- console.domid = domid;
libxl_device_console_add(ctx, domid, &console);
libxl_device_console_destroy(&console);
libxl_device_console console;
for (i = 0; i < d_config->num_vfbs; i++) {
- d_config->vfbs[i].domid = domid;
libxl_device_vfb_add(ctx, domid, &d_config->vfbs[i]);
- d_config->vkbs[i].domid = domid;
libxl_device_vkb_add(ctx, domid, &d_config->vkbs[i]);
}
ret = init_console_info(&console, 0, &state);
if ( ret )
goto error_out;
- console.domid = domid;
need_qemu = libxl__need_xenpv_qemu(gc, 1, &console,
d_config->num_vfbs, d_config->vfbs,
goto retry_transaction;
for (i = 0; i < num_disks; i++) {
- disks[i].domid = domid;
ret = libxl_device_disk_add(ctx, domid, &disks[i]);
if (ret)
goto out_free;
}
for (i = 0; i < num_vifs; i++) {
- vifs[i].domid = domid;
ret = libxl_device_nic_add(ctx, domid, &vifs[i]);
if (ret)
goto out_free;
}
- vfb->domid = domid;
ret = libxl_device_vfb_add(ctx, domid, vfb);
if (ret)
goto out_free;
- vkb->domid = domid;
ret = libxl_device_vkb_add(ctx, domid, vkb);
if (ret)
goto out_free;
for (i = 0; i < num_console; i++) {
console[i].devid = i;
console[i].consback = LIBXL_CONSBACK_IOEMU;
- console[i].domid = domid;
/* STUBDOM_CONSOLE_LOGGING (console 0) is for minios logging
* STUBDOM_CONSOLE_SAVE (console 1) is for writing the save file
* STUBDOM_CONSOLE_RESTORE (console 2) is for reading the save file
;
if ((b >= mac_n + 6) && (*a == *b)) {
nic->backend_domid = nics[i].backend_id;
- nic->domid = nics[i].frontend_id;
nic->devid = nics[i].devid;
memcpy(nic->mac, nics[i].mac, sizeof (nic->mac));
nic->script = strdup(nics[i].script);
if (!val)
goto out;
disk->backend_domid = strtoul(val, NULL, 10);
- disk->domid = domid;
be_path = libxl__xs_read(&gc, XBT_NULL, libxl__sprintf(&gc, "%s/backend", diskpath));
disk->pdev_path = libxl__xs_read(&gc, XBT_NULL, libxl__sprintf(&gc, "%s/params", be_path));
val = libxl__xs_read(&gc, XBT_NULL, libxl__sprintf(&gc, "%s/type", be_path));
printf("\t(device\n");
printf("\t\t(tap\n");
printf("\t\t\t(backend_domid %d)\n", d_config->disks[i].backend_domid);
- printf("\t\t\t(domid %d)\n", d_config->disks[i].domid);
+ printf("\t\t\t(domid %d)\n", domid);
printf("\t\t\t(physpath %s)\n", d_config->disks[i].pdev_path);
printf("\t\t\t(phystype %d)\n", d_config->disks[i].backend);
printf("\t\t\t(virtpath %s)\n", d_config->disks[i].vdev);
printf("\t(device\n");
printf("\t\t(vif\n");
printf("\t\t\t(backend_domid %d)\n", d_config->vifs[i].backend_domid);
- printf("\t\t\t(domid %d)\n", d_config->vifs[i].domid);
+ printf("\t\t\t(domid %d)\n", domid);
printf("\t\t\t(devid %d)\n", d_config->vifs[i].devid);
printf("\t\t\t(mtu %d)\n", d_config->vifs[i].mtu);
printf("\t\t\t(model %s)\n", d_config->vifs[i].model);
printf("\t(device\n");
printf("\t\t(vfb\n");
printf("\t\t\t(backend_domid %d)\n", d_config->vfbs[i].backend_domid);
- printf("\t\t\t(domid %d)\n", d_config->vfbs[i].domid);
+ printf("\t\t\t(domid %d)\n", domid);
printf("\t\t\t(devid %d)\n", d_config->vfbs[i].devid);
printf("\t\t\t(vnc %d)\n", d_config->vfbs[i].vnc);
printf("\t\t\t(vnclisten %s)\n", d_config->vfbs[i].vnclisten);
return;
}
disk.backend_domid = 0;
- disk.domid = domid;
libxl_cdrom_insert(ctx, domid, &disk);
free(buf);
return 1;
}
}
- nic.domid = domid;
if (libxl_device_nic_add(ctx, domid, &nic)) {
fprintf(stderr, "libxl_device_nic_add failed.\n");
return 1;
return 1;
}
}
- if (libxl_device_nic_del(ctx, &nic, 1)) {
+ if (libxl_device_nic_del(ctx, domid, &nic, 1)) {
fprintf(stderr, "libxl_device_nic_del failed.\n");
return 1;
}
return 1;
}
}
- disk.domid = fe_domid;
disk.backend_domid = be_domid;
if (libxl_device_disk_add(ctx, fe_domid, &disk)) {
fprintf(stderr, "Error: Device %s not connected.\n", argv[optind+1]);
return 1;
}
- if (libxl_device_disk_del(ctx, &disk, 1)) {
+ if (libxl_device_disk_del(ctx, domid, &disk, 1)) {
fprintf(stderr, "libxl_device_disk_del failed.\n");
}
return 0;
INIT_STRUCT();
device_disk_val(&gc, &c_info, info);
- c_info.domid = Int_val(domid);
INIT_CTX();
ret = libxl_device_disk_add(ctx, Int_val(domid), &c_info);
INIT_STRUCT();
device_disk_val(&gc, &c_info, info);
- c_info.domid = Int_val(domid);
INIT_CTX();
- ret = libxl_device_disk_del(ctx, &c_info, 0);
+ ret = libxl_device_disk_del(ctx, Int_val(domid), &c_info, 0);
if (ret != 0)
failwith_xl("disk_remove", &lg);
FREE_CTX();
INIT_STRUCT();
device_nic_val(&gc, &c_info, info);
- c_info.domid = Int_val(domid);
INIT_CTX();
ret = libxl_device_nic_add(ctx, Int_val(domid), &c_info);
INIT_STRUCT();
device_nic_val(&gc, &c_info, info);
- c_info.domid = Int_val(domid);
INIT_CTX();
- ret = libxl_device_nic_del(ctx, &c_info, 0);
+ ret = libxl_device_nic_del(ctx, Int_val(domid), &c_info, 0);
if (ret != 0)
failwith_xl("nic_remove", &lg);
FREE_CTX();
device_console_val(&gc, &c_info, info);
domain_build_state_val(&gc, &c_state, state);
- c_info.domid = Int_val(domid);
c_info.build_state = &c_state;
INIT_CTX();
INIT_STRUCT();
device_vkb_val(&gc, &c_info, info);
- c_info.domid = Int_val(domid);
INIT_CTX();
ret = libxl_device_vkb_add(ctx, Int_val(domid), &c_info);
INIT_STRUCT();
device_vfb_val(&gc, &c_info, info);
- c_info.domid = Int_val(domid);
INIT_CTX();
ret = libxl_device_vfb_add(ctx, Int_val(domid), &c_info);