@@ -73,7 +73,7 @@ pub type sem_t = sync_t;
7373pub type nl_item = c_int ;
7474
7575extern_ty ! {
76- pub enum timezone { }
76+ pub enum timezone { }
7777}
7878
7979s ! {
@@ -668,6 +668,10 @@ s! {
668668 pub uc_stack: stack_t,
669669 pub uc_mcontext: mcontext_t,
670670 }
671+ pub struct ifreq_buffer {
672+ pub length: size_t,
673+ pub buffer: * mut c_void,
674+ }
671675}
672676
673677s_no_extra_traits ! {
@@ -794,6 +798,35 @@ s_no_extra_traits! {
794798 pub __owner: c_uint,
795799 pub __spare: c_uint,
796800 }
801+
802+ pub union __c_anonymous_ifr_ifru {
803+ pub ifru_addr: crate :: sockaddr,
804+ pub ifru_dstaddr: crate :: sockaddr,
805+ pub ifru_broadaddr: crate :: sockaddr,
806+ pub ifru_buffer: ifreq_buffer,
807+ pub ifru_flags: [ c_short; 2 ] ,
808+ pub ifru_index: c_short,
809+ pub ifru_jid: c_int,
810+ pub ifru_metric: c_int,
811+ pub ifru_mtu: c_int,
812+ pub ifru_phys: c_int,
813+ pub ifru_media: c_int,
814+ pub ifru_data: * mut c_char,
815+ pub ifru_cap: [ c_int; 2 ] ,
816+ pub ifru_fib: c_uint,
817+ pub ifru_vlan_pcp: c_uchar,
818+ }
819+
820+ pub struct ifreq {
821+ /// if name, e.g. "en0"
822+ pub ifr_name: [ c_char; crate :: IFNAMSIZ ] ,
823+ pub ifr_ifru: __c_anonymous_ifr_ifru,
824+ }
825+
826+ pub union __c_anonymous_ifc_ifcu {
827+ pub ifcu_buf: * mut c_char,
828+ pub ifcu_req: * mut ifreq,
829+ }
797830}
798831
799832cfg_if ! {
@@ -1089,7 +1122,7 @@ pub const MS_SYNC: c_int = 2;
10891122pub const SCM_RIGHTS : c_int = 0x01 ;
10901123pub const SCM_TIMESTAMP : c_int = 0x02 ;
10911124cfg_if ! {
1092- if #[ cfg( not( target_env = "nto71_iosock" ) ) ] {
1125+ if #[ cfg( not( any ( target_env = "nto71_iosock" , target_env = "nto80" ) ) ) ] {
10931126 pub const SCM_CREDS : c_int = 0x04 ;
10941127 pub const IFF_NOTRAILERS : c_int = 0x00000020 ;
10951128 pub const AF_INET6 : c_int = 24 ;
@@ -2305,6 +2338,44 @@ pub const BIOCSRTIMEOUT: c_int = -2146418067;
23052338pub const BIOCVERSION : c_int = 1074020977 ;
23062339
23072340pub const BPF_ALIGNMENT : usize = size_of :: < c_long > ( ) ;
2341+ pub const BPF_LD : u16 = 0x00 ;
2342+ pub const BPF_LDX : u16 = 0x01 ;
2343+ pub const BPF_ST : u16 = 0x02 ;
2344+ pub const BPF_STX : u16 = 0x03 ;
2345+ pub const BPF_ALU : u16 = 0x04 ;
2346+ pub const BPF_JMP : u16 = 0x05 ;
2347+ pub const BPF_RET : u16 = 0x06 ;
2348+ pub const BPF_MISC : u16 = 0x07 ;
2349+ pub const BPF_W : u16 = 0x00 ;
2350+ pub const BPF_H : u16 = 0x08 ;
2351+ pub const BPF_B : u16 = 0x10 ;
2352+ pub const BPF_IMM : u16 = 0x00 ;
2353+ pub const BPF_ABS : u16 = 0x20 ;
2354+ pub const BPF_IND : u16 = 0x40 ;
2355+ pub const BPF_MEM : u16 = 0x60 ;
2356+ pub const BPF_LEN : u16 = 0x80 ;
2357+ pub const BPF_MSH : u16 = 0xa0 ;
2358+ pub const BPF_ADD : u16 = 0x00 ;
2359+ pub const BPF_SUB : u16 = 0x10 ;
2360+ pub const BPF_MUL : u16 = 0x20 ;
2361+ pub const BPF_DIV : u16 = 0x30 ;
2362+ pub const BPF_OR : u16 = 0x40 ;
2363+ pub const BPF_AND : u16 = 0x50 ;
2364+ pub const BPF_LSH : u16 = 0x60 ;
2365+ pub const BPF_RSH : u16 = 0x70 ;
2366+ pub const BPF_NEG : u16 = 0x80 ;
2367+ pub const BPF_MOD : u16 = 0x90 ;
2368+ pub const BPF_XOR : u16 = 0xa0 ;
2369+ pub const BPF_JA : u16 = 0x00 ;
2370+ pub const BPF_JEQ : u16 = 0x10 ;
2371+ pub const BPF_JGT : u16 = 0x20 ;
2372+ pub const BPF_JGE : u16 = 0x30 ;
2373+ pub const BPF_JSET : u16 = 0x40 ;
2374+ pub const BPF_K : u16 = 0x00 ;
2375+ pub const BPF_X : u16 = 0x08 ;
2376+ pub const BPF_A : u16 = 0x10 ;
2377+ pub const BPF_TAX : u16 = 0x00 ;
2378+ pub const BPF_TXA : u16 = 0x80 ;
23082379pub const CHAR_BIT : usize = 8 ;
23092380pub const CODESET : crate :: nl_item = 1 ;
23102381pub const CRNCYSTR : crate :: nl_item = 55 ;
@@ -2695,6 +2766,47 @@ f! {
26952766 let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 } ;
26962767 size_of:: <sockcred>( ) + size_of:: <crate :: gid_t>( ) * ngrps
26972768 }
2769+
2770+ pub fn BPF_CLASS ( code: u32 ) -> u32 {
2771+ code & 0x07
2772+ }
2773+
2774+ pub fn BPF_SIZE ( code: u32 ) -> u32 {
2775+ code & 0x18
2776+ }
2777+
2778+ pub fn BPF_MODE ( code: u32 ) -> u32 {
2779+ code & 0xe0
2780+ }
2781+
2782+ pub fn BPF_OP ( code: u32 ) -> u32 {
2783+ code & 0xf0
2784+ }
2785+
2786+ pub fn BPF_SRC ( code: u32 ) -> u32 {
2787+ code & 0x08
2788+ }
2789+
2790+ pub fn BPF_RVAL ( code: u32 ) -> u32 {
2791+ code & 0x18
2792+ }
2793+
2794+ pub fn BPF_MISCOP ( code: u32 ) -> u32 {
2795+ code & 0xf8
2796+ }
2797+
2798+ pub fn BPF_STMT ( code: u16 , k: u32 ) -> bpf_insn {
2799+ bpf_insn {
2800+ code,
2801+ jt: 0 ,
2802+ jf: 0 ,
2803+ k,
2804+ }
2805+ }
2806+
2807+ pub fn BPF_JUMP ( code: u16 , k: u32 , jt: u8 , jf: u8 ) -> bpf_insn {
2808+ bpf_insn { code, jt, jf, k }
2809+ }
26982810}
26992811
27002812safe_f ! {
0 commit comments