Lines Matching full:fd

61 					MAP_SHARED, self->fd, offset))
95 ioctl(self->fd, \
100 static int _test_cmd_mock_domain(int fd, unsigned int ioas_id, __u32 *stdev_id, in _test_cmd_mock_domain() argument
111 ret = ioctl(fd, IOMMU_TEST_CMD, &cmd); in _test_cmd_mock_domain()
124 ASSERT_EQ(0, _test_cmd_mock_domain(self->fd, ioas_id, stdev_id, \
127 EXPECT_ERRNO(_errno, _test_cmd_mock_domain(self->fd, ioas_id, \
130 static int _test_cmd_mock_domain_flags(int fd, unsigned int ioas_id, in _test_cmd_mock_domain_flags() argument
142 ret = ioctl(fd, IOMMU_TEST_CMD, &cmd); in _test_cmd_mock_domain_flags()
155 ASSERT_EQ(0, _test_cmd_mock_domain_flags(self->fd, ioas_id, flags, \
159 _test_cmd_mock_domain_flags(self->fd, ioas_id, flags, \
162 static int _test_cmd_mock_domain_replace(int fd, __u32 stdev_id, __u32 pt_id, in _test_cmd_mock_domain_replace() argument
175 ret = ioctl(fd, IOMMU_TEST_CMD, &cmd); in _test_cmd_mock_domain_replace()
184 ASSERT_EQ(0, _test_cmd_mock_domain_replace(self->fd, stdev_id, pt_id, \
187 EXPECT_ERRNO(_errno, _test_cmd_mock_domain_replace(self->fd, stdev_id, \
190 static int _test_cmd_hwpt_alloc(int fd, __u32 device_id, __u32 pt_id, __u32 ft_id, in _test_cmd_hwpt_alloc() argument
206 ret = ioctl(fd, IOMMU_HWPT_ALLOC, &cmd); in _test_cmd_hwpt_alloc()
215 ASSERT_EQ(0, _test_cmd_hwpt_alloc(self->fd, device_id, pt_id, 0, flags, \
226 self->fd, device_id, pt_id, 0, flags, \
232 self->fd, device_id, pt_id, 0, flags, \
237 ASSERT_EQ(0, _test_cmd_hwpt_alloc(self->fd, device_id, pt_id, 0, flags, \
242 _test_cmd_hwpt_alloc(self->fd, device_id, pt_id, 0, flags, \
247 ASSERT_EQ(0, _test_cmd_hwpt_alloc(self->fd, device_id, pt_id, fault_id, \
253 _test_cmd_hwpt_alloc(self->fd, device_id, pt_id, fault_id, \
269 ioctl(self->fd, \
292 ASSERT_EQ(0, ioctl(self->fd, \
305 static int _test_cmd_hwpt_invalidate(int fd, __u32 hwpt_id, void *reqs, in _test_cmd_hwpt_invalidate() argument
317 int rc = ioctl(fd, IOMMU_HWPT_INVALIDATE, &cmd); in _test_cmd_hwpt_invalidate()
325 _test_cmd_hwpt_invalidate(self->fd, hwpt_id, reqs, \
332 self->fd, hwpt_id, reqs, \
336 static int _test_cmd_viommu_invalidate(int fd, __u32 viommu_id, void *reqs, in _test_cmd_viommu_invalidate() argument
348 int rc = ioctl(fd, IOMMU_HWPT_INVALIDATE, &cmd); in _test_cmd_viommu_invalidate()
356 _test_cmd_viommu_invalidate(self->fd, viommu, reqs, \
364 self->fd, viommu_id, reqs, \
368 static int _test_cmd_access_replace_ioas(int fd, __u32 access_id, in _test_cmd_access_replace_ioas() argument
379 ret = ioctl(fd, IOMMU_TEST_CMD, &cmd); in _test_cmd_access_replace_ioas()
385 ASSERT_EQ(0, _test_cmd_access_replace_ioas(self->fd, access_id, ioas_id))
387 static int _test_cmd_set_dirty_tracking(int fd, __u32 hwpt_id, bool enabled) in _test_cmd_set_dirty_tracking() argument
396 ret = ioctl(fd, IOMMU_HWPT_SET_DIRTY_TRACKING, &cmd); in _test_cmd_set_dirty_tracking()
402 ASSERT_EQ(0, _test_cmd_set_dirty_tracking(self->fd, hwpt_id, enabled))
404 static int _test_cmd_get_dirty_bitmap(int fd, __u32 hwpt_id, size_t length, in _test_cmd_get_dirty_bitmap() argument
419 ret = ioctl(fd, IOMMU_HWPT_GET_DIRTY_BITMAP, &cmd); in _test_cmd_get_dirty_bitmap()
425 #define test_cmd_get_dirty_bitmap(fd, hwpt_id, length, iova, page_size, \ argument
427 ASSERT_EQ(0, _test_cmd_get_dirty_bitmap(fd, hwpt_id, length, iova, \
430 static int _test_cmd_mock_domain_set_dirty(int fd, __u32 hwpt_id, size_t length, in _test_cmd_mock_domain_set_dirty() argument
447 ret = ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_DIRTY), &cmd); in _test_cmd_mock_domain_set_dirty()
455 #define test_cmd_mock_domain_set_dirty(fd, hwpt_id, length, iova, page_size, \ argument
458 _test_cmd_mock_domain_set_dirty(fd, hwpt_id, length, iova, \
461 static int _test_mock_dirty_bitmaps(int fd, __u32 hwpt_id, size_t length, in _test_mock_dirty_bitmaps() argument
477 test_cmd_mock_domain_set_dirty(fd, hwpt_id, length, iova, page_size, in _test_mock_dirty_bitmaps()
483 test_cmd_get_dirty_bitmap(fd, hwpt_id, length, iova, page_size, bitmap, in _test_mock_dirty_bitmaps()
495 test_cmd_get_dirty_bitmap(fd, hwpt_id, length, iova, page_size, bitmap, in _test_mock_dirty_bitmaps()
513 ASSERT_EQ(0, _test_mock_dirty_bitmaps(self->fd, hwpt_id, length, iova, \
517 static int _test_cmd_create_access(int fd, unsigned int ioas_id, in _test_cmd_create_access() argument
528 ret = ioctl(fd, IOMMU_TEST_CMD, &cmd); in _test_cmd_create_access()
535 ASSERT_EQ(0, _test_cmd_create_access(self->fd, ioas_id, access_id, \
545 static int _test_cmd_destroy_access_pages(int fd, unsigned int access_id, in _test_cmd_destroy_access_pages() argument
554 return ioctl(fd, IOMMU_TEST_CMD, &cmd); in _test_cmd_destroy_access_pages()
557 ASSERT_EQ(0, _test_cmd_destroy_access_pages(self->fd, access_id, \
561 self->fd, access_id, access_pages_id))
563 static int _test_cmd_get_dmabuf(int fd, size_t len, int *out_fd) in _test_cmd_get_dmabuf() argument
571 *out_fd = ioctl(fd, IOMMU_TEST_CMD, &cmd); in _test_cmd_get_dmabuf()
577 ASSERT_EQ(0, _test_cmd_get_dmabuf(self->fd, len, out_fd))
579 static int _test_cmd_revoke_dmabuf(int fd, int dmabuf_fd, bool revoked) in _test_cmd_revoke_dmabuf() argument
588 ret = ioctl(fd, IOMMU_TEST_CMD, &cmd); in _test_cmd_revoke_dmabuf()
594 ASSERT_EQ(0, _test_cmd_revoke_dmabuf(self->fd, dmabuf_fd, revoke))
596 static int _test_ioctl_destroy(int fd, unsigned int id) in _test_ioctl_destroy() argument
602 return ioctl(fd, IOMMU_DESTROY, &cmd); in _test_ioctl_destroy()
604 #define test_ioctl_destroy(id) ASSERT_EQ(0, _test_ioctl_destroy(self->fd, id))
606 static int _test_ioctl_ioas_alloc(int fd, __u32 *id) in _test_ioctl_ioas_alloc() argument
613 ret = ioctl(fd, IOMMU_IOAS_ALLOC, &cmd); in _test_ioctl_ioas_alloc()
621 ASSERT_EQ(0, _test_ioctl_ioas_alloc(self->fd, id)); \
625 static int _test_ioctl_ioas_map(int fd, unsigned int ioas_id, void *buffer, in _test_ioctl_ioas_map() argument
640 ret = ioctl(fd, IOMMU_IOAS_MAP, &cmd); in _test_ioctl_ioas_map()
645 ASSERT_EQ(0, _test_ioctl_ioas_map(self->fd, self->ioas_id, buffer, \
652 _test_ioctl_ioas_map(self->fd, self->ioas_id, buffer, \
658 ASSERT_EQ(0, _test_ioctl_ioas_map(self->fd, ioas_id, buffer, length, \
667 self->fd, self->ioas_id, buffer, length, \
679 self->fd, ioas_id, buffer, length, &__iova, \
690 self->fd, self->ioas_id, buffer, length, \
697 static int _test_ioctl_ioas_unmap(int fd, unsigned int ioas_id, uint64_t iova, in _test_ioctl_ioas_unmap() argument
708 ret = ioctl(fd, IOMMU_IOAS_UNMAP, &cmd); in _test_ioctl_ioas_unmap()
714 ASSERT_EQ(0, _test_ioctl_ioas_unmap(self->fd, self->ioas_id, iova, \
718 ASSERT_EQ(0, _test_ioctl_ioas_unmap(self->fd, ioas_id, iova, length, \
722 EXPECT_ERRNO(_errno, _test_ioctl_ioas_unmap(self->fd, self->ioas_id, \
725 static int _test_ioctl_ioas_map_file(int fd, unsigned int ioas_id, int mfd, in _test_ioctl_ioas_map_file() argument
733 .fd = mfd, in _test_ioctl_ioas_map_file()
742 ret = ioctl(fd, IOMMU_IOAS_MAP_FILE, &cmd); in _test_ioctl_ioas_map_file()
750 self->fd, self->ioas_id, mfd, start, length, iova_p, \
757 self->fd, self->ioas_id, mfd, start, length, iova_p, \
763 self->fd, ioas_id, mfd, start, length, iova_p, \
770 self->fd, self->ioas_id, mfd, start, \
777 static int _test_ioctl_set_temp_memory_limit(int fd, unsigned int limit) in _test_ioctl_set_temp_memory_limit() argument
785 return ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_SET_TEMP_MEMORY_LIMIT), in _test_ioctl_set_temp_memory_limit()
790 ASSERT_EQ(0, _test_ioctl_set_temp_memory_limit(self->fd, limit))
795 static void teardown_iommufd(int fd, struct __test_metadata *_metadata) in teardown_iommufd() argument
804 if (fd == -1) in teardown_iommufd()
807 EXPECT_EQ(0, close(fd)); in teardown_iommufd()
809 fd = open("/dev/iommu", O_RDWR); in teardown_iommufd()
810 EXPECT_NE(-1, fd); in teardown_iommufd()
811 EXPECT_EQ(0, ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_MD_CHECK_REFS), in teardown_iommufd()
813 EXPECT_EQ(0, close(fd)); in teardown_iommufd()
825 static int _test_cmd_get_hw_info(int fd, __u32 device_id, __u32 data_type, in _test_cmd_get_hw_info() argument
843 ret = ioctl(fd, IOMMU_GET_HW_INFO, &cmd); in _test_cmd_get_hw_info()
886 ASSERT_EQ(0, _test_cmd_get_hw_info(self->fd, device_id, data_type, \
891 _test_cmd_get_hw_info(self->fd, device_id, data_type, \
895 ASSERT_EQ(0, _test_cmd_get_hw_info(self->fd, device_id, \
900 ASSERT_EQ(0, _test_cmd_get_hw_info(self->fd, device_id, \
904 static int _test_ioctl_fault_alloc(int fd, __u32 *fault_id, __u32 *fault_fd) in _test_ioctl_fault_alloc() argument
911 ret = ioctl(fd, IOMMU_FAULT_QUEUE_ALLOC, &cmd); in _test_ioctl_fault_alloc()
921 ASSERT_EQ(0, _test_ioctl_fault_alloc(self->fd, fault_id, \
927 static int _test_cmd_trigger_iopf(int fd, __u32 device_id, __u32 pasid, in _test_cmd_trigger_iopf() argument
948 ret = ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_TRIGGER_IOPF), &trigger_iopf_cmd); in _test_cmd_trigger_iopf()
966 ASSERT_EQ(0, _test_cmd_trigger_iopf(self->fd, device_id, 0x1, fault_fd))
968 ASSERT_EQ(0, _test_cmd_trigger_iopf(self->fd, device_id, \
971 static int _test_cmd_viommu_alloc(int fd, __u32 device_id, __u32 hwpt_id, in _test_cmd_viommu_alloc() argument
986 ret = ioctl(fd, IOMMU_VIOMMU_ALLOC, &cmd); in _test_cmd_viommu_alloc()
996 ASSERT_EQ(0, _test_cmd_viommu_alloc(self->fd, device_id, hwpt_id, 0, \
1001 _test_cmd_viommu_alloc(self->fd, device_id, hwpt_id, 0, \
1004 static int _test_cmd_vdevice_alloc(int fd, __u32 viommu_id, __u32 idev_id, in _test_cmd_vdevice_alloc() argument
1015 ret = ioctl(fd, IOMMU_VDEVICE_ALLOC, &cmd); in _test_cmd_vdevice_alloc()
1024 ASSERT_EQ(0, _test_cmd_vdevice_alloc(self->fd, viommu_id, idev_id, \
1028 _test_cmd_vdevice_alloc(self->fd, viommu_id, idev_id, \
1031 static int _test_cmd_hw_queue_alloc(int fd, __u32 viommu_id, __u32 type, in _test_cmd_hw_queue_alloc() argument
1045 ret = ioctl(fd, IOMMU_HW_QUEUE_ALLOC, &cmd); in _test_cmd_hw_queue_alloc()
1054 ASSERT_EQ(0, _test_cmd_hw_queue_alloc(self->fd, viommu_id, type, idx, \
1059 _test_cmd_hw_queue_alloc(self->fd, viommu_id, type, idx, \
1062 static int _test_cmd_veventq_alloc(int fd, __u32 viommu_id, __u32 type, in _test_cmd_veventq_alloc() argument
1073 ret = ioctl(fd, IOMMU_VEVENTQ_ALLOC, &cmd); in _test_cmd_veventq_alloc()
1084 ASSERT_EQ(0, _test_cmd_veventq_alloc(self->fd, viommu_id, type, \
1089 _test_cmd_veventq_alloc(self->fd, viommu_id, type, \
1092 static int _test_cmd_trigger_vevents(int fd, __u32 dev_id, __u32 nvevents) in _test_cmd_trigger_vevents() argument
1103 if (ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_TRIGGER_VEVENT), in _test_cmd_trigger_vevents()
1111 ASSERT_EQ(0, _test_cmd_trigger_vevents(self->fd, dev_id, nvevents))
1113 static int _test_cmd_read_vevents(int fd, __u32 event_fd, __u32 nvevents, in _test_cmd_read_vevents() argument
1116 struct pollfd pollfd = { .fd = event_fd, .events = POLLIN }; in _test_cmd_read_vevents()
1167 ASSERT_EQ(0, _test_cmd_read_vevents(self->fd, event_fd, nvevents, \
1171 _test_cmd_read_vevents(self->fd, event_fd, nvevents, \
1174 static int _test_cmd_pasid_attach(int fd, __u32 stdev_id, __u32 pasid, in _test_cmd_pasid_attach() argument
1187 return ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_PASID_ATTACH), in _test_cmd_pasid_attach()
1192 ASSERT_EQ(0, _test_cmd_pasid_attach(self->fd, self->stdev_id, \
1197 _test_cmd_pasid_attach(self->fd, self->stdev_id, \
1200 static int _test_cmd_pasid_replace(int fd, __u32 stdev_id, __u32 pasid, in _test_cmd_pasid_replace() argument
1213 return ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_PASID_REPLACE), in _test_cmd_pasid_replace()
1218 ASSERT_EQ(0, _test_cmd_pasid_replace(self->fd, self->stdev_id, \
1223 _test_cmd_pasid_replace(self->fd, self->stdev_id, \
1226 static int _test_cmd_pasid_detach(int fd, __u32 stdev_id, __u32 pasid) in _test_cmd_pasid_detach() argument
1237 return ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_PASID_DETACH), in _test_cmd_pasid_detach()
1242 ASSERT_EQ(0, _test_cmd_pasid_detach(self->fd, self->stdev_id, pasid))
1244 static int test_cmd_pasid_check_hwpt(int fd, __u32 stdev_id, __u32 pasid, in test_cmd_pasid_check_hwpt() argument
1257 return ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_PASID_CHECK_HWPT), in test_cmd_pasid_check_hwpt()