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 // Added by virtio_sys/bindgen.sh 12*bb4ee6a4SAndroid Build Coastguard Worker use zerocopy::AsBytes; 13*bb4ee6a4SAndroid Build Coastguard Worker use zerocopy::FromBytes; 14*bb4ee6a4SAndroid Build Coastguard Worker use zerocopy::FromZeroes; 15*bb4ee6a4SAndroid Build Coastguard Worker 16*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 17*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Default)] 18*bb4ee6a4SAndroid Build Coastguard Worker pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]); 19*bb4ee6a4SAndroid Build Coastguard Worker impl<T> __IncompleteArrayField<T> { 20*bb4ee6a4SAndroid Build Coastguard Worker #[inline] new() -> Self21*bb4ee6a4SAndroid Build Coastguard Worker pub const fn new() -> Self { 22*bb4ee6a4SAndroid Build Coastguard Worker __IncompleteArrayField(::std::marker::PhantomData, []) 23*bb4ee6a4SAndroid Build Coastguard Worker } 24*bb4ee6a4SAndroid Build Coastguard Worker #[inline] as_ptr(&self) -> *const T25*bb4ee6a4SAndroid Build Coastguard Worker pub fn as_ptr(&self) -> *const T { 26*bb4ee6a4SAndroid Build Coastguard Worker self as *const _ as *const T 27*bb4ee6a4SAndroid Build Coastguard Worker } 28*bb4ee6a4SAndroid Build Coastguard Worker #[inline] as_mut_ptr(&mut self) -> *mut T29*bb4ee6a4SAndroid Build Coastguard Worker pub fn as_mut_ptr(&mut self) -> *mut T { 30*bb4ee6a4SAndroid Build Coastguard Worker self as *mut _ as *mut T 31*bb4ee6a4SAndroid Build Coastguard Worker } 32*bb4ee6a4SAndroid Build Coastguard Worker #[inline] as_slice(&self, len: usize) -> &[T]33*bb4ee6a4SAndroid Build Coastguard Worker pub unsafe fn as_slice(&self, len: usize) -> &[T] { 34*bb4ee6a4SAndroid Build Coastguard Worker ::std::slice::from_raw_parts(self.as_ptr(), len) 35*bb4ee6a4SAndroid Build Coastguard Worker } 36*bb4ee6a4SAndroid Build Coastguard Worker #[inline] as_mut_slice(&mut self, len: usize) -> &mut [T]37*bb4ee6a4SAndroid Build Coastguard Worker pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { 38*bb4ee6a4SAndroid Build Coastguard Worker ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) 39*bb4ee6a4SAndroid Build Coastguard Worker } 40*bb4ee6a4SAndroid Build Coastguard Worker } 41*bb4ee6a4SAndroid Build Coastguard Worker impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> { fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result42*bb4ee6a4SAndroid Build Coastguard Worker fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { 43*bb4ee6a4SAndroid Build Coastguard Worker fmt.write_str("__IncompleteArrayField") 44*bb4ee6a4SAndroid Build Coastguard Worker } 45*bb4ee6a4SAndroid Build Coastguard Worker } 46*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_CSUM: u32 = 0; 47*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_GUEST_CSUM: u32 = 1; 48*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_CTRL_GUEST_OFFLOADS: u32 = 2; 49*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_MTU: u32 = 3; 50*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_MAC: u32 = 5; 51*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_GUEST_TSO4: u32 = 7; 52*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_GUEST_TSO6: u32 = 8; 53*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_GUEST_ECN: u32 = 9; 54*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_GUEST_UFO: u32 = 10; 55*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_HOST_TSO4: u32 = 11; 56*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_HOST_TSO6: u32 = 12; 57*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_HOST_ECN: u32 = 13; 58*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_HOST_UFO: u32 = 14; 59*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_MRG_RXBUF: u32 = 15; 60*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_STATUS: u32 = 16; 61*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_CTRL_VQ: u32 = 17; 62*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_CTRL_RX: u32 = 18; 63*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_CTRL_VLAN: u32 = 19; 64*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_CTRL_RX_EXTRA: u32 = 20; 65*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_GUEST_ANNOUNCE: u32 = 21; 66*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_MQ: u32 = 22; 67*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_CTRL_MAC_ADDR: u32 = 23; 68*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_VQ_NOTF_COAL: u32 = 52; 69*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_NOTF_COAL: u32 = 53; 70*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_GUEST_USO4: u32 = 54; 71*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_GUEST_USO6: u32 = 55; 72*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_HOST_USO: u32 = 56; 73*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_HASH_REPORT: u32 = 57; 74*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_GUEST_HDRLEN: u32 = 59; 75*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_RSS: u32 = 60; 76*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_RSC_EXT: u32 = 61; 77*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_STANDBY: u32 = 62; 78*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_SPEED_DUPLEX: u32 = 63; 79*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_F_GSO: u32 = 6; 80*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_S_LINK_UP: u32 = 1; 81*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_S_ANNOUNCE: u32 = 2; 82*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_RSS_HASH_TYPE_IPv4: u32 = 1; 83*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_RSS_HASH_TYPE_TCPv4: u32 = 2; 84*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_RSS_HASH_TYPE_UDPv4: u32 = 4; 85*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_RSS_HASH_TYPE_IPv6: u32 = 8; 86*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_RSS_HASH_TYPE_TCPv6: u32 = 16; 87*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_RSS_HASH_TYPE_UDPv6: u32 = 32; 88*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_RSS_HASH_TYPE_IP_EX: u32 = 64; 89*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_RSS_HASH_TYPE_TCP_EX: u32 = 128; 90*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_RSS_HASH_TYPE_UDP_EX: u32 = 256; 91*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HDR_F_NEEDS_CSUM: u32 = 1; 92*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HDR_F_DATA_VALID: u32 = 2; 93*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HDR_F_RSC_INFO: u32 = 4; 94*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HDR_GSO_NONE: u32 = 0; 95*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HDR_GSO_TCPV4: u32 = 1; 96*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HDR_GSO_UDP: u32 = 3; 97*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HDR_GSO_TCPV6: u32 = 4; 98*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HDR_GSO_UDP_L4: u32 = 5; 99*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HDR_GSO_ECN: u32 = 128; 100*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HASH_REPORT_NONE: u32 = 0; 101*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HASH_REPORT_IPv4: u32 = 1; 102*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HASH_REPORT_TCPv4: u32 = 2; 103*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HASH_REPORT_UDPv4: u32 = 3; 104*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HASH_REPORT_IPv6: u32 = 4; 105*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HASH_REPORT_TCPv6: u32 = 5; 106*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HASH_REPORT_UDPv6: u32 = 6; 107*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HASH_REPORT_IPv6_EX: u32 = 7; 108*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HASH_REPORT_TCPv6_EX: u32 = 8; 109*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_HASH_REPORT_UDPv6_EX: u32 = 9; 110*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_OK: u32 = 0; 111*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_ERR: u32 = 1; 112*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_RX: u32 = 0; 113*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_RX_PROMISC: u32 = 0; 114*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_RX_ALLMULTI: u32 = 1; 115*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_RX_ALLUNI: u32 = 2; 116*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_RX_NOMULTI: u32 = 3; 117*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_RX_NOUNI: u32 = 4; 118*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_RX_NOBCAST: u32 = 5; 119*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_MAC: u32 = 1; 120*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_MAC_TABLE_SET: u32 = 0; 121*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_MAC_ADDR_SET: u32 = 1; 122*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_VLAN: u32 = 2; 123*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_VLAN_ADD: u32 = 0; 124*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_VLAN_DEL: u32 = 1; 125*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_ANNOUNCE: u32 = 3; 126*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_ANNOUNCE_ACK: u32 = 0; 127*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_MQ: u32 = 4; 128*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET: u32 = 0; 129*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN: u32 = 1; 130*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX: u32 = 32768; 131*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_MQ_RSS_CONFIG: u32 = 1; 132*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_MQ_HASH_CONFIG: u32 = 2; 133*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_GUEST_OFFLOADS: u32 = 5; 134*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_GUEST_OFFLOADS_SET: u32 = 0; 135*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_NOTF_COAL: u32 = 6; 136*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_NOTF_COAL_TX_SET: u32 = 0; 137*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_NOTF_COAL_RX_SET: u32 = 1; 138*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_NOTF_COAL_VQ_SET: u32 = 2; 139*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_NET_CTRL_NOTF_COAL_VQ_GET: u32 = 3; 140*bb4ee6a4SAndroid Build Coastguard Worker pub type __le16 = u16; 141*bb4ee6a4SAndroid Build Coastguard Worker pub type __le32 = u32; 142*bb4ee6a4SAndroid Build Coastguard Worker pub type __virtio16 = u16; 143*bb4ee6a4SAndroid Build Coastguard Worker pub type __virtio32 = u32; 144*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)] 145*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 146*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_net_config { 147*bb4ee6a4SAndroid Build Coastguard Worker pub mac: [u8; 6usize], 148*bb4ee6a4SAndroid Build Coastguard Worker pub status: __virtio16, 149*bb4ee6a4SAndroid Build Coastguard Worker pub max_virtqueue_pairs: __virtio16, 150*bb4ee6a4SAndroid Build Coastguard Worker pub mtu: __virtio16, 151*bb4ee6a4SAndroid Build Coastguard Worker pub speed: __le32, 152*bb4ee6a4SAndroid Build Coastguard Worker pub duplex: u8, 153*bb4ee6a4SAndroid Build Coastguard Worker pub rss_max_key_size: u8, 154*bb4ee6a4SAndroid Build Coastguard Worker pub rss_max_indirection_table_length: __le16, 155*bb4ee6a4SAndroid Build Coastguard Worker pub supported_hash_types: __le32, 156*bb4ee6a4SAndroid Build Coastguard Worker } 157*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 158*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Copy, Clone)] 159*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_net_hdr_v1 { 160*bb4ee6a4SAndroid Build Coastguard Worker pub flags: u8, 161*bb4ee6a4SAndroid Build Coastguard Worker pub gso_type: u8, 162*bb4ee6a4SAndroid Build Coastguard Worker pub hdr_len: __virtio16, 163*bb4ee6a4SAndroid Build Coastguard Worker pub gso_size: __virtio16, 164*bb4ee6a4SAndroid Build Coastguard Worker pub __bindgen_anon_1: virtio_net_hdr_v1__bindgen_ty_1, 165*bb4ee6a4SAndroid Build Coastguard Worker pub num_buffers: __virtio16, 166*bb4ee6a4SAndroid Build Coastguard Worker } 167*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 168*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Copy, Clone)] 169*bb4ee6a4SAndroid Build Coastguard Worker pub union virtio_net_hdr_v1__bindgen_ty_1 { 170*bb4ee6a4SAndroid Build Coastguard Worker pub __bindgen_anon_1: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1, 171*bb4ee6a4SAndroid Build Coastguard Worker pub csum: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2, 172*bb4ee6a4SAndroid Build Coastguard Worker pub rsc: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3, 173*bb4ee6a4SAndroid Build Coastguard Worker } 174*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 175*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 176*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1 { 177*bb4ee6a4SAndroid Build Coastguard Worker pub csum_start: __virtio16, 178*bb4ee6a4SAndroid Build Coastguard Worker pub csum_offset: __virtio16, 179*bb4ee6a4SAndroid Build Coastguard Worker } 180*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 181*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 182*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2 { 183*bb4ee6a4SAndroid Build Coastguard Worker pub start: __virtio16, 184*bb4ee6a4SAndroid Build Coastguard Worker pub offset: __virtio16, 185*bb4ee6a4SAndroid Build Coastguard Worker } 186*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 187*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 188*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3 { 189*bb4ee6a4SAndroid Build Coastguard Worker pub segments: __le16, 190*bb4ee6a4SAndroid Build Coastguard Worker pub dup_acks: __le16, 191*bb4ee6a4SAndroid Build Coastguard Worker } 192*bb4ee6a4SAndroid Build Coastguard Worker impl Default for virtio_net_hdr_v1__bindgen_ty_1 { default() -> Self193*bb4ee6a4SAndroid Build Coastguard Worker fn default() -> Self { 194*bb4ee6a4SAndroid Build Coastguard Worker let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 195*bb4ee6a4SAndroid Build Coastguard Worker unsafe { 196*bb4ee6a4SAndroid Build Coastguard Worker ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 197*bb4ee6a4SAndroid Build Coastguard Worker s.assume_init() 198*bb4ee6a4SAndroid Build Coastguard Worker } 199*bb4ee6a4SAndroid Build Coastguard Worker } 200*bb4ee6a4SAndroid Build Coastguard Worker } 201*bb4ee6a4SAndroid Build Coastguard Worker impl Default for virtio_net_hdr_v1 { default() -> Self202*bb4ee6a4SAndroid Build Coastguard Worker fn default() -> Self { 203*bb4ee6a4SAndroid Build Coastguard Worker let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 204*bb4ee6a4SAndroid Build Coastguard Worker unsafe { 205*bb4ee6a4SAndroid Build Coastguard Worker ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 206*bb4ee6a4SAndroid Build Coastguard Worker s.assume_init() 207*bb4ee6a4SAndroid Build Coastguard Worker } 208*bb4ee6a4SAndroid Build Coastguard Worker } 209*bb4ee6a4SAndroid Build Coastguard Worker } 210*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 211*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Copy, Clone)] 212*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_net_hdr_v1_hash { 213*bb4ee6a4SAndroid Build Coastguard Worker pub hdr: virtio_net_hdr_v1, 214*bb4ee6a4SAndroid Build Coastguard Worker pub hash_value: __le32, 215*bb4ee6a4SAndroid Build Coastguard Worker pub hash_report: __le16, 216*bb4ee6a4SAndroid Build Coastguard Worker pub padding: __le16, 217*bb4ee6a4SAndroid Build Coastguard Worker } 218*bb4ee6a4SAndroid Build Coastguard Worker impl Default for virtio_net_hdr_v1_hash { default() -> Self219*bb4ee6a4SAndroid Build Coastguard Worker fn default() -> Self { 220*bb4ee6a4SAndroid Build Coastguard Worker let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 221*bb4ee6a4SAndroid Build Coastguard Worker unsafe { 222*bb4ee6a4SAndroid Build Coastguard Worker ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 223*bb4ee6a4SAndroid Build Coastguard Worker s.assume_init() 224*bb4ee6a4SAndroid Build Coastguard Worker } 225*bb4ee6a4SAndroid Build Coastguard Worker } 226*bb4ee6a4SAndroid Build Coastguard Worker } 227*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 228*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)] 229*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_net_hdr { 230*bb4ee6a4SAndroid Build Coastguard Worker pub flags: u8, 231*bb4ee6a4SAndroid Build Coastguard Worker pub gso_type: u8, 232*bb4ee6a4SAndroid Build Coastguard Worker pub hdr_len: __virtio16, 233*bb4ee6a4SAndroid Build Coastguard Worker pub gso_size: __virtio16, 234*bb4ee6a4SAndroid Build Coastguard Worker pub csum_start: __virtio16, 235*bb4ee6a4SAndroid Build Coastguard Worker pub csum_offset: __virtio16, 236*bb4ee6a4SAndroid Build Coastguard Worker } 237*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 238*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)] 239*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_net_hdr_mrg_rxbuf { 240*bb4ee6a4SAndroid Build Coastguard Worker pub hdr: virtio_net_hdr, 241*bb4ee6a4SAndroid Build Coastguard Worker pub num_buffers: __virtio16, 242*bb4ee6a4SAndroid Build Coastguard Worker } 243*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)] 244*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 245*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_net_ctrl_hdr { 246*bb4ee6a4SAndroid Build Coastguard Worker pub class: u8, 247*bb4ee6a4SAndroid Build Coastguard Worker pub cmd: u8, 248*bb4ee6a4SAndroid Build Coastguard Worker } 249*bb4ee6a4SAndroid Build Coastguard Worker pub type virtio_net_ctrl_ack = u8; 250*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 251*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 252*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_net_ctrl_mq { 253*bb4ee6a4SAndroid Build Coastguard Worker pub virtqueue_pairs: __virtio16, 254*bb4ee6a4SAndroid Build Coastguard Worker } 255*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 256*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default)] 257*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_net_rss_config { 258*bb4ee6a4SAndroid Build Coastguard Worker pub hash_types: __le32, 259*bb4ee6a4SAndroid Build Coastguard Worker pub indirection_table_mask: __le16, 260*bb4ee6a4SAndroid Build Coastguard Worker pub unclassified_queue: __le16, 261*bb4ee6a4SAndroid Build Coastguard Worker pub indirection_table: [__le16; 1usize], 262*bb4ee6a4SAndroid Build Coastguard Worker pub max_tx_vq: __le16, 263*bb4ee6a4SAndroid Build Coastguard Worker pub hash_key_length: u8, 264*bb4ee6a4SAndroid Build Coastguard Worker pub hash_key_data: __IncompleteArrayField<u8>, 265*bb4ee6a4SAndroid Build Coastguard Worker } 266*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 267*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default)] 268*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_net_hash_config { 269*bb4ee6a4SAndroid Build Coastguard Worker pub hash_types: __le32, 270*bb4ee6a4SAndroid Build Coastguard Worker pub reserved: [__le16; 4usize], 271*bb4ee6a4SAndroid Build Coastguard Worker pub hash_key_length: u8, 272*bb4ee6a4SAndroid Build Coastguard Worker pub hash_key_data: __IncompleteArrayField<u8>, 273*bb4ee6a4SAndroid Build Coastguard Worker } 274*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 275*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 276*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_net_ctrl_coal_tx { 277*bb4ee6a4SAndroid Build Coastguard Worker pub tx_max_packets: __le32, 278*bb4ee6a4SAndroid Build Coastguard Worker pub tx_usecs: __le32, 279*bb4ee6a4SAndroid Build Coastguard Worker } 280*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 281*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 282*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_net_ctrl_coal_rx { 283*bb4ee6a4SAndroid Build Coastguard Worker pub rx_max_packets: __le32, 284*bb4ee6a4SAndroid Build Coastguard Worker pub rx_usecs: __le32, 285*bb4ee6a4SAndroid Build Coastguard Worker } 286*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 287*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 288*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_net_ctrl_coal { 289*bb4ee6a4SAndroid Build Coastguard Worker pub max_packets: __le32, 290*bb4ee6a4SAndroid Build Coastguard Worker pub max_usecs: __le32, 291*bb4ee6a4SAndroid Build Coastguard Worker } 292*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 293*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone)] 294*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_net_ctrl_coal_vq { 295*bb4ee6a4SAndroid Build Coastguard Worker pub vqn: __le16, 296*bb4ee6a4SAndroid Build Coastguard Worker pub reserved: __le16, 297*bb4ee6a4SAndroid Build Coastguard Worker pub coal: virtio_net_ctrl_coal, 298*bb4ee6a4SAndroid Build Coastguard Worker } 299