Skip to content

Commit 1687b82

Browse files
committed
Relocate nto net headers to src/new
1 parent 9aec841 commit 1687b82

File tree

5 files changed

+123
-319
lines changed

5 files changed

+123
-319
lines changed

src/new/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,9 @@ cfg_if! {
193193
pub use utmpx_::*;
194194
} else if #[cfg(target_os = "openbsd")] {
195195
pub use sys::ipc::*;
196+
} else if #[cfg(target_os = "nto")] {
197+
pub use net::bpf::*;
198+
pub use net::if_::*;
196199
}
197200
}
198201

src/new/nto/mod.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,8 @@
22
// FIXME(nto): link to manpages needed.
33

44
pub(crate) mod unistd;
5+
6+
pub(crate) mod net {
7+
pub(crate) mod bpf;
8+
pub(crate) mod if_;
9+
}

src/new/nto/net/bpf.rs

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
use crate::bpf_insn;
2+
3+
pub const BPF_LD: u16 = 0x00;
4+
pub const BPF_LDX: u16 = 0x01;
5+
pub const BPF_ST: u16 = 0x02;
6+
pub const BPF_STX: u16 = 0x03;
7+
pub const BPF_ALU: u16 = 0x04;
8+
pub const BPF_JMP: u16 = 0x05;
9+
pub const BPF_RET: u16 = 0x06;
10+
pub const BPF_MISC: u16 = 0x07;
11+
pub const BPF_W: u16 = 0x00;
12+
pub const BPF_H: u16 = 0x08;
13+
pub const BPF_B: u16 = 0x10;
14+
pub const BPF_IMM: u16 = 0x00;
15+
pub const BPF_ABS: u16 = 0x20;
16+
pub const BPF_IND: u16 = 0x40;
17+
pub const BPF_MEM: u16 = 0x60;
18+
pub const BPF_LEN: u16 = 0x80;
19+
pub const BPF_MSH: u16 = 0xa0;
20+
pub const BPF_ADD: u16 = 0x00;
21+
pub const BPF_SUB: u16 = 0x10;
22+
pub const BPF_MUL: u16 = 0x20;
23+
pub const BPF_DIV: u16 = 0x30;
24+
pub const BPF_OR: u16 = 0x40;
25+
pub const BPF_AND: u16 = 0x50;
26+
pub const BPF_LSH: u16 = 0x60;
27+
pub const BPF_RSH: u16 = 0x70;
28+
pub const BPF_NEG: u16 = 0x80;
29+
pub const BPF_MOD: u16 = 0x90;
30+
pub const BPF_XOR: u16 = 0xa0;
31+
pub const BPF_JA: u16 = 0x00;
32+
pub const BPF_JEQ: u16 = 0x10;
33+
pub const BPF_JGT: u16 = 0x20;
34+
pub const BPF_JGE: u16 = 0x30;
35+
pub const BPF_JSET: u16 = 0x40;
36+
pub const BPF_K: u16 = 0x00;
37+
pub const BPF_X: u16 = 0x08;
38+
pub const BPF_A: u16 = 0x10;
39+
pub const BPF_TAX: u16 = 0x00;
40+
pub const BPF_TXA: u16 = 0x80;
41+
42+
43+
pub fn BPF_CLASS(code: u32) -> u32 {
44+
code & 0x07
45+
}
46+
47+
pub fn BPF_SIZE(code: u32) -> u32 {
48+
code & 0x18
49+
}
50+
51+
pub fn BPF_MODE(code: u32) -> u32 {
52+
code & 0xe0
53+
}
54+
55+
pub fn BPF_OP(code: u32) -> u32 {
56+
code & 0xf0
57+
}
58+
59+
pub fn BPF_SRC(code: u32) -> u32 {
60+
code & 0x08
61+
}
62+
63+
pub fn BPF_RVAL(code: u32) -> u32 {
64+
code & 0x18
65+
}
66+
67+
pub fn BPF_MISCOP(code: u32) -> u32 {
68+
code & 0xf8
69+
}
70+
71+
pub fn BPF_STMT(code: u16, k: u32) -> bpf_insn {
72+
bpf_insn {
73+
code,
74+
jt: 0,
75+
jf: 0,
76+
k,
77+
}
78+
}
79+
80+
pub fn BPF_JUMP(code: u16, k: u32, jt: u8, jf: u8) -> bpf_insn {
81+
bpf_insn { code, jt, jf, k }
82+
}

src/new/nto/net/if_.rs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
use crate::prelude::*;
2+
3+
s! {
4+
pub struct ifreq {
5+
/// if name, e.g. "en0"
6+
pub ifr_name: [c_char; crate::IFNAMSIZ],
7+
pub ifr_ifru: __c_anonymous_ifr_ifru,
8+
}
9+
pub struct ifreq_buffer {
10+
pub length: size_t,
11+
pub buffer: *mut c_void,
12+
}
13+
}
14+
15+
s_no_extra_traits! {
16+
pub union __c_anonymous_ifr_ifru {
17+
pub ifru_addr: crate::sockaddr,
18+
pub ifru_dstaddr: crate::sockaddr,
19+
pub ifru_broadaddr: crate::sockaddr,
20+
pub ifru_buffer: ifreq_buffer,
21+
pub ifru_flags: [c_short; 2],
22+
pub ifru_index: c_short,
23+
pub ifru_jid: c_int,
24+
pub ifru_metric: c_int,
25+
pub ifru_mtu: c_int,
26+
pub ifru_phys: c_int,
27+
pub ifru_media: c_int,
28+
pub ifru_data: *mut c_char,
29+
pub ifru_cap: [c_int; 2],
30+
pub ifru_fib: c_uint,
31+
pub ifru_vlan_pcp: c_uchar,
32+
}
33+
}

0 commit comments

Comments
 (0)