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