1 pub type c_char = i8; 2 3 s! { 4 pub struct lconv { 5 pub decimal_point: *mut ::c_char, 6 pub thousands_sep: *mut ::c_char, 7 pub grouping: *mut ::c_char, 8 pub int_curr_symbol: *mut ::c_char, 9 pub currency_symbol: *mut ::c_char, 10 pub mon_decimal_point: *mut ::c_char, 11 pub mon_thousands_sep: *mut ::c_char, 12 pub mon_grouping: *mut ::c_char, 13 pub positive_sign: *mut ::c_char, 14 pub negative_sign: *mut ::c_char, 15 pub int_frac_digits: ::c_char, 16 pub frac_digits: ::c_char, 17 pub p_cs_precedes: ::c_char, 18 pub p_sep_by_space: ::c_char, 19 pub n_cs_precedes: ::c_char, 20 pub n_sep_by_space: ::c_char, 21 pub p_sign_posn: ::c_char, 22 pub n_sign_posn: ::c_char, 23 pub int_p_cs_precedes: ::c_char, 24 pub int_n_cs_precedes: ::c_char, 25 pub int_p_sep_by_space: ::c_char, 26 pub int_n_sep_by_space: ::c_char, 27 pub int_p_sign_posn: ::c_char, 28 pub int_n_sign_posn: ::c_char, 29 } 30 } 31 32 pub const LC_COLLATE_MASK: ::c_int = (1 << 0); 33 pub const LC_CTYPE_MASK: ::c_int = (1 << 1); 34 pub const LC_MESSAGES_MASK: ::c_int = (1 << 2); 35 pub const LC_MONETARY_MASK: ::c_int = (1 << 3); 36 pub const LC_NUMERIC_MASK: ::c_int = (1 << 4); 37 pub const LC_TIME_MASK: ::c_int = (1 << 5); 38 pub const LC_ALL_MASK: ::c_int = LC_COLLATE_MASK 39 | LC_CTYPE_MASK 40 | LC_MESSAGES_MASK 41 | LC_MONETARY_MASK 42 | LC_NUMERIC_MASK 43 | LC_TIME_MASK; 44 45 pub const ERA: ::nl_item = 52; 46 pub const ERA_D_FMT: ::nl_item = 53; 47 pub const ERA_D_T_FMT: ::nl_item = 54; 48 pub const ERA_T_FMT: ::nl_item = 55; 49 pub const ALT_DIGITS: ::nl_item = 56; 50 51 pub const D_MD_ORDER: ::nl_item = 57; 52 53 pub const ALTMON_1: ::nl_item = 58; 54 pub const ALTMON_2: ::nl_item = 59; 55 pub const ALTMON_3: ::nl_item = 60; 56 pub const ALTMON_4: ::nl_item = 61; 57 pub const ALTMON_5: ::nl_item = 62; 58 pub const ALTMON_6: ::nl_item = 63; 59 pub const ALTMON_7: ::nl_item = 64; 60 pub const ALTMON_8: ::nl_item = 65; 61 pub const ALTMON_9: ::nl_item = 66; 62 pub const ALTMON_10: ::nl_item = 67; 63 pub const ALTMON_11: ::nl_item = 68; 64 pub const ALTMON_12: ::nl_item = 69; 65 66 pub const KERN_RND: ::c_int = 31; 67 68 // https://github.com/bitrig/bitrig/blob/master/sys/net/if.h#L187 69 pub const IFF_UP: ::c_int = 0x1; // interface is up 70 pub const IFF_BROADCAST: ::c_int = 0x2; // broadcast address valid 71 pub const IFF_DEBUG: ::c_int = 0x4; // turn on debugging 72 pub const IFF_LOOPBACK: ::c_int = 0x8; // is a loopback net 73 pub const IFF_POINTOPOINT: ::c_int = 0x10; // interface is point-to-point link 74 pub const IFF_NOTRAILERS: ::c_int = 0x20; // avoid use of trailers 75 pub const IFF_RUNNING: ::c_int = 0x40; // resources allocated 76 pub const IFF_NOARP: ::c_int = 0x80; // no address resolution protocol 77 pub const IFF_PROMISC: ::c_int = 0x100; // receive all packets 78 pub const IFF_ALLMULTI: ::c_int = 0x200; // receive all multicast packets 79 pub const IFF_OACTIVE: ::c_int = 0x400; // transmission in progress 80 pub const IFF_SIMPLEX: ::c_int = 0x800; // can't hear own transmissions 81 pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit 82 pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit 83 pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit 84 pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast 85 86 pub const SIGSTKSZ : ::size_t = 40960; 87 88 pub const PT_FIRSTMACH: ::c_int = 32; 89 90 extern { nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char91 pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; duplocale(base: ::locale_t) -> ::locale_t92 pub fn duplocale(base: ::locale_t) -> ::locale_t; freelocale(loc: ::locale_t) -> ::c_int93 pub fn freelocale(loc: ::locale_t) -> ::c_int; newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t94 pub fn newlocale(mask: ::c_int, 95 locale: *const ::c_char, 96 base: ::locale_t) -> ::locale_t; uselocale(loc: ::locale_t) -> ::locale_t97 pub fn uselocale(loc: ::locale_t) -> ::locale_t; pledge(promises: *const ::c_char, paths: *mut *const ::c_char) -> ::c_int98 pub fn pledge(promises: *const ::c_char, 99 paths: *mut *const ::c_char) -> ::c_int; querylocale(mask: ::c_int, loc: ::locale_t) -> *const ::c_char100 pub fn querylocale(mask: ::c_int, loc: ::locale_t) -> *const ::c_char; 101 } 102 103 cfg_if! { 104 if #[cfg(target_arch = "x86")] { 105 mod x86; 106 pub use self::x86::*; 107 } else if #[cfg(target_arch = "x86_64")] { 108 mod x86_64; 109 pub use self::x86_64::*; 110 } else { 111 // Unknown target_arch 112 } 113 } 114