Lines Matching full:self

76 	self->device = vfio_pci_device_init(device_bdf, variant->iommu_mode);  in FIXTURE_SETUP()
77 self->iova_allocator = iova_allocator_init(self->device); in FIXTURE_SETUP()
79 driver = &self->device->driver; in FIXTURE_SETUP()
81 region_setup(self->device, self->iova_allocator, &self->memcpy_region, SZ_1G); in FIXTURE_SETUP()
82 region_setup(self->device, self->iova_allocator, &driver->region, SZ_2M); in FIXTURE_SETUP()
85 self->unmapped_iova = iova_allocator_alloc(self->iova_allocator, SZ_1G); in FIXTURE_SETUP()
87 vfio_pci_driver_init(self->device); in FIXTURE_SETUP()
88 self->msi_fd = self->device->msi_eventfds[driver->msi]; in FIXTURE_SETUP()
95 self->size = self->device->driver.max_memcpy_size; in FIXTURE_SETUP()
96 self->size = min(self->size, self->memcpy_region.size / 2); in FIXTURE_SETUP()
98 self->src = self->memcpy_region.vaddr; in FIXTURE_SETUP()
99 self->dst = self->src + self->size; in FIXTURE_SETUP()
101 self->src_iova = to_iova(self->device, self->src); in FIXTURE_SETUP()
102 self->dst_iova = to_iova(self->device, self->dst); in FIXTURE_SETUP()
107 struct vfio_pci_driver *driver = &self->device->driver; in FIXTURE_TEARDOWN()
109 vfio_pci_driver_remove(self->device); in FIXTURE_TEARDOWN()
111 region_teardown(self->device, &self->memcpy_region); in FIXTURE_TEARDOWN()
112 region_teardown(self->device, &driver->region); in FIXTURE_TEARDOWN()
114 iova_allocator_cleanup(self->iova_allocator); in FIXTURE_TEARDOWN()
115 vfio_pci_device_cleanup(self->device); in FIXTURE_TEARDOWN()
123 vfio_pci_driver_remove(self->device); in TEST_F()
124 vfio_pci_driver_init(self->device); in TEST_F()
130 fcntl_set_nonblock(self->msi_fd); in TEST_F()
132 memset(self->src, 'x', self->size); in TEST_F()
133 memset(self->dst, 'y', self->size); in TEST_F()
135 ASSERT_EQ(0, vfio_pci_driver_memcpy(self->device, in TEST_F()
136 self->src_iova, in TEST_F()
137 self->dst_iova, in TEST_F()
138 self->size)); in TEST_F()
140 ASSERT_EQ(0, memcmp(self->src, self->dst, self->size)); in TEST_F()
141 ASSERT_NO_MSI(self->msi_fd); in TEST_F()
146 fcntl_set_nonblock(self->msi_fd); in TEST_F()
152 vfio_pci_driver_memcpy(self->device, self->unmapped_iova, in TEST_F()
153 self->dst_iova, self->size); in TEST_F()
155 ASSERT_NO_MSI(self->msi_fd); in TEST_F()
160 fcntl_set_nonblock(self->msi_fd); in TEST_F()
166 vfio_pci_driver_memcpy(self->device, self->src_iova, in TEST_F()
167 self->unmapped_iova, self->size); in TEST_F()
169 ASSERT_NO_MSI(self->msi_fd); in TEST_F()
176 vfio_pci_driver_send_msi(self->device); in TEST_F()
177 ASSERT_EQ(8, read(self->msi_fd, &value, 8)); in TEST_F()
187 memset(self->src, 'x', self->size); in TEST_F()
188 memset(self->dst, 'y', self->size); in TEST_F()
190 ASSERT_EQ(0, vfio_pci_driver_memcpy(self->device, in TEST_F()
191 self->src_iova, in TEST_F()
192 self->dst_iova, in TEST_F()
193 self->size)); in TEST_F()
195 ASSERT_EQ(0, memcmp(self->src, self->dst, self->size)); in TEST_F()
197 vfio_pci_driver_memcpy(self->device, in TEST_F()
198 self->unmapped_iova, in TEST_F()
199 self->dst_iova, in TEST_F()
200 self->size); in TEST_F()
202 vfio_pci_driver_send_msi(self->device); in TEST_F()
203 ASSERT_EQ(8, read(self->msi_fd, &value, 8)); in TEST_F()
210 struct vfio_pci_driver *driver = &self->device->driver;
214 fcntl_set_nonblock(self->msi_fd);
222 count = min(total_size / self->size, driver->max_memcpy_count);
224 printf("Kicking off %lu memcpys of size 0x%lx\n", count, self->size);
225 vfio_pci_driver_memcpy_start(self->device,
226 self->src_iova,
227 self->dst_iova,
228 self->size, count);
230 ASSERT_EQ(0, vfio_pci_driver_memcpy_wait(self->device));
231 ASSERT_NO_MSI(self->msi_fd);