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