Lines Matching full:fd
86 ioctl(self->fd, \
91 static int _test_cmd_mock_domain(int fd, unsigned int ioas_id, __u32 *stdev_id, in _test_cmd_mock_domain() argument
102 ret = ioctl(fd, IOMMU_TEST_CMD, &cmd); in _test_cmd_mock_domain()
115 ASSERT_EQ(0, _test_cmd_mock_domain(self->fd, ioas_id, stdev_id, \
118 EXPECT_ERRNO(_errno, _test_cmd_mock_domain(self->fd, ioas_id, \
121 static int _test_cmd_mock_domain_flags(int fd, unsigned int ioas_id, in _test_cmd_mock_domain_flags() argument
133 ret = ioctl(fd, IOMMU_TEST_CMD, &cmd); in _test_cmd_mock_domain_flags()
146 ASSERT_EQ(0, _test_cmd_mock_domain_flags(self->fd, ioas_id, flags, \
150 _test_cmd_mock_domain_flags(self->fd, ioas_id, flags, \
153 static int _test_cmd_mock_domain_replace(int fd, __u32 stdev_id, __u32 pt_id, in _test_cmd_mock_domain_replace() argument
166 ret = ioctl(fd, IOMMU_TEST_CMD, &cmd); in _test_cmd_mock_domain_replace()
175 ASSERT_EQ(0, _test_cmd_mock_domain_replace(self->fd, stdev_id, pt_id, \
178 EXPECT_ERRNO(_errno, _test_cmd_mock_domain_replace(self->fd, stdev_id, \
181 static int _test_cmd_hwpt_alloc(int fd, __u32 device_id, __u32 pt_id, __u32 ft_id, in _test_cmd_hwpt_alloc() argument
197 ret = ioctl(fd, IOMMU_HWPT_ALLOC, &cmd); in _test_cmd_hwpt_alloc()
206 ASSERT_EQ(0, _test_cmd_hwpt_alloc(self->fd, device_id, pt_id, 0, flags, \
211 self->fd, device_id, pt_id, 0, flags, \
216 ASSERT_EQ(0, _test_cmd_hwpt_alloc(self->fd, device_id, pt_id, 0, flags, \
221 _test_cmd_hwpt_alloc(self->fd, device_id, pt_id, 0, flags, \
226 ASSERT_EQ(0, _test_cmd_hwpt_alloc(self->fd, device_id, pt_id, fault_id, \
232 _test_cmd_hwpt_alloc(self->fd, device_id, pt_id, fault_id, \
248 ioctl(self->fd, \
271 ASSERT_EQ(0, ioctl(self->fd, \
284 static int _test_cmd_hwpt_invalidate(int fd, __u32 hwpt_id, void *reqs, in _test_cmd_hwpt_invalidate() argument
296 int rc = ioctl(fd, IOMMU_HWPT_INVALIDATE, &cmd); in _test_cmd_hwpt_invalidate()
304 _test_cmd_hwpt_invalidate(self->fd, hwpt_id, reqs, \
311 self->fd, hwpt_id, reqs, \
315 static int _test_cmd_viommu_invalidate(int fd, __u32 viommu_id, void *reqs, in _test_cmd_viommu_invalidate() argument
327 int rc = ioctl(fd, IOMMU_HWPT_INVALIDATE, &cmd); in _test_cmd_viommu_invalidate()
335 _test_cmd_viommu_invalidate(self->fd, viommu, reqs, \
343 self->fd, viommu_id, reqs, \
347 static int _test_cmd_access_replace_ioas(int fd, __u32 access_id, in _test_cmd_access_replace_ioas() argument
358 ret = ioctl(fd, IOMMU_TEST_CMD, &cmd); in _test_cmd_access_replace_ioas()
364 ASSERT_EQ(0, _test_cmd_access_replace_ioas(self->fd, access_id, ioas_id))
366 static int _test_cmd_set_dirty_tracking(int fd, __u32 hwpt_id, bool enabled) in _test_cmd_set_dirty_tracking() argument
375 ret = ioctl(fd, IOMMU_HWPT_SET_DIRTY_TRACKING, &cmd); in _test_cmd_set_dirty_tracking()
381 ASSERT_EQ(0, _test_cmd_set_dirty_tracking(self->fd, hwpt_id, enabled))
383 static int _test_cmd_get_dirty_bitmap(int fd, __u32 hwpt_id, size_t length, in _test_cmd_get_dirty_bitmap() argument
398 ret = ioctl(fd, IOMMU_HWPT_GET_DIRTY_BITMAP, &cmd); in _test_cmd_get_dirty_bitmap()
404 #define test_cmd_get_dirty_bitmap(fd, hwpt_id, length, iova, page_size, \ argument
406 ASSERT_EQ(0, _test_cmd_get_dirty_bitmap(fd, hwpt_id, length, iova, \
409 static int _test_cmd_mock_domain_set_dirty(int fd, __u32 hwpt_id, size_t length, in _test_cmd_mock_domain_set_dirty() argument
426 ret = ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_DIRTY), &cmd); in _test_cmd_mock_domain_set_dirty()
434 #define test_cmd_mock_domain_set_dirty(fd, hwpt_id, length, iova, page_size, \ argument
437 _test_cmd_mock_domain_set_dirty(fd, hwpt_id, length, iova, \
440 static int _test_mock_dirty_bitmaps(int fd, __u32 hwpt_id, size_t length, in _test_mock_dirty_bitmaps() argument
456 test_cmd_mock_domain_set_dirty(fd, hwpt_id, length, iova, page_size, in _test_mock_dirty_bitmaps()
462 test_cmd_get_dirty_bitmap(fd, hwpt_id, length, iova, page_size, bitmap, in _test_mock_dirty_bitmaps()
474 test_cmd_get_dirty_bitmap(fd, hwpt_id, length, iova, page_size, bitmap, in _test_mock_dirty_bitmaps()
492 ASSERT_EQ(0, _test_mock_dirty_bitmaps(self->fd, hwpt_id, length, iova, \
496 static int _test_cmd_create_access(int fd, unsigned int ioas_id, in _test_cmd_create_access() argument
507 ret = ioctl(fd, IOMMU_TEST_CMD, &cmd); in _test_cmd_create_access()
514 ASSERT_EQ(0, _test_cmd_create_access(self->fd, ioas_id, access_id, \
524 static int _test_cmd_destroy_access_pages(int fd, unsigned int access_id, in _test_cmd_destroy_access_pages() argument
533 return ioctl(fd, IOMMU_TEST_CMD, &cmd); in _test_cmd_destroy_access_pages()
536 ASSERT_EQ(0, _test_cmd_destroy_access_pages(self->fd, access_id, \
540 self->fd, access_id, access_pages_id))
542 static int _test_ioctl_destroy(int fd, unsigned int id) in _test_ioctl_destroy() argument
548 return ioctl(fd, IOMMU_DESTROY, &cmd); in _test_ioctl_destroy()
550 #define test_ioctl_destroy(id) ASSERT_EQ(0, _test_ioctl_destroy(self->fd, id))
552 static int _test_ioctl_ioas_alloc(int fd, __u32 *id) in _test_ioctl_ioas_alloc() argument
559 ret = ioctl(fd, IOMMU_IOAS_ALLOC, &cmd); in _test_ioctl_ioas_alloc()
567 ASSERT_EQ(0, _test_ioctl_ioas_alloc(self->fd, id)); \
571 static int _test_ioctl_ioas_map(int fd, unsigned int ioas_id, void *buffer, in _test_ioctl_ioas_map() argument
586 ret = ioctl(fd, IOMMU_IOAS_MAP, &cmd); in _test_ioctl_ioas_map()
591 ASSERT_EQ(0, _test_ioctl_ioas_map(self->fd, self->ioas_id, buffer, \
598 _test_ioctl_ioas_map(self->fd, self->ioas_id, buffer, \
604 ASSERT_EQ(0, _test_ioctl_ioas_map(self->fd, ioas_id, buffer, length, \
613 self->fd, self->ioas_id, buffer, length, \
625 self->fd, ioas_id, buffer, length, &__iova, \
636 self->fd, self->ioas_id, buffer, length, \
643 static int _test_ioctl_ioas_unmap(int fd, unsigned int ioas_id, uint64_t iova, in _test_ioctl_ioas_unmap() argument
654 ret = ioctl(fd, IOMMU_IOAS_UNMAP, &cmd); in _test_ioctl_ioas_unmap()
660 ASSERT_EQ(0, _test_ioctl_ioas_unmap(self->fd, self->ioas_id, iova, \
664 ASSERT_EQ(0, _test_ioctl_ioas_unmap(self->fd, ioas_id, iova, length, \
668 EXPECT_ERRNO(_errno, _test_ioctl_ioas_unmap(self->fd, self->ioas_id, \
671 static int _test_ioctl_ioas_map_file(int fd, unsigned int ioas_id, int mfd, in _test_ioctl_ioas_map_file() argument
679 .fd = mfd, in _test_ioctl_ioas_map_file()
688 ret = ioctl(fd, IOMMU_IOAS_MAP_FILE, &cmd); in _test_ioctl_ioas_map_file()
696 self->fd, self->ioas_id, mfd, start, length, iova_p, \
703 self->fd, self->ioas_id, mfd, start, length, iova_p, \
709 self->fd, ioas_id, mfd, start, length, iova_p, \
712 static int _test_ioctl_set_temp_memory_limit(int fd, unsigned int limit) in _test_ioctl_set_temp_memory_limit() argument
720 return ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_SET_TEMP_MEMORY_LIMIT), in _test_ioctl_set_temp_memory_limit()
725 ASSERT_EQ(0, _test_ioctl_set_temp_memory_limit(self->fd, limit))
730 static void teardown_iommufd(int fd, struct __test_metadata *_metadata) in teardown_iommufd() argument
739 if (fd == -1) in teardown_iommufd()
742 EXPECT_EQ(0, close(fd)); in teardown_iommufd()
744 fd = open("/dev/iommu", O_RDWR); in teardown_iommufd()
745 EXPECT_NE(-1, fd); in teardown_iommufd()
746 EXPECT_EQ(0, ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_MD_CHECK_REFS), in teardown_iommufd()
748 EXPECT_EQ(0, close(fd)); in teardown_iommufd()
760 static int _test_cmd_get_hw_info(int fd, __u32 device_id, void *data, in _test_cmd_get_hw_info() argument
774 ret = ioctl(fd, IOMMU_GET_HW_INFO, &cmd); in _test_cmd_get_hw_info()
817 ASSERT_EQ(0, _test_cmd_get_hw_info(self->fd, device_id, data, \
821 EXPECT_ERRNO(_errno, _test_cmd_get_hw_info(self->fd, device_id, data, \
825 ASSERT_EQ(0, _test_cmd_get_hw_info(self->fd, device_id, NULL, \
829 ASSERT_EQ(0, _test_cmd_get_hw_info(self->fd, device_id, NULL, \
832 static int _test_ioctl_fault_alloc(int fd, __u32 *fault_id, __u32 *fault_fd) in _test_ioctl_fault_alloc() argument
839 ret = ioctl(fd, IOMMU_FAULT_QUEUE_ALLOC, &cmd); in _test_ioctl_fault_alloc()
849 ASSERT_EQ(0, _test_ioctl_fault_alloc(self->fd, fault_id, \
855 static int _test_cmd_trigger_iopf(int fd, __u32 device_id, __u32 pasid, in _test_cmd_trigger_iopf() argument
876 ret = ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_TRIGGER_IOPF), &trigger_iopf_cmd); in _test_cmd_trigger_iopf()
894 ASSERT_EQ(0, _test_cmd_trigger_iopf(self->fd, device_id, 0x1, fault_fd))
896 ASSERT_EQ(0, _test_cmd_trigger_iopf(self->fd, device_id, \
899 static int _test_cmd_viommu_alloc(int fd, __u32 device_id, __u32 hwpt_id, in _test_cmd_viommu_alloc() argument
911 ret = ioctl(fd, IOMMU_VIOMMU_ALLOC, &cmd); in _test_cmd_viommu_alloc()
920 ASSERT_EQ(0, _test_cmd_viommu_alloc(self->fd, device_id, hwpt_id, \
924 _test_cmd_viommu_alloc(self->fd, device_id, hwpt_id, \
927 static int _test_cmd_vdevice_alloc(int fd, __u32 viommu_id, __u32 idev_id, in _test_cmd_vdevice_alloc() argument
938 ret = ioctl(fd, IOMMU_VDEVICE_ALLOC, &cmd); in _test_cmd_vdevice_alloc()
947 ASSERT_EQ(0, _test_cmd_vdevice_alloc(self->fd, viommu_id, idev_id, \
951 _test_cmd_vdevice_alloc(self->fd, viommu_id, idev_id, \
954 static int _test_cmd_veventq_alloc(int fd, __u32 viommu_id, __u32 type, in _test_cmd_veventq_alloc() argument
965 ret = ioctl(fd, IOMMU_VEVENTQ_ALLOC, &cmd); in _test_cmd_veventq_alloc()
976 ASSERT_EQ(0, _test_cmd_veventq_alloc(self->fd, viommu_id, type, \
981 _test_cmd_veventq_alloc(self->fd, viommu_id, type, \
984 static int _test_cmd_trigger_vevents(int fd, __u32 dev_id, __u32 nvevents) in _test_cmd_trigger_vevents() argument
996 ret = ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_TRIGGER_VEVENT), in _test_cmd_trigger_vevents()
1005 ASSERT_EQ(0, _test_cmd_trigger_vevents(self->fd, dev_id, nvevents))
1007 static int _test_cmd_read_vevents(int fd, __u32 event_fd, __u32 nvevents, in _test_cmd_read_vevents() argument
1010 struct pollfd pollfd = { .fd = event_fd, .events = POLLIN }; in _test_cmd_read_vevents()
1061 ASSERT_EQ(0, _test_cmd_read_vevents(self->fd, event_fd, nvevents, \
1065 _test_cmd_read_vevents(self->fd, event_fd, nvevents, \
1068 static int _test_cmd_pasid_attach(int fd, __u32 stdev_id, __u32 pasid, in _test_cmd_pasid_attach() argument
1081 return ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_PASID_ATTACH), in _test_cmd_pasid_attach()
1086 ASSERT_EQ(0, _test_cmd_pasid_attach(self->fd, self->stdev_id, \
1091 _test_cmd_pasid_attach(self->fd, self->stdev_id, \
1094 static int _test_cmd_pasid_replace(int fd, __u32 stdev_id, __u32 pasid, in _test_cmd_pasid_replace() argument
1107 return ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_PASID_REPLACE), in _test_cmd_pasid_replace()
1112 ASSERT_EQ(0, _test_cmd_pasid_replace(self->fd, self->stdev_id, \
1117 _test_cmd_pasid_replace(self->fd, self->stdev_id, \
1120 static int _test_cmd_pasid_detach(int fd, __u32 stdev_id, __u32 pasid) in _test_cmd_pasid_detach() argument
1131 return ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_PASID_DETACH), in _test_cmd_pasid_detach()
1136 ASSERT_EQ(0, _test_cmd_pasid_detach(self->fd, self->stdev_id, pasid))
1138 static int test_cmd_pasid_check_hwpt(int fd, __u32 stdev_id, __u32 pasid, in test_cmd_pasid_check_hwpt() argument
1151 return ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_PASID_CHECK_HWPT), in test_cmd_pasid_check_hwpt()