1*bb4ee6a4SAndroid Build Coastguard Worker /* automatically generated by tools/bindgen-all-the-things */ 2*bb4ee6a4SAndroid Build Coastguard Worker 3*bb4ee6a4SAndroid Build Coastguard Worker #![allow(clippy::missing_safety_doc)] 4*bb4ee6a4SAndroid Build Coastguard Worker #![allow(clippy::undocumented_unsafe_blocks)] 5*bb4ee6a4SAndroid Build Coastguard Worker #![allow(clippy::upper_case_acronyms)] 6*bb4ee6a4SAndroid Build Coastguard Worker #![allow(non_upper_case_globals)] 7*bb4ee6a4SAndroid Build Coastguard Worker #![allow(non_camel_case_types)] 8*bb4ee6a4SAndroid Build Coastguard Worker #![allow(non_snake_case)] 9*bb4ee6a4SAndroid Build Coastguard Worker #![allow(dead_code)] 10*bb4ee6a4SAndroid Build Coastguard Worker 11*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 12*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Default)] 13*bb4ee6a4SAndroid Build Coastguard Worker pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]); 14*bb4ee6a4SAndroid Build Coastguard Worker impl<T> __IncompleteArrayField<T> { 15*bb4ee6a4SAndroid Build Coastguard Worker #[inline] new() -> Self16*bb4ee6a4SAndroid Build Coastguard Worker pub const fn new() -> Self { 17*bb4ee6a4SAndroid Build Coastguard Worker __IncompleteArrayField(::std::marker::PhantomData, []) 18*bb4ee6a4SAndroid Build Coastguard Worker } 19*bb4ee6a4SAndroid Build Coastguard Worker #[inline] as_ptr(&self) -> *const T20*bb4ee6a4SAndroid Build Coastguard Worker pub fn as_ptr(&self) -> *const T { 21*bb4ee6a4SAndroid Build Coastguard Worker self as *const _ as *const T 22*bb4ee6a4SAndroid Build Coastguard Worker } 23*bb4ee6a4SAndroid Build Coastguard Worker #[inline] as_mut_ptr(&mut self) -> *mut T24*bb4ee6a4SAndroid Build Coastguard Worker pub fn as_mut_ptr(&mut self) -> *mut T { 25*bb4ee6a4SAndroid Build Coastguard Worker self as *mut _ as *mut T 26*bb4ee6a4SAndroid Build Coastguard Worker } 27*bb4ee6a4SAndroid Build Coastguard Worker #[inline] as_slice(&self, len: usize) -> &[T]28*bb4ee6a4SAndroid Build Coastguard Worker pub unsafe fn as_slice(&self, len: usize) -> &[T] { 29*bb4ee6a4SAndroid Build Coastguard Worker ::std::slice::from_raw_parts(self.as_ptr(), len) 30*bb4ee6a4SAndroid Build Coastguard Worker } 31*bb4ee6a4SAndroid Build Coastguard Worker #[inline] as_mut_slice(&mut self, len: usize) -> &mut [T]32*bb4ee6a4SAndroid Build Coastguard Worker pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { 33*bb4ee6a4SAndroid Build Coastguard Worker ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) 34*bb4ee6a4SAndroid Build Coastguard Worker } 35*bb4ee6a4SAndroid Build Coastguard Worker } 36*bb4ee6a4SAndroid Build Coastguard Worker impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> { fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result37*bb4ee6a4SAndroid Build Coastguard Worker fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { 38*bb4ee6a4SAndroid Build Coastguard Worker fmt.write_str("__IncompleteArrayField") 39*bb4ee6a4SAndroid Build Coastguard Worker } 40*bb4ee6a4SAndroid Build Coastguard Worker } 41*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_VRING_F_LOG: u32 = 0; 42*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_ACCESS_RO: u32 = 1; 43*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_ACCESS_WO: u32 = 2; 44*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_ACCESS_RW: u32 = 3; 45*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_IOTLB_MISS: u32 = 1; 46*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_IOTLB_UPDATE: u32 = 2; 47*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_IOTLB_INVALIDATE: u32 = 3; 48*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_IOTLB_ACCESS_FAIL: u32 = 4; 49*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_IOTLB_BATCH_BEGIN: u32 = 5; 50*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_IOTLB_BATCH_END: u32 = 6; 51*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_IOTLB_MSG: u32 = 1; 52*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_IOTLB_MSG_V2: u32 = 2; 53*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_PAGE_SIZE: u32 = 4096; 54*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_SCSI_ABI_VERSION: u32 = 1; 55*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_F_LOG_ALL: u32 = 26; 56*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_NET_F_VIRTIO_NET_HDR: u32 = 27; 57*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_BACKEND_F_IOTLB_MSG_V2: u32 = 1; 58*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_BACKEND_F_IOTLB_BATCH: u32 = 2; 59*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_BACKEND_F_IOTLB_ASID: u32 = 3; 60*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_BACKEND_F_SUSPEND: u32 = 4; 61*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_BACKEND_F_RESUME: u32 = 5; 62*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_BACKEND_F_ENABLE_AFTER_DRIVER_OK: u32 = 6; 63*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_FILE_UNBIND: i32 = -1; 64*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_VIRTIO: u32 = 175; 65*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_VRING_LITTLE_ENDIAN: u32 = 0; 66*bb4ee6a4SAndroid Build Coastguard Worker pub const VHOST_VRING_BIG_ENDIAN: u32 = 1; 67*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 68*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 69*bb4ee6a4SAndroid Build Coastguard Worker pub struct vhost_vring_state { 70*bb4ee6a4SAndroid Build Coastguard Worker pub index: ::std::os::raw::c_uint, 71*bb4ee6a4SAndroid Build Coastguard Worker pub num: ::std::os::raw::c_uint, 72*bb4ee6a4SAndroid Build Coastguard Worker } 73*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 74*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 75*bb4ee6a4SAndroid Build Coastguard Worker pub struct vhost_vring_file { 76*bb4ee6a4SAndroid Build Coastguard Worker pub index: ::std::os::raw::c_uint, 77*bb4ee6a4SAndroid Build Coastguard Worker pub fd: ::std::os::raw::c_int, 78*bb4ee6a4SAndroid Build Coastguard Worker } 79*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 80*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 81*bb4ee6a4SAndroid Build Coastguard Worker pub struct vhost_vring_addr { 82*bb4ee6a4SAndroid Build Coastguard Worker pub index: ::std::os::raw::c_uint, 83*bb4ee6a4SAndroid Build Coastguard Worker pub flags: ::std::os::raw::c_uint, 84*bb4ee6a4SAndroid Build Coastguard Worker pub desc_user_addr: u64, 85*bb4ee6a4SAndroid Build Coastguard Worker pub used_user_addr: u64, 86*bb4ee6a4SAndroid Build Coastguard Worker pub avail_user_addr: u64, 87*bb4ee6a4SAndroid Build Coastguard Worker pub log_guest_addr: u64, 88*bb4ee6a4SAndroid Build Coastguard Worker } 89*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 90*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 91*bb4ee6a4SAndroid Build Coastguard Worker pub struct vhost_worker_state { 92*bb4ee6a4SAndroid Build Coastguard Worker pub worker_id: ::std::os::raw::c_uint, 93*bb4ee6a4SAndroid Build Coastguard Worker } 94*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 95*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 96*bb4ee6a4SAndroid Build Coastguard Worker pub struct vhost_vring_worker { 97*bb4ee6a4SAndroid Build Coastguard Worker pub index: ::std::os::raw::c_uint, 98*bb4ee6a4SAndroid Build Coastguard Worker pub worker_id: ::std::os::raw::c_uint, 99*bb4ee6a4SAndroid Build Coastguard Worker } 100*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 101*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 102*bb4ee6a4SAndroid Build Coastguard Worker pub struct vhost_iotlb_msg { 103*bb4ee6a4SAndroid Build Coastguard Worker pub iova: u64, 104*bb4ee6a4SAndroid Build Coastguard Worker pub size: u64, 105*bb4ee6a4SAndroid Build Coastguard Worker pub uaddr: u64, 106*bb4ee6a4SAndroid Build Coastguard Worker pub perm: u8, 107*bb4ee6a4SAndroid Build Coastguard Worker pub type_: u8, 108*bb4ee6a4SAndroid Build Coastguard Worker } 109*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 110*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Copy, Clone)] 111*bb4ee6a4SAndroid Build Coastguard Worker pub struct vhost_msg { 112*bb4ee6a4SAndroid Build Coastguard Worker pub type_: ::std::os::raw::c_int, 113*bb4ee6a4SAndroid Build Coastguard Worker pub __bindgen_anon_1: vhost_msg__bindgen_ty_1, 114*bb4ee6a4SAndroid Build Coastguard Worker } 115*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 116*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Copy, Clone)] 117*bb4ee6a4SAndroid Build Coastguard Worker pub union vhost_msg__bindgen_ty_1 { 118*bb4ee6a4SAndroid Build Coastguard Worker pub iotlb: vhost_iotlb_msg, 119*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 64usize], 120*bb4ee6a4SAndroid Build Coastguard Worker } 121*bb4ee6a4SAndroid Build Coastguard Worker impl Default for vhost_msg__bindgen_ty_1 { default() -> Self122*bb4ee6a4SAndroid Build Coastguard Worker fn default() -> Self { 123*bb4ee6a4SAndroid Build Coastguard Worker let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 124*bb4ee6a4SAndroid Build Coastguard Worker unsafe { 125*bb4ee6a4SAndroid Build Coastguard Worker ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 126*bb4ee6a4SAndroid Build Coastguard Worker s.assume_init() 127*bb4ee6a4SAndroid Build Coastguard Worker } 128*bb4ee6a4SAndroid Build Coastguard Worker } 129*bb4ee6a4SAndroid Build Coastguard Worker } 130*bb4ee6a4SAndroid Build Coastguard Worker impl Default for vhost_msg { default() -> Self131*bb4ee6a4SAndroid Build Coastguard Worker fn default() -> Self { 132*bb4ee6a4SAndroid Build Coastguard Worker let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 133*bb4ee6a4SAndroid Build Coastguard Worker unsafe { 134*bb4ee6a4SAndroid Build Coastguard Worker ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 135*bb4ee6a4SAndroid Build Coastguard Worker s.assume_init() 136*bb4ee6a4SAndroid Build Coastguard Worker } 137*bb4ee6a4SAndroid Build Coastguard Worker } 138*bb4ee6a4SAndroid Build Coastguard Worker } 139*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 140*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Copy, Clone)] 141*bb4ee6a4SAndroid Build Coastguard Worker pub struct vhost_msg_v2 { 142*bb4ee6a4SAndroid Build Coastguard Worker pub type_: u32, 143*bb4ee6a4SAndroid Build Coastguard Worker pub asid: u32, 144*bb4ee6a4SAndroid Build Coastguard Worker pub __bindgen_anon_1: vhost_msg_v2__bindgen_ty_1, 145*bb4ee6a4SAndroid Build Coastguard Worker } 146*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 147*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Copy, Clone)] 148*bb4ee6a4SAndroid Build Coastguard Worker pub union vhost_msg_v2__bindgen_ty_1 { 149*bb4ee6a4SAndroid Build Coastguard Worker pub iotlb: vhost_iotlb_msg, 150*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 64usize], 151*bb4ee6a4SAndroid Build Coastguard Worker } 152*bb4ee6a4SAndroid Build Coastguard Worker impl Default for vhost_msg_v2__bindgen_ty_1 { default() -> Self153*bb4ee6a4SAndroid Build Coastguard Worker fn default() -> Self { 154*bb4ee6a4SAndroid Build Coastguard Worker let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 155*bb4ee6a4SAndroid Build Coastguard Worker unsafe { 156*bb4ee6a4SAndroid Build Coastguard Worker ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 157*bb4ee6a4SAndroid Build Coastguard Worker s.assume_init() 158*bb4ee6a4SAndroid Build Coastguard Worker } 159*bb4ee6a4SAndroid Build Coastguard Worker } 160*bb4ee6a4SAndroid Build Coastguard Worker } 161*bb4ee6a4SAndroid Build Coastguard Worker impl Default for vhost_msg_v2 { default() -> Self162*bb4ee6a4SAndroid Build Coastguard Worker fn default() -> Self { 163*bb4ee6a4SAndroid Build Coastguard Worker let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 164*bb4ee6a4SAndroid Build Coastguard Worker unsafe { 165*bb4ee6a4SAndroid Build Coastguard Worker ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 166*bb4ee6a4SAndroid Build Coastguard Worker s.assume_init() 167*bb4ee6a4SAndroid Build Coastguard Worker } 168*bb4ee6a4SAndroid Build Coastguard Worker } 169*bb4ee6a4SAndroid Build Coastguard Worker } 170*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 171*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 172*bb4ee6a4SAndroid Build Coastguard Worker pub struct vhost_memory_region { 173*bb4ee6a4SAndroid Build Coastguard Worker pub guest_phys_addr: u64, 174*bb4ee6a4SAndroid Build Coastguard Worker pub memory_size: u64, 175*bb4ee6a4SAndroid Build Coastguard Worker pub userspace_addr: u64, 176*bb4ee6a4SAndroid Build Coastguard Worker pub flags_padding: u64, 177*bb4ee6a4SAndroid Build Coastguard Worker } 178*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 179*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default)] 180*bb4ee6a4SAndroid Build Coastguard Worker pub struct vhost_memory { 181*bb4ee6a4SAndroid Build Coastguard Worker pub nregions: u32, 182*bb4ee6a4SAndroid Build Coastguard Worker pub padding: u32, 183*bb4ee6a4SAndroid Build Coastguard Worker pub regions: __IncompleteArrayField<vhost_memory_region>, 184*bb4ee6a4SAndroid Build Coastguard Worker } 185*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 186*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Copy, Clone)] 187*bb4ee6a4SAndroid Build Coastguard Worker pub struct vhost_scsi_target { 188*bb4ee6a4SAndroid Build Coastguard Worker pub abi_version: ::std::os::raw::c_int, 189*bb4ee6a4SAndroid Build Coastguard Worker pub vhost_wwpn: [::std::os::raw::c_char; 224usize], 190*bb4ee6a4SAndroid Build Coastguard Worker pub vhost_tpgt: ::std::os::raw::c_ushort, 191*bb4ee6a4SAndroid Build Coastguard Worker pub reserved: ::std::os::raw::c_ushort, 192*bb4ee6a4SAndroid Build Coastguard Worker } 193*bb4ee6a4SAndroid Build Coastguard Worker impl Default for vhost_scsi_target { default() -> Self194*bb4ee6a4SAndroid Build Coastguard Worker fn default() -> Self { 195*bb4ee6a4SAndroid Build Coastguard Worker let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 196*bb4ee6a4SAndroid Build Coastguard Worker unsafe { 197*bb4ee6a4SAndroid Build Coastguard Worker ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 198*bb4ee6a4SAndroid Build Coastguard Worker s.assume_init() 199*bb4ee6a4SAndroid Build Coastguard Worker } 200*bb4ee6a4SAndroid Build Coastguard Worker } 201*bb4ee6a4SAndroid Build Coastguard Worker } 202*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 203*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default)] 204*bb4ee6a4SAndroid Build Coastguard Worker pub struct vhost_vdpa_config { 205*bb4ee6a4SAndroid Build Coastguard Worker pub off: u32, 206*bb4ee6a4SAndroid Build Coastguard Worker pub len: u32, 207*bb4ee6a4SAndroid Build Coastguard Worker pub buf: __IncompleteArrayField<u8>, 208*bb4ee6a4SAndroid Build Coastguard Worker } 209*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 210*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 211*bb4ee6a4SAndroid Build Coastguard Worker pub struct vhost_vdpa_iova_range { 212*bb4ee6a4SAndroid Build Coastguard Worker pub first: u64, 213*bb4ee6a4SAndroid Build Coastguard Worker pub last: u64, 214*bb4ee6a4SAndroid Build Coastguard Worker } 215