Lines Matching +full:data +full:- +full:mapping
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 /* Copyright (c) 2021-2022, NVIDIA CORPORATION & AFFILIATES.
23 * - ENOTTY: The IOCTL number itself is not supported at all
24 * - E2BIG: The IOCTL number is supported, but the provided structure has
25 * non-zero in a part the kernel does not understand.
26 * - EOPNOTSUPP: The IOCTL number is supported, and the structure is
29 * - EINVAL: Everything about the IOCTL was understood, but a field is not
31 * - ENOENT: An ID or IOVA provided does not exist.
32 * - ENOMEM: Out of memory.
33 * - EOVERFLOW: Mathematics overflowed.
53 * struct iommu_destroy - ioctl(IOMMU_DESTROY)
66 * struct iommu_ioas_alloc - ioctl(IOMMU_IOAS_ALLOC)
72 * to memory mapping.
82 * struct iommu_iova_range - ioctl(IOMMU_IOVA_RANGE)
94 * struct iommu_ioas_iova_ranges - ioctl(IOMMU_IOAS_IOVA_RANGES)
100 * @out_iova_alignment: Minimum alignment required for mapping IOVA
102 * Query an IOAS for ranges of allowed IOVAs. Mapping IOVA outside these ranges
111 * for mapping.
114 * the total number of iovas filled in. The ioctl will return -EMSGSIZE and set
116 * caller should allocate a larger output array and re-issue the ioctl.
138 * struct iommu_ioas_allow_iovas - ioctl(IOMMU_IOAS_ALLOW_IOVAS)
170 * enum iommufd_ioas_map_flags - Flags for map and copy
172 * IOVA to place the mapping at
173 * @IOMMU_IOAS_MAP_WRITEABLE: DMA is allowed to write to this mapping
174 * @IOMMU_IOAS_MAP_READABLE: DMA is allowed to read from this mapping
183 * struct iommu_ioas_map - ioctl(IOMMU_IOAS_MAP)
186 * @ioas_id: IOAS ID to change the mapping of
188 * @user_va: Userspace pointer to start mapping from
190 * @iova: IOVA the mapping was placed at. If IOMMU_IOAS_MAP_FIXED_IOVA is set
193 * Set an IOVA mapping from a user pointer. If FIXED_IOVA is specified then the
194 * mapping will be established at iova, otherwise a suitable location based on
213 * struct iommu_ioas_copy - ioctl(IOMMU_IOAS_COPY)
216 * @dst_ioas_id: IOAS ID to change the mapping of
219 * @dst_iova: IOVA the mapping was placed at. If IOMMU_IOAS_MAP_FIXED_IOVA is
223 * Copy an already existing mapping from src_ioas_id and establish it in
228 * kind of 'cache' to speed up mapping. Copy has an efficiency advantage over
244 * struct iommu_ioas_unmap - ioctl(IOMMU_IOAS_UNMAP)
246 * @ioas_id: IOAS ID to change the mapping of
264 * enum iommufd_option - ioctl(IOMMU_OPTION_RLIMIT_MODE) and
273 * PAGE_SIZE. This can be useful for benchmarking. This is a per-IOAS
282 * enum iommufd_option_ops - ioctl(IOMMU_OPTION_OP_SET) and
293 * struct iommu_option - iommu option multiplexer
316 * enum iommufd_vfio_ioas_op - IOMMU_VFIO_IOAS_* ioctls
328 * struct iommu_vfio_ioas - ioctl(IOMMU_VFIO_IOAS)
340 * this ioctl. SET or CLEAR does not destroy any auto-created IOAS.
351 * struct iommu_hwpt_alloc - ioctl(IOMMU_HWPT_ALLOC)
376 * struct iommu_hw_info_vtd - Intel VT-d hardware information
381 * @cap_reg: Value of Intel VT-d capability register defined in VT-d spec
383 * @ecap_reg: Value of Intel VT-d capability register defined in VT-d spec
386 * User needs to understand the Intel VT-d specification to decode the
397 * enum iommu_hw_info_type - IOMMU Hardware Info Types
400 * @IOMMU_HW_INFO_TYPE_INTEL_VTD: Intel VT-d iommu info type
408 * struct iommu_hw_info - ioctl(IOMMU_GET_HW_INFO)
413 * data that kernel supports
414 * @data_uptr: User pointer to a user-space buffer used by the kernel to fill
415 * the iommu type specific hardware information data
420 * Query an iommu type specific hardware information data from an iommu behind
421 * a given device that has been bound to iommufd. This hardware info data will
424 * a guest stage-1 page table can be compatible with the physical iommu.
426 * To capture an iommu type specific hardware information data, @data_uptr and
428 * user buffer is larger than the data that kernel has. Otherwise, kernel only
431 * @out_data_type will be filled to decode the data filled in the buffer