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