There is td_disk_info_t for drivers, so remove the glue.
Signed-off-by: Daniel Stodden <daniel.stodden@citrix.com>
tapdisk_message_t response;
char *devname;
td_vbd_t *vbd;
- image_t image;
int minor, err;
/*
tapdisk_message_t *request)
{
int err, type, secondary_type;
- image_t image;
+ td_disk_info_t image;
td_vbd_t *vbd;
td_flag_t flags;
tapdisk_message_t response;
if (err)
goto out;
- err = tapdisk_vbd_get_image_info(vbd, &image);
+ err = tapdisk_vbd_get_disk_info(vbd, &image);
if (err)
goto fail_close;
memset(&info, 0, sizeof(info));
info.capacity = image.size;
- info.sector_size = image.secsize;
- info.physical_sector_size = image.secsize;
+ info.sector_size = image.sector_size;
+ info.physical_sector_size = image.sector_size;
info.flags = 0;
info.flags |= flags & TD_OPEN_RDONLY ? BLKTAP_DEVICE_RO : 0;
response.u.response.error = -err;
} else {
response.u.image.sectors = image.size;
- response.u.image.sector_size = image.secsize;
+ response.u.image.sector_size = image.sector_size;
response.u.image.info = image.info;
response.type = TAPDISK_MESSAGE_OPEN_RSP;
}
tapdisk_stream_open_image(struct tapdisk_stream *s, const char *path, int type)
{
int err;
- image_t image;
+ td_disk_info_t info;
s->id = tapdisk_stream_count++;
if (err)
goto out;
- err = tapdisk_vbd_get_image_info(s->vbd, &image);
+ err = tapdisk_vbd_get_disk_info(s->vbd, &info);
if (err) {
fprintf(stderr, "failed getting image size: %d\n", err);
return err;
s->start = 0;
s->cur = s->start;
- s->end = image.size;
+ s->end = info.size;
err = 0;
uint64_t count, uint64_t skip)
{
int err;
- image_t image;
+ td_disk_info_t info;
- err = tapdisk_vbd_get_image_info(s->vbd, &image);
+ err = tapdisk_vbd_get_disk_info(s->vbd, &info);
if (err) {
fprintf(stderr, "failed getting image size: %d\n", err);
return err;
}
if (count == (uint64_t)-1)
- count = image.size - skip;
+ count = info.size - skip;
- if (count + skip > image.size) {
+ if (count + skip > info.size) {
fprintf(stderr, "0x%llx past end of image 0x%llx\n",
- count + skip, image.size);
+ count + skip, info.size);
return -EINVAL;
}
}
int
-tapdisk_vbd_get_image_info(td_vbd_t *vbd, image_t *img)
+tapdisk_vbd_get_disk_info(td_vbd_t *vbd, td_disk_info_t *img)
{
td_image_t *image;
- memset(img, 0, sizeof(image_t));
+ memset(img, 0, sizeof(*img));
if (list_empty(&vbd->images))
return -EINVAL;
image = tapdisk_vbd_first_image(vbd);
- img->size = image->info.size;
- img->secsize = image->info.sector_size;
- img->info = image->info.info;
+ *img = image->info;
return 0;
}
err = __tapdisk_vbd_open_vdi(vbd, TD_OPEN_STRICT);
out:
if (!err) {
- image_t image;
struct blktap2_params params;
+ td_disk_info_t info;
memset(¶ms, 0, sizeof(params));
- tapdisk_vbd_get_image_info(vbd, &image);
+ tapdisk_vbd_get_disk_info(vbd, &info);
- params.sector_size = image.secsize;
- params.capacity = image.size;
+ params.sector_size = info.sector_size;
+ params.capacity = info.size;
snprintf(params.name, sizeof(params.name) - 1, "%s", message);
ioctl(vbd->ring.fd, BLKTAP2_IOCTL_SET_PARAMS, ¶ms);
void tapdisk_vbd_forward_request(td_request_t);
-typedef struct image {
- unsigned long long size;
- unsigned long secsize;
- unsigned int info;
-} image_t;
-
-int tapdisk_vbd_get_image_info(td_vbd_t *, image_t *);
+int tapdisk_vbd_get_disk_info(td_vbd_t *, td_disk_info_t *);
int tapdisk_vbd_retry_needed(td_vbd_t *);
int tapdisk_vbd_quiesce_queue(td_vbd_t *);
int tapdisk_vbd_start_queue(td_vbd_t *);