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