|
@@ -304,7 +304,7 @@ static int parallel_test(unsigned long features,
|
|
|
close(to_guest[1]);
|
|
|
close(to_host[0]);
|
|
|
|
|
|
- gvdev.vdev.features[0] = features;
|
|
|
+ gvdev.vdev.features = features;
|
|
|
gvdev.to_host_fd = to_host[1];
|
|
|
gvdev.notifies = 0;
|
|
|
|
|
@@ -449,13 +449,13 @@ int main(int argc, char *argv[])
|
|
|
bool fast_vringh = false, parallel = false;
|
|
|
|
|
|
getrange = getrange_iov;
|
|
|
- vdev.features[0] = 0;
|
|
|
+ vdev.features = 0;
|
|
|
|
|
|
while (argv[1]) {
|
|
|
if (strcmp(argv[1], "--indirect") == 0)
|
|
|
- vdev.features[0] |= (1 << VIRTIO_RING_F_INDIRECT_DESC);
|
|
|
+ __virtio_set_bit(&vdev, VIRTIO_RING_F_INDIRECT_DESC);
|
|
|
else if (strcmp(argv[1], "--eventidx") == 0)
|
|
|
- vdev.features[0] |= (1 << VIRTIO_RING_F_EVENT_IDX);
|
|
|
+ __virtio_set_bit(&vdev, VIRTIO_RING_F_EVENT_IDX);
|
|
|
else if (strcmp(argv[1], "--slow-range") == 0)
|
|
|
getrange = getrange_slow;
|
|
|
else if (strcmp(argv[1], "--fast-vringh") == 0)
|
|
@@ -468,7 +468,7 @@ int main(int argc, char *argv[])
|
|
|
}
|
|
|
|
|
|
if (parallel)
|
|
|
- return parallel_test(vdev.features[0], getrange, fast_vringh);
|
|
|
+ return parallel_test(vdev.features, getrange, fast_vringh);
|
|
|
|
|
|
if (posix_memalign(&__user_addr_min, PAGE_SIZE, USER_MEM) != 0)
|
|
|
abort();
|
|
@@ -483,7 +483,7 @@ int main(int argc, char *argv[])
|
|
|
|
|
|
/* Set up host side. */
|
|
|
vring_init(&vrh.vring, RINGSIZE, __user_addr_min, ALIGN);
|
|
|
- vringh_init_user(&vrh, vdev.features[0], RINGSIZE, true,
|
|
|
+ vringh_init_user(&vrh, vdev.features, RINGSIZE, true,
|
|
|
vrh.vring.desc, vrh.vring.avail, vrh.vring.used);
|
|
|
|
|
|
/* No descriptor to get yet... */
|
|
@@ -652,13 +652,13 @@ int main(int argc, char *argv[])
|
|
|
}
|
|
|
|
|
|
/* Test weird (but legal!) indirect. */
|
|
|
- if (vdev.features[0] & (1 << VIRTIO_RING_F_INDIRECT_DESC)) {
|
|
|
+ if (__virtio_test_bit(&vdev, VIRTIO_RING_F_INDIRECT_DESC)) {
|
|
|
char *data = __user_addr_max - USER_MEM/4;
|
|
|
struct vring_desc *d = __user_addr_max - USER_MEM/2;
|
|
|
struct vring vring;
|
|
|
|
|
|
/* Force creation of direct, which we modify. */
|
|
|
- vdev.features[0] &= ~(1 << VIRTIO_RING_F_INDIRECT_DESC);
|
|
|
+ __virtio_clear_bit(&vdev, VIRTIO_RING_F_INDIRECT_DESC);
|
|
|
vq = vring_new_virtqueue(0, RINGSIZE, ALIGN, &vdev, true,
|
|
|
__user_addr_min,
|
|
|
never_notify_host,
|