1 /* automatically generated by tools/bindgen-all-the-things */ 2 3 #![allow(non_upper_case_globals)] 4 #![allow(non_camel_case_types)] 5 #![allow(non_snake_case)] 6 #![allow(dead_code)] 7 8 #[repr(C)] 9 #[derive(Default)] 10 pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]); 11 impl<T> __IncompleteArrayField<T> { 12 #[inline] new() -> Self13 pub const fn new() -> Self { 14 __IncompleteArrayField(::std::marker::PhantomData, []) 15 } 16 #[inline] as_ptr(&self) -> *const T17 pub fn as_ptr(&self) -> *const T { 18 self as *const _ as *const T 19 } 20 #[inline] as_mut_ptr(&mut self) -> *mut T21 pub fn as_mut_ptr(&mut self) -> *mut T { 22 self as *mut _ as *mut T 23 } 24 #[inline] as_slice(&self, len: usize) -> &[T]25 pub unsafe fn as_slice(&self, len: usize) -> &[T] { 26 ::std::slice::from_raw_parts(self.as_ptr(), len) 27 } 28 #[inline] as_mut_slice(&mut self, len: usize) -> &mut [T]29 pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { 30 ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) 31 } 32 } 33 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> { fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result34 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { 35 fmt.write_str("__IncompleteArrayField") 36 } 37 } 38 pub const IORING_SETUP_IOPOLL: u32 = 1; 39 pub const IORING_SETUP_SQPOLL: u32 = 2; 40 pub const IORING_SETUP_SQ_AFF: u32 = 4; 41 pub const IORING_SETUP_CQSIZE: u32 = 8; 42 pub const IORING_SETUP_CLAMP: u32 = 16; 43 pub const IORING_SETUP_ATTACH_WQ: u32 = 32; 44 pub const IORING_SETUP_R_DISABLED: u32 = 64; 45 pub const IORING_FSYNC_DATASYNC: u32 = 1; 46 pub const IORING_TIMEOUT_ABS: u32 = 1; 47 pub const IORING_CQE_F_BUFFER: u32 = 1; 48 pub const IORING_OFF_SQ_RING: u32 = 0; 49 pub const IORING_OFF_CQ_RING: u32 = 134217728; 50 pub const IORING_OFF_SQES: u32 = 268435456; 51 pub const IORING_SQ_NEED_WAKEUP: u32 = 1; 52 pub const IORING_SQ_CQ_OVERFLOW: u32 = 2; 53 pub const IORING_CQ_EVENTFD_DISABLED: u32 = 1; 54 pub const IORING_ENTER_GETEVENTS: u32 = 1; 55 pub const IORING_ENTER_SQ_WAKEUP: u32 = 2; 56 pub const IORING_ENTER_SQ_WAIT: u32 = 4; 57 pub const IORING_FEAT_SINGLE_MMAP: u32 = 1; 58 pub const IORING_FEAT_NODROP: u32 = 2; 59 pub const IORING_FEAT_SUBMIT_STABLE: u32 = 4; 60 pub const IORING_FEAT_RW_CUR_POS: u32 = 8; 61 pub const IORING_FEAT_CUR_PERSONALITY: u32 = 16; 62 pub const IORING_FEAT_FAST_POLL: u32 = 32; 63 pub const IORING_FEAT_POLL_32BITS: u32 = 64; 64 pub const IO_URING_OP_SUPPORTED: u32 = 1; 65 pub type __kernel_rwf_t = ::std::os::raw::c_int; 66 #[repr(C)] 67 #[derive(Copy, Clone)] 68 pub struct io_uring_sqe { 69 pub opcode: u8, 70 pub flags: u8, 71 pub ioprio: u16, 72 pub fd: i32, 73 pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_1, 74 pub __bindgen_anon_2: io_uring_sqe__bindgen_ty_2, 75 pub len: u32, 76 pub __bindgen_anon_3: io_uring_sqe__bindgen_ty_3, 77 pub user_data: u64, 78 pub __bindgen_anon_4: io_uring_sqe__bindgen_ty_4, 79 } 80 #[repr(C)] 81 #[derive(Copy, Clone)] 82 pub union io_uring_sqe__bindgen_ty_1 { 83 pub off: u64, 84 pub addr2: u64, 85 } 86 impl Default for io_uring_sqe__bindgen_ty_1 { default() -> Self87 fn default() -> Self { 88 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 89 unsafe { 90 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 91 s.assume_init() 92 } 93 } 94 } 95 #[repr(C)] 96 #[derive(Copy, Clone)] 97 pub union io_uring_sqe__bindgen_ty_2 { 98 pub addr: u64, 99 pub splice_off_in: u64, 100 } 101 impl Default for io_uring_sqe__bindgen_ty_2 { default() -> Self102 fn default() -> Self { 103 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 104 unsafe { 105 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 106 s.assume_init() 107 } 108 } 109 } 110 #[repr(C)] 111 #[derive(Copy, Clone)] 112 pub union io_uring_sqe__bindgen_ty_3 { 113 pub rw_flags: __kernel_rwf_t, 114 pub fsync_flags: u32, 115 pub poll_events: u16, 116 pub poll32_events: u32, 117 pub sync_range_flags: u32, 118 pub msg_flags: u32, 119 pub timeout_flags: u32, 120 pub accept_flags: u32, 121 pub cancel_flags: u32, 122 pub open_flags: u32, 123 pub statx_flags: u32, 124 pub fadvise_advice: u32, 125 pub splice_flags: u32, 126 } 127 impl Default for io_uring_sqe__bindgen_ty_3 { default() -> Self128 fn default() -> Self { 129 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 130 unsafe { 131 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 132 s.assume_init() 133 } 134 } 135 } 136 #[repr(C)] 137 #[derive(Copy, Clone)] 138 pub union io_uring_sqe__bindgen_ty_4 { 139 pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_4__bindgen_ty_1, 140 pub __pad2: [u64; 3usize], 141 } 142 #[repr(C)] 143 #[derive(Copy, Clone)] 144 pub struct io_uring_sqe__bindgen_ty_4__bindgen_ty_1 { 145 pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1, 146 pub personality: u16, 147 pub splice_fd_in: i32, 148 } 149 #[repr(C, packed)] 150 #[derive(Copy, Clone)] 151 pub union io_uring_sqe__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 { 152 pub buf_index: u16, 153 pub buf_group: u16, 154 } 155 impl Default for io_uring_sqe__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 { default() -> Self156 fn default() -> Self { 157 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 158 unsafe { 159 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 160 s.assume_init() 161 } 162 } 163 } 164 impl Default for io_uring_sqe__bindgen_ty_4__bindgen_ty_1 { default() -> Self165 fn default() -> Self { 166 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 167 unsafe { 168 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 169 s.assume_init() 170 } 171 } 172 } 173 impl Default for io_uring_sqe__bindgen_ty_4 { default() -> Self174 fn default() -> Self { 175 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 176 unsafe { 177 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 178 s.assume_init() 179 } 180 } 181 } 182 impl Default for io_uring_sqe { default() -> Self183 fn default() -> Self { 184 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 185 unsafe { 186 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 187 s.assume_init() 188 } 189 } 190 } 191 pub const IORING_OP_NOP: ::std::os::raw::c_uint = 0; 192 pub const IORING_OP_READV: ::std::os::raw::c_uint = 1; 193 pub const IORING_OP_WRITEV: ::std::os::raw::c_uint = 2; 194 pub const IORING_OP_FSYNC: ::std::os::raw::c_uint = 3; 195 pub const IORING_OP_READ_FIXED: ::std::os::raw::c_uint = 4; 196 pub const IORING_OP_WRITE_FIXED: ::std::os::raw::c_uint = 5; 197 pub const IORING_OP_POLL_ADD: ::std::os::raw::c_uint = 6; 198 pub const IORING_OP_POLL_REMOVE: ::std::os::raw::c_uint = 7; 199 pub const IORING_OP_SYNC_FILE_RANGE: ::std::os::raw::c_uint = 8; 200 pub const IORING_OP_SENDMSG: ::std::os::raw::c_uint = 9; 201 pub const IORING_OP_RECVMSG: ::std::os::raw::c_uint = 10; 202 pub const IORING_OP_TIMEOUT: ::std::os::raw::c_uint = 11; 203 pub const IORING_OP_TIMEOUT_REMOVE: ::std::os::raw::c_uint = 12; 204 pub const IORING_OP_ACCEPT: ::std::os::raw::c_uint = 13; 205 pub const IORING_OP_ASYNC_CANCEL: ::std::os::raw::c_uint = 14; 206 pub const IORING_OP_LINK_TIMEOUT: ::std::os::raw::c_uint = 15; 207 pub const IORING_OP_CONNECT: ::std::os::raw::c_uint = 16; 208 pub const IORING_OP_FALLOCATE: ::std::os::raw::c_uint = 17; 209 pub const IORING_OP_OPENAT: ::std::os::raw::c_uint = 18; 210 pub const IORING_OP_CLOSE: ::std::os::raw::c_uint = 19; 211 pub const IORING_OP_FILES_UPDATE: ::std::os::raw::c_uint = 20; 212 pub const IORING_OP_STATX: ::std::os::raw::c_uint = 21; 213 pub const IORING_OP_READ: ::std::os::raw::c_uint = 22; 214 pub const IORING_OP_WRITE: ::std::os::raw::c_uint = 23; 215 pub const IORING_OP_FADVISE: ::std::os::raw::c_uint = 24; 216 pub const IORING_OP_MADVISE: ::std::os::raw::c_uint = 25; 217 pub const IORING_OP_SEND: ::std::os::raw::c_uint = 26; 218 pub const IORING_OP_RECV: ::std::os::raw::c_uint = 27; 219 pub const IORING_OP_OPENAT2: ::std::os::raw::c_uint = 28; 220 pub const IORING_OP_EPOLL_CTL: ::std::os::raw::c_uint = 29; 221 pub const IORING_OP_SPLICE: ::std::os::raw::c_uint = 30; 222 pub const IORING_OP_PROVIDE_BUFFERS: ::std::os::raw::c_uint = 31; 223 pub const IORING_OP_REMOVE_BUFFERS: ::std::os::raw::c_uint = 32; 224 pub const IORING_OP_TEE: ::std::os::raw::c_uint = 33; 225 pub const IORING_OP_LAST: ::std::os::raw::c_uint = 34; 226 pub type _bindgen_ty_2 = ::std::os::raw::c_uint; 227 #[repr(C)] 228 #[derive(Debug, Default, Copy, Clone)] 229 pub struct io_uring_cqe { 230 pub user_data: u64, 231 pub res: i32, 232 pub flags: u32, 233 } 234 pub const IORING_CQE_BUFFER_SHIFT: ::std::os::raw::c_uint = 16; 235 pub type _bindgen_ty_3 = ::std::os::raw::c_uint; 236 #[repr(C)] 237 #[derive(Debug, Default, Copy, Clone)] 238 pub struct io_sqring_offsets { 239 pub head: u32, 240 pub tail: u32, 241 pub ring_mask: u32, 242 pub ring_entries: u32, 243 pub flags: u32, 244 pub dropped: u32, 245 pub array: u32, 246 pub resv1: u32, 247 pub resv2: u64, 248 } 249 #[repr(C)] 250 #[derive(Debug, Default, Copy, Clone)] 251 pub struct io_cqring_offsets { 252 pub head: u32, 253 pub tail: u32, 254 pub ring_mask: u32, 255 pub ring_entries: u32, 256 pub overflow: u32, 257 pub cqes: u32, 258 pub flags: u32, 259 pub resv1: u32, 260 pub resv2: u64, 261 } 262 #[repr(C)] 263 #[derive(Debug, Default, Copy, Clone)] 264 pub struct io_uring_params { 265 pub sq_entries: u32, 266 pub cq_entries: u32, 267 pub flags: u32, 268 pub sq_thread_cpu: u32, 269 pub sq_thread_idle: u32, 270 pub features: u32, 271 pub wq_fd: u32, 272 pub resv: [u32; 3usize], 273 pub sq_off: io_sqring_offsets, 274 pub cq_off: io_cqring_offsets, 275 } 276 pub const IORING_REGISTER_BUFFERS: ::std::os::raw::c_uint = 0; 277 pub const IORING_UNREGISTER_BUFFERS: ::std::os::raw::c_uint = 1; 278 pub const IORING_REGISTER_FILES: ::std::os::raw::c_uint = 2; 279 pub const IORING_UNREGISTER_FILES: ::std::os::raw::c_uint = 3; 280 pub const IORING_REGISTER_EVENTFD: ::std::os::raw::c_uint = 4; 281 pub const IORING_UNREGISTER_EVENTFD: ::std::os::raw::c_uint = 5; 282 pub const IORING_REGISTER_FILES_UPDATE: ::std::os::raw::c_uint = 6; 283 pub const IORING_REGISTER_EVENTFD_ASYNC: ::std::os::raw::c_uint = 7; 284 pub const IORING_REGISTER_PROBE: ::std::os::raw::c_uint = 8; 285 pub const IORING_REGISTER_PERSONALITY: ::std::os::raw::c_uint = 9; 286 pub const IORING_UNREGISTER_PERSONALITY: ::std::os::raw::c_uint = 10; 287 pub const IORING_REGISTER_RESTRICTIONS: ::std::os::raw::c_uint = 11; 288 pub const IORING_REGISTER_ENABLE_RINGS: ::std::os::raw::c_uint = 12; 289 pub const IORING_REGISTER_LAST: ::std::os::raw::c_uint = 13; 290 pub type _bindgen_ty_4 = ::std::os::raw::c_uint; 291 #[repr(C)] 292 #[derive(Debug, Default, Copy, Clone)] 293 pub struct io_uring_files_update { 294 pub offset: u32, 295 pub resv: u32, 296 pub fds: u64, 297 } 298 #[repr(C)] 299 #[derive(Debug, Default, Copy, Clone)] 300 pub struct io_uring_probe_op { 301 pub op: u8, 302 pub resv: u8, 303 pub flags: u16, 304 pub resv2: u32, 305 } 306 #[repr(C)] 307 #[derive(Debug, Default)] 308 pub struct io_uring_probe { 309 pub last_op: u8, 310 pub ops_len: u8, 311 pub resv: u16, 312 pub resv2: [u32; 3usize], 313 pub ops: __IncompleteArrayField<io_uring_probe_op>, 314 } 315 #[repr(C)] 316 #[derive(Copy, Clone)] 317 pub struct io_uring_restriction { 318 pub opcode: u16, 319 pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1, 320 pub resv: u8, 321 pub resv2: [u32; 3usize], 322 } 323 #[repr(C)] 324 #[derive(Copy, Clone)] 325 pub union io_uring_restriction__bindgen_ty_1 { 326 pub register_op: u8, 327 pub sqe_op: u8, 328 pub sqe_flags: u8, 329 } 330 impl Default for io_uring_restriction__bindgen_ty_1 { default() -> Self331 fn default() -> Self { 332 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 333 unsafe { 334 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 335 s.assume_init() 336 } 337 } 338 } 339 impl Default for io_uring_restriction { default() -> Self340 fn default() -> Self { 341 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 342 unsafe { 343 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 344 s.assume_init() 345 } 346 } 347 } 348 pub const IORING_RESTRICTION_REGISTER_OP: ::std::os::raw::c_uint = 0; 349 pub const IORING_RESTRICTION_SQE_OP: ::std::os::raw::c_uint = 1; 350 pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: ::std::os::raw::c_uint = 2; 351 pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: ::std::os::raw::c_uint = 3; 352 pub const IORING_RESTRICTION_LAST: ::std::os::raw::c_uint = 4; 353 pub type _bindgen_ty_5 = ::std::os::raw::c_uint; 354