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