xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/iommufd.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI_IOMMUFD_H
8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_IOMMUFD_H
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
10*8d67ca89SAndroid Build Coastguard Worker #include <linux/ioctl.h>
11*8d67ca89SAndroid Build Coastguard Worker #define IOMMUFD_TYPE (';')
12*8d67ca89SAndroid Build Coastguard Worker enum {
13*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_CMD_BASE = 0x80,
14*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_CMD_DESTROY = IOMMUFD_CMD_BASE,
15*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_CMD_IOAS_ALLOC = 0x81,
16*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_CMD_IOAS_ALLOW_IOVAS = 0x82,
17*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_CMD_IOAS_COPY = 0x83,
18*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_CMD_IOAS_IOVA_RANGES = 0x84,
19*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_CMD_IOAS_MAP = 0x85,
20*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_CMD_IOAS_UNMAP = 0x86,
21*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_CMD_OPTION = 0x87,
22*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_CMD_VFIO_IOAS = 0x88,
23*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_CMD_HWPT_ALLOC = 0x89,
24*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_CMD_GET_HW_INFO = 0x8a,
25*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_CMD_HWPT_SET_DIRTY_TRACKING = 0x8b,
26*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_CMD_HWPT_GET_DIRTY_BITMAP = 0x8c,
27*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_CMD_HWPT_INVALIDATE = 0x8d,
28*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_CMD_FAULT_QUEUE_ALLOC = 0x8e,
29*8d67ca89SAndroid Build Coastguard Worker };
30*8d67ca89SAndroid Build Coastguard Worker struct iommu_destroy {
31*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
32*8d67ca89SAndroid Build Coastguard Worker   __u32 id;
33*8d67ca89SAndroid Build Coastguard Worker };
34*8d67ca89SAndroid Build Coastguard Worker #define IOMMU_DESTROY _IO(IOMMUFD_TYPE, IOMMUFD_CMD_DESTROY)
35*8d67ca89SAndroid Build Coastguard Worker struct iommu_ioas_alloc {
36*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
37*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
38*8d67ca89SAndroid Build Coastguard Worker   __u32 out_ioas_id;
39*8d67ca89SAndroid Build Coastguard Worker };
40*8d67ca89SAndroid Build Coastguard Worker #define IOMMU_IOAS_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_ALLOC)
41*8d67ca89SAndroid Build Coastguard Worker struct iommu_iova_range {
42*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 start;
43*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 last;
44*8d67ca89SAndroid Build Coastguard Worker };
45*8d67ca89SAndroid Build Coastguard Worker struct iommu_ioas_iova_ranges {
46*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
47*8d67ca89SAndroid Build Coastguard Worker   __u32 ioas_id;
48*8d67ca89SAndroid Build Coastguard Worker   __u32 num_iovas;
49*8d67ca89SAndroid Build Coastguard Worker   __u32 __reserved;
50*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 allowed_iovas;
51*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 out_iova_alignment;
52*8d67ca89SAndroid Build Coastguard Worker };
53*8d67ca89SAndroid Build Coastguard Worker #define IOMMU_IOAS_IOVA_RANGES _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_IOVA_RANGES)
54*8d67ca89SAndroid Build Coastguard Worker struct iommu_ioas_allow_iovas {
55*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
56*8d67ca89SAndroid Build Coastguard Worker   __u32 ioas_id;
57*8d67ca89SAndroid Build Coastguard Worker   __u32 num_iovas;
58*8d67ca89SAndroid Build Coastguard Worker   __u32 __reserved;
59*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 allowed_iovas;
60*8d67ca89SAndroid Build Coastguard Worker };
61*8d67ca89SAndroid Build Coastguard Worker #define IOMMU_IOAS_ALLOW_IOVAS _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_ALLOW_IOVAS)
62*8d67ca89SAndroid Build Coastguard Worker enum iommufd_ioas_map_flags {
63*8d67ca89SAndroid Build Coastguard Worker   IOMMU_IOAS_MAP_FIXED_IOVA = 1 << 0,
64*8d67ca89SAndroid Build Coastguard Worker   IOMMU_IOAS_MAP_WRITEABLE = 1 << 1,
65*8d67ca89SAndroid Build Coastguard Worker   IOMMU_IOAS_MAP_READABLE = 1 << 2,
66*8d67ca89SAndroid Build Coastguard Worker };
67*8d67ca89SAndroid Build Coastguard Worker struct iommu_ioas_map {
68*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
69*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
70*8d67ca89SAndroid Build Coastguard Worker   __u32 ioas_id;
71*8d67ca89SAndroid Build Coastguard Worker   __u32 __reserved;
72*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 user_va;
73*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 length;
74*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 iova;
75*8d67ca89SAndroid Build Coastguard Worker };
76*8d67ca89SAndroid Build Coastguard Worker #define IOMMU_IOAS_MAP _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_MAP)
77*8d67ca89SAndroid Build Coastguard Worker struct iommu_ioas_copy {
78*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
79*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
80*8d67ca89SAndroid Build Coastguard Worker   __u32 dst_ioas_id;
81*8d67ca89SAndroid Build Coastguard Worker   __u32 src_ioas_id;
82*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 length;
83*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 dst_iova;
84*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 src_iova;
85*8d67ca89SAndroid Build Coastguard Worker };
86*8d67ca89SAndroid Build Coastguard Worker #define IOMMU_IOAS_COPY _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_COPY)
87*8d67ca89SAndroid Build Coastguard Worker struct iommu_ioas_unmap {
88*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
89*8d67ca89SAndroid Build Coastguard Worker   __u32 ioas_id;
90*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 iova;
91*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 length;
92*8d67ca89SAndroid Build Coastguard Worker };
93*8d67ca89SAndroid Build Coastguard Worker #define IOMMU_IOAS_UNMAP _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_UNMAP)
94*8d67ca89SAndroid Build Coastguard Worker enum iommufd_option {
95*8d67ca89SAndroid Build Coastguard Worker   IOMMU_OPTION_RLIMIT_MODE = 0,
96*8d67ca89SAndroid Build Coastguard Worker   IOMMU_OPTION_HUGE_PAGES = 1,
97*8d67ca89SAndroid Build Coastguard Worker };
98*8d67ca89SAndroid Build Coastguard Worker enum iommufd_option_ops {
99*8d67ca89SAndroid Build Coastguard Worker   IOMMU_OPTION_OP_SET = 0,
100*8d67ca89SAndroid Build Coastguard Worker   IOMMU_OPTION_OP_GET = 1,
101*8d67ca89SAndroid Build Coastguard Worker };
102*8d67ca89SAndroid Build Coastguard Worker struct iommu_option {
103*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
104*8d67ca89SAndroid Build Coastguard Worker   __u32 option_id;
105*8d67ca89SAndroid Build Coastguard Worker   __u16 op;
106*8d67ca89SAndroid Build Coastguard Worker   __u16 __reserved;
107*8d67ca89SAndroid Build Coastguard Worker   __u32 object_id;
108*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 val64;
109*8d67ca89SAndroid Build Coastguard Worker };
110*8d67ca89SAndroid Build Coastguard Worker #define IOMMU_OPTION _IO(IOMMUFD_TYPE, IOMMUFD_CMD_OPTION)
111*8d67ca89SAndroid Build Coastguard Worker enum iommufd_vfio_ioas_op {
112*8d67ca89SAndroid Build Coastguard Worker   IOMMU_VFIO_IOAS_GET = 0,
113*8d67ca89SAndroid Build Coastguard Worker   IOMMU_VFIO_IOAS_SET = 1,
114*8d67ca89SAndroid Build Coastguard Worker   IOMMU_VFIO_IOAS_CLEAR = 2,
115*8d67ca89SAndroid Build Coastguard Worker };
116*8d67ca89SAndroid Build Coastguard Worker struct iommu_vfio_ioas {
117*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
118*8d67ca89SAndroid Build Coastguard Worker   __u32 ioas_id;
119*8d67ca89SAndroid Build Coastguard Worker   __u16 op;
120*8d67ca89SAndroid Build Coastguard Worker   __u16 __reserved;
121*8d67ca89SAndroid Build Coastguard Worker };
122*8d67ca89SAndroid Build Coastguard Worker #define IOMMU_VFIO_IOAS _IO(IOMMUFD_TYPE, IOMMUFD_CMD_VFIO_IOAS)
123*8d67ca89SAndroid Build Coastguard Worker enum iommufd_hwpt_alloc_flags {
124*8d67ca89SAndroid Build Coastguard Worker   IOMMU_HWPT_ALLOC_NEST_PARENT = 1 << 0,
125*8d67ca89SAndroid Build Coastguard Worker   IOMMU_HWPT_ALLOC_DIRTY_TRACKING = 1 << 1,
126*8d67ca89SAndroid Build Coastguard Worker   IOMMU_HWPT_FAULT_ID_VALID = 1 << 2,
127*8d67ca89SAndroid Build Coastguard Worker };
128*8d67ca89SAndroid Build Coastguard Worker enum iommu_hwpt_vtd_s1_flags {
129*8d67ca89SAndroid Build Coastguard Worker   IOMMU_VTD_S1_SRE = 1 << 0,
130*8d67ca89SAndroid Build Coastguard Worker   IOMMU_VTD_S1_EAFE = 1 << 1,
131*8d67ca89SAndroid Build Coastguard Worker   IOMMU_VTD_S1_WPE = 1 << 2,
132*8d67ca89SAndroid Build Coastguard Worker };
133*8d67ca89SAndroid Build Coastguard Worker struct iommu_hwpt_vtd_s1 {
134*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 flags;
135*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 pgtbl_addr;
136*8d67ca89SAndroid Build Coastguard Worker   __u32 addr_width;
137*8d67ca89SAndroid Build Coastguard Worker   __u32 __reserved;
138*8d67ca89SAndroid Build Coastguard Worker };
139*8d67ca89SAndroid Build Coastguard Worker enum iommu_hwpt_data_type {
140*8d67ca89SAndroid Build Coastguard Worker   IOMMU_HWPT_DATA_NONE = 0,
141*8d67ca89SAndroid Build Coastguard Worker   IOMMU_HWPT_DATA_VTD_S1 = 1,
142*8d67ca89SAndroid Build Coastguard Worker };
143*8d67ca89SAndroid Build Coastguard Worker struct iommu_hwpt_alloc {
144*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
145*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
146*8d67ca89SAndroid Build Coastguard Worker   __u32 dev_id;
147*8d67ca89SAndroid Build Coastguard Worker   __u32 pt_id;
148*8d67ca89SAndroid Build Coastguard Worker   __u32 out_hwpt_id;
149*8d67ca89SAndroid Build Coastguard Worker   __u32 __reserved;
150*8d67ca89SAndroid Build Coastguard Worker   __u32 data_type;
151*8d67ca89SAndroid Build Coastguard Worker   __u32 data_len;
152*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 data_uptr;
153*8d67ca89SAndroid Build Coastguard Worker   __u32 fault_id;
154*8d67ca89SAndroid Build Coastguard Worker   __u32 __reserved2;
155*8d67ca89SAndroid Build Coastguard Worker };
156*8d67ca89SAndroid Build Coastguard Worker #define IOMMU_HWPT_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_HWPT_ALLOC)
157*8d67ca89SAndroid Build Coastguard Worker enum iommu_hw_info_vtd_flags {
158*8d67ca89SAndroid Build Coastguard Worker   IOMMU_HW_INFO_VTD_ERRATA_772415_SPR17 = 1 << 0,
159*8d67ca89SAndroid Build Coastguard Worker };
160*8d67ca89SAndroid Build Coastguard Worker struct iommu_hw_info_vtd {
161*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
162*8d67ca89SAndroid Build Coastguard Worker   __u32 __reserved;
163*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 cap_reg;
164*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 ecap_reg;
165*8d67ca89SAndroid Build Coastguard Worker };
166*8d67ca89SAndroid Build Coastguard Worker enum iommu_hw_info_type {
167*8d67ca89SAndroid Build Coastguard Worker   IOMMU_HW_INFO_TYPE_NONE = 0,
168*8d67ca89SAndroid Build Coastguard Worker   IOMMU_HW_INFO_TYPE_INTEL_VTD = 1,
169*8d67ca89SAndroid Build Coastguard Worker };
170*8d67ca89SAndroid Build Coastguard Worker enum iommufd_hw_capabilities {
171*8d67ca89SAndroid Build Coastguard Worker   IOMMU_HW_CAP_DIRTY_TRACKING = 1 << 0,
172*8d67ca89SAndroid Build Coastguard Worker };
173*8d67ca89SAndroid Build Coastguard Worker struct iommu_hw_info {
174*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
175*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
176*8d67ca89SAndroid Build Coastguard Worker   __u32 dev_id;
177*8d67ca89SAndroid Build Coastguard Worker   __u32 data_len;
178*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 data_uptr;
179*8d67ca89SAndroid Build Coastguard Worker   __u32 out_data_type;
180*8d67ca89SAndroid Build Coastguard Worker   __u32 __reserved;
181*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 out_capabilities;
182*8d67ca89SAndroid Build Coastguard Worker };
183*8d67ca89SAndroid Build Coastguard Worker #define IOMMU_GET_HW_INFO _IO(IOMMUFD_TYPE, IOMMUFD_CMD_GET_HW_INFO)
184*8d67ca89SAndroid Build Coastguard Worker enum iommufd_hwpt_set_dirty_tracking_flags {
185*8d67ca89SAndroid Build Coastguard Worker   IOMMU_HWPT_DIRTY_TRACKING_ENABLE = 1,
186*8d67ca89SAndroid Build Coastguard Worker };
187*8d67ca89SAndroid Build Coastguard Worker struct iommu_hwpt_set_dirty_tracking {
188*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
189*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
190*8d67ca89SAndroid Build Coastguard Worker   __u32 hwpt_id;
191*8d67ca89SAndroid Build Coastguard Worker   __u32 __reserved;
192*8d67ca89SAndroid Build Coastguard Worker };
193*8d67ca89SAndroid Build Coastguard Worker #define IOMMU_HWPT_SET_DIRTY_TRACKING _IO(IOMMUFD_TYPE, IOMMUFD_CMD_HWPT_SET_DIRTY_TRACKING)
194*8d67ca89SAndroid Build Coastguard Worker enum iommufd_hwpt_get_dirty_bitmap_flags {
195*8d67ca89SAndroid Build Coastguard Worker   IOMMU_HWPT_GET_DIRTY_BITMAP_NO_CLEAR = 1,
196*8d67ca89SAndroid Build Coastguard Worker };
197*8d67ca89SAndroid Build Coastguard Worker struct iommu_hwpt_get_dirty_bitmap {
198*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
199*8d67ca89SAndroid Build Coastguard Worker   __u32 hwpt_id;
200*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
201*8d67ca89SAndroid Build Coastguard Worker   __u32 __reserved;
202*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 iova;
203*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 length;
204*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 page_size;
205*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 data;
206*8d67ca89SAndroid Build Coastguard Worker };
207*8d67ca89SAndroid Build Coastguard Worker #define IOMMU_HWPT_GET_DIRTY_BITMAP _IO(IOMMUFD_TYPE, IOMMUFD_CMD_HWPT_GET_DIRTY_BITMAP)
208*8d67ca89SAndroid Build Coastguard Worker enum iommu_hwpt_invalidate_data_type {
209*8d67ca89SAndroid Build Coastguard Worker   IOMMU_HWPT_INVALIDATE_DATA_VTD_S1 = 0,
210*8d67ca89SAndroid Build Coastguard Worker };
211*8d67ca89SAndroid Build Coastguard Worker enum iommu_hwpt_vtd_s1_invalidate_flags {
212*8d67ca89SAndroid Build Coastguard Worker   IOMMU_VTD_INV_FLAGS_LEAF = 1 << 0,
213*8d67ca89SAndroid Build Coastguard Worker };
214*8d67ca89SAndroid Build Coastguard Worker struct iommu_hwpt_vtd_s1_invalidate {
215*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 addr;
216*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 npages;
217*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
218*8d67ca89SAndroid Build Coastguard Worker   __u32 __reserved;
219*8d67ca89SAndroid Build Coastguard Worker };
220*8d67ca89SAndroid Build Coastguard Worker struct iommu_hwpt_invalidate {
221*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
222*8d67ca89SAndroid Build Coastguard Worker   __u32 hwpt_id;
223*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 data_uptr;
224*8d67ca89SAndroid Build Coastguard Worker   __u32 data_type;
225*8d67ca89SAndroid Build Coastguard Worker   __u32 entry_len;
226*8d67ca89SAndroid Build Coastguard Worker   __u32 entry_num;
227*8d67ca89SAndroid Build Coastguard Worker   __u32 __reserved;
228*8d67ca89SAndroid Build Coastguard Worker };
229*8d67ca89SAndroid Build Coastguard Worker #define IOMMU_HWPT_INVALIDATE _IO(IOMMUFD_TYPE, IOMMUFD_CMD_HWPT_INVALIDATE)
230*8d67ca89SAndroid Build Coastguard Worker enum iommu_hwpt_pgfault_flags {
231*8d67ca89SAndroid Build Coastguard Worker   IOMMU_PGFAULT_FLAGS_PASID_VALID = (1 << 0),
232*8d67ca89SAndroid Build Coastguard Worker   IOMMU_PGFAULT_FLAGS_LAST_PAGE = (1 << 1),
233*8d67ca89SAndroid Build Coastguard Worker };
234*8d67ca89SAndroid Build Coastguard Worker enum iommu_hwpt_pgfault_perm {
235*8d67ca89SAndroid Build Coastguard Worker   IOMMU_PGFAULT_PERM_READ = (1 << 0),
236*8d67ca89SAndroid Build Coastguard Worker   IOMMU_PGFAULT_PERM_WRITE = (1 << 1),
237*8d67ca89SAndroid Build Coastguard Worker   IOMMU_PGFAULT_PERM_EXEC = (1 << 2),
238*8d67ca89SAndroid Build Coastguard Worker   IOMMU_PGFAULT_PERM_PRIV = (1 << 3),
239*8d67ca89SAndroid Build Coastguard Worker };
240*8d67ca89SAndroid Build Coastguard Worker struct iommu_hwpt_pgfault {
241*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
242*8d67ca89SAndroid Build Coastguard Worker   __u32 dev_id;
243*8d67ca89SAndroid Build Coastguard Worker   __u32 pasid;
244*8d67ca89SAndroid Build Coastguard Worker   __u32 grpid;
245*8d67ca89SAndroid Build Coastguard Worker   __u32 perm;
246*8d67ca89SAndroid Build Coastguard Worker   __u64 addr;
247*8d67ca89SAndroid Build Coastguard Worker   __u32 length;
248*8d67ca89SAndroid Build Coastguard Worker   __u32 cookie;
249*8d67ca89SAndroid Build Coastguard Worker };
250*8d67ca89SAndroid Build Coastguard Worker enum iommufd_page_response_code {
251*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_PAGE_RESP_SUCCESS = 0,
252*8d67ca89SAndroid Build Coastguard Worker   IOMMUFD_PAGE_RESP_INVALID = 1,
253*8d67ca89SAndroid Build Coastguard Worker };
254*8d67ca89SAndroid Build Coastguard Worker struct iommu_hwpt_page_response {
255*8d67ca89SAndroid Build Coastguard Worker   __u32 cookie;
256*8d67ca89SAndroid Build Coastguard Worker   __u32 code;
257*8d67ca89SAndroid Build Coastguard Worker };
258*8d67ca89SAndroid Build Coastguard Worker struct iommu_fault_alloc {
259*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
260*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
261*8d67ca89SAndroid Build Coastguard Worker   __u32 out_fault_id;
262*8d67ca89SAndroid Build Coastguard Worker   __u32 out_fault_fd;
263*8d67ca89SAndroid Build Coastguard Worker };
264*8d67ca89SAndroid Build Coastguard Worker #define IOMMU_FAULT_QUEUE_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_FAULT_QUEUE_ALLOC)
265*8d67ca89SAndroid Build Coastguard Worker #endif
266