1 //! 64-bit specific Apple (ios/darwin) definitions 2 3 pub type c_long = i64; 4 pub type c_ulong = u64; 5 6 s! { 7 pub struct timeval32 { 8 pub tv_sec: i32, 9 pub tv_usec: i32, 10 } 11 12 pub struct if_data { 13 pub ifi_type: ::c_uchar, 14 pub ifi_typelen: ::c_uchar, 15 pub ifi_physical: ::c_uchar, 16 pub ifi_addrlen: ::c_uchar, 17 pub ifi_hdrlen: ::c_uchar, 18 pub ifi_recvquota: ::c_uchar, 19 pub ifi_xmitquota: ::c_uchar, 20 pub ifi_unused1: ::c_uchar, 21 pub ifi_mtu: u32, 22 pub ifi_metric: u32, 23 pub ifi_baudrate: u32, 24 pub ifi_ipackets: u32, 25 pub ifi_ierrors: u32, 26 pub ifi_opackets: u32, 27 pub ifi_oerrors: u32, 28 pub ifi_collisions: u32, 29 pub ifi_ibytes: u32, 30 pub ifi_obytes: u32, 31 pub ifi_imcasts: u32, 32 pub ifi_omcasts: u32, 33 pub ifi_iqdrops: u32, 34 pub ifi_noproto: u32, 35 pub ifi_recvtiming: u32, 36 pub ifi_xmittiming: u32, 37 pub ifi_lastchange: timeval32, 38 pub ifi_unused2: u32, 39 pub ifi_hwassist: u32, 40 pub ifi_reserved1: u32, 41 pub ifi_reserved2: u32, 42 } 43 44 pub struct bpf_hdr { 45 pub bh_tstamp: ::timeval32, 46 pub bh_caplen: u32, 47 pub bh_datalen: u32, 48 pub bh_hdrlen: ::c_ushort, 49 } 50 } 51 52 s_no_extra_traits! { 53 pub struct pthread_attr_t { 54 __sig: c_long, 55 __opaque: [::c_char; 56] 56 } 57 } 58 59 cfg_if! { 60 if #[cfg(feature = "extra_traits")] { 61 impl PartialEq for pthread_attr_t { 62 fn eq(&self, other: &pthread_attr_t) -> bool { 63 self.__sig == other.__sig 64 && self.__opaque 65 .iter() 66 .zip(other.__opaque.iter()) 67 .all(|(a,b)| a == b) 68 } 69 } 70 impl Eq for pthread_attr_t {} 71 impl ::fmt::Debug for pthread_attr_t { 72 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { 73 f.debug_struct("pthread_attr_t") 74 .field("__sig", &self.__sig) 75 // FIXME: .field("__opaque", &self.__opaque) 76 .finish() 77 } 78 } 79 impl ::hash::Hash for pthread_attr_t { 80 fn hash<H: ::hash::Hasher>(&self, state: &mut H) { 81 self.__sig.hash(state); 82 self.__opaque.hash(state); 83 } 84 } 85 } 86 } 87 88 #[doc(hidden)] 89 #[deprecated(since = "0.2.55")] 90 pub const NET_RT_MAXID: ::c_int = 11; 91 92 pub const __PTHREAD_MUTEX_SIZE__: usize = 56; 93 pub const __PTHREAD_COND_SIZE__: usize = 40; 94 pub const __PTHREAD_CONDATTR_SIZE__: usize = 8; 95 pub const __PTHREAD_RWLOCK_SIZE__: usize = 192; 96 pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 16; 97 98 pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; 99 pub const TIOCDCDTIMESTAMP: ::c_ulong = 0x40107458; 100 101 pub const BIOCSETF: ::c_ulong = 0x80104267; 102 pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; 103 pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; 104 pub const BIOCSETFNR: ::c_ulong = 0x8010427e; 105 106 extern "C" { exchangedata( path1: *const ::c_char, path2: *const ::c_char, options: ::c_uint, ) -> ::c_int107 pub fn exchangedata( 108 path1: *const ::c_char, 109 path2: *const ::c_char, 110 options: ::c_uint, 111 ) -> ::c_int; 112 } 113 114 cfg_if! { 115 if #[cfg(target_arch = "x86_64")] { 116 mod x86_64; 117 pub use self::x86_64::*; 118 } else if #[cfg(target_arch = "aarch64")] { 119 mod aarch64; 120 pub use self::aarch64::*; 121 } else { 122 // Unknown target_arch 123 } 124 } 125