Lines Matching +full:enum +full:- +full:as +full:- +full:flags
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 /* Copyright (c) 2021-2022, NVIDIA CORPORATION & AFFILIATES.
16 * ioctl is passed in a structure pointer as the argument providing the size of
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.
35 * As well as additional errnos, within specific ioctls.
37 enum {
53 * struct iommu_destroy - ioctl(IOMMU_DESTROY)
66 * struct iommu_ioas_alloc - ioctl(IOMMU_IOAS_ALLOC)
68 * @flags: Must be 0
76 __u32 flags; member
82 * struct iommu_iova_range - ioctl(IOMMU_IOVA_RANGE)
94 * struct iommu_ioas_iova_ranges - ioctl(IOMMU_IOAS_IOVA_RANGES)
104 * the allowed_iovas[] will be filled in as space permits.
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)
150 * When an IOAS is first created the IOVA_RANGES will be maximally sized, and as
170 * enum iommufd_ioas_map_flags - Flags for map and copy
176 enum iommufd_ioas_map_flags {
183 * struct iommu_ioas_map - ioctl(IOMMU_IOAS_MAP)
185 * @flags: Combination of enum iommufd_ioas_map_flags
191 * then this must be provided as input.
203 __u32 flags; member
213 * struct iommu_ioas_copy - ioctl(IOMMU_IOAS_COPY)
215 * @flags: Combination of enum iommufd_ioas_map_flags
220 * set then this must be provided as input.
227 * This may be used to efficiently clone a subset of an IOAS to another, or as a
229 * establishing equivalent new mappings, as internal resources are shared, and
234 __u32 flags; member
244 * struct iommu_ioas_unmap - ioctl(IOMMU_IOAS_UNMAP)
264 * enum iommufd_option - ioctl(IOMMU_OPTION_RLIMIT_MODE) and
273 * PAGE_SIZE. This can be useful for benchmarking. This is a per-IOAS
276 enum iommufd_option {
282 * enum iommufd_option_ops - ioctl(IOMMU_OPTION_OP_SET) and
287 enum iommufd_option_ops {
293 * struct iommu_option - iommu option multiplexer
295 * @option_id: One of enum iommufd_option
296 * @op: One of enum iommufd_option_ops
316 * enum iommufd_vfio_ioas_op - IOMMU_VFIO_IOAS_* ioctls
321 enum iommufd_vfio_ioas_op {
328 * struct iommu_vfio_ioas - ioctl(IOMMU_VFIO_IOAS)
332 * @op: One of enum iommufd_vfio_ioas_op
340 * this ioctl. SET or CLEAR does not destroy any auto-created IOAS.
351 * struct iommu_hwpt_alloc - ioctl(IOMMU_HWPT_ALLOC)
353 * @flags: Must be 0
367 __u32 flags; member
376 * struct iommu_hw_info_vtd - Intel VT-d hardware information
378 * @flags: Must be 0
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
390 __u32 flags; member
397 * enum iommu_hw_info_type - IOMMU Hardware Info Types
400 * @IOMMU_HW_INFO_TYPE_INTEL_VTD: Intel VT-d iommu info type
402 enum iommu_hw_info_type {
408 * struct iommu_hw_info - ioctl(IOMMU_GET_HW_INFO)
410 * @flags: Must be 0
414 * @data_uptr: User pointer to a user-space buffer used by the kernel to fill
416 * @out_data_type: Output the iommu hardware info type as defined in the enum
424 * a guest stage-1 page table can be compatible with the physical iommu.
436 __u32 flags; member