Skip to content

Commit ae16a69

Browse files
committed
freebsd: move net/if_mib.h contents to submodule
There is a conflict of NETLINK_GENERIC definitions between net/if_mib.h and netlink/netlink.h. netlink.h is already exported in the crate root for Linux (and those definitions are already used by at least crates neli and netlink-packet-route), and if_mib is not much used yet, so this moves if_mib contents into its own namespace to leave place for netlink support on FreeBSD (#3194). Module definition moved to the end of file to avoid cryptic style.rs error "constant found after module when it belongs before". ctest as of 0.22 cannot be told a given header's symbols live in a submodule, so let the tests ignore all of them. Signed-off-by: Yann Dirson <[email protected]>
1 parent 571e5be commit ae16a69

File tree

3 files changed

+74
-45
lines changed

3 files changed

+74
-45
lines changed

libc-test/build.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2453,6 +2453,33 @@ fn test_freebsd(target: &str) {
24532453
// FIXME: The values has been changed in FreeBSD 15:
24542454
"CLOCK_BOOTTIME" if Some(15) <= freebsd_ver => true,
24552455

2456+
// submodule ifmib, cannot be checked today
2457+
"DOT3COMPLIANCE_STATS"
2458+
| "DOT3COMPLIANCE_COLLS"
2459+
| "IFDATA_GENERAL"
2460+
| "IFDATA_LINKSPECIFIC"
2461+
| "IFDATA_DRIVERNAME"
2462+
| "IFMIB_IFCOUNT"
2463+
| "IFMIB_IFDATA"
2464+
| "IFMIB_SYSTEM"
2465+
| "NETLINK_GENERIC"
2466+
| "dot3ChipSetAMD7990"
2467+
| "dot3ChipSetAMD79900"
2468+
| "dot3ChipSetAMD79C940"
2469+
| "dot3ChipSetIntel82586"
2470+
| "dot3ChipSetIntel82596"
2471+
| "dot3ChipSetIntel82557"
2472+
| "dot3ChipSetNational8390"
2473+
| "dot3ChipSetNationalSonic"
2474+
| "dot3ChipSetFujitsu86950"
2475+
| "dot3ChipSetDigitalDC21040"
2476+
| "dot3ChipSetDigitalDC21140"
2477+
| "dot3ChipSetDigitalDC21041"
2478+
| "dot3ChipSetDigitalDC21140A"
2479+
| "dot3ChipSetDigitalDC21142"
2480+
| "dot3ChipSetWesternDigital83C690"
2481+
| "dot3ChipSetWesternDigital83C790" => true,
2482+
24562483
_ => false,
24572484
}
24582485
});
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// sys/net/if_mib.h
2+
3+
/// non-interface-specific
4+
pub const IFMIB_SYSTEM: ::c_int = 1;
5+
/// per-interface data table
6+
pub const IFMIB_IFDATA: ::c_int = 2;
7+
8+
/// generic stats for all kinds of ifaces
9+
pub const IFDATA_GENERAL: ::c_int = 1;
10+
/// specific to the type of interface
11+
pub const IFDATA_LINKSPECIFIC: ::c_int = 2;
12+
/// driver name and unit
13+
pub const IFDATA_DRIVERNAME: ::c_int = 3;
14+
15+
/// number of interfaces configured
16+
pub const IFMIB_IFCOUNT: ::c_int = 1;
17+
18+
/// functions not specific to a type of iface
19+
pub const NETLINK_GENERIC: ::c_int = 0;
20+
21+
pub const DOT3COMPLIANCE_STATS: ::c_int = 1;
22+
pub const DOT3COMPLIANCE_COLLS: ::c_int = 2;
23+
24+
pub const dot3ChipSetAMD7990: ::c_int = 1;
25+
pub const dot3ChipSetAMD79900: ::c_int = 2;
26+
pub const dot3ChipSetAMD79C940: ::c_int = 3;
27+
28+
pub const dot3ChipSetIntel82586: ::c_int = 1;
29+
pub const dot3ChipSetIntel82596: ::c_int = 2;
30+
pub const dot3ChipSetIntel82557: ::c_int = 3;
31+
32+
pub const dot3ChipSetNational8390: ::c_int = 1;
33+
pub const dot3ChipSetNationalSonic: ::c_int = 2;
34+
35+
pub const dot3ChipSetFujitsu86950: ::c_int = 1;
36+
37+
pub const dot3ChipSetDigitalDC21040: ::c_int = 1;
38+
pub const dot3ChipSetDigitalDC21140: ::c_int = 2;
39+
pub const dot3ChipSetDigitalDC21041: ::c_int = 3;
40+
pub const dot3ChipSetDigitalDC21140A: ::c_int = 4;
41+
pub const dot3ChipSetDigitalDC21142: ::c_int = 5;
42+
43+
pub const dot3ChipSetWesternDigital83C690: ::c_int = 1;
44+
pub const dot3ChipSetWesternDigital83C790: ::c_int = 2;

src/unix/bsd/freebsdlike/freebsd/mod.rs

Lines changed: 3 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -3483,51 +3483,6 @@ pub const IFDR_MSG_SIZE: ::c_int = 64;
34833483
pub const IFDR_REASON_MSG: ::c_int = 1;
34843484
pub const IFDR_REASON_VENDOR: ::c_int = 2;
34853485

3486-
// sys/net/if_mib.h
3487-
3488-
/// non-interface-specific
3489-
pub const IFMIB_SYSTEM: ::c_int = 1;
3490-
/// per-interface data table
3491-
pub const IFMIB_IFDATA: ::c_int = 2;
3492-
3493-
/// generic stats for all kinds of ifaces
3494-
pub const IFDATA_GENERAL: ::c_int = 1;
3495-
/// specific to the type of interface
3496-
pub const IFDATA_LINKSPECIFIC: ::c_int = 2;
3497-
/// driver name and unit
3498-
pub const IFDATA_DRIVERNAME: ::c_int = 3;
3499-
3500-
/// number of interfaces configured
3501-
pub const IFMIB_IFCOUNT: ::c_int = 1;
3502-
3503-
/// functions not specific to a type of iface
3504-
pub const NETLINK_GENERIC: ::c_int = 0;
3505-
3506-
pub const DOT3COMPLIANCE_STATS: ::c_int = 1;
3507-
pub const DOT3COMPLIANCE_COLLS: ::c_int = 2;
3508-
3509-
pub const dot3ChipSetAMD7990: ::c_int = 1;
3510-
pub const dot3ChipSetAMD79900: ::c_int = 2;
3511-
pub const dot3ChipSetAMD79C940: ::c_int = 3;
3512-
3513-
pub const dot3ChipSetIntel82586: ::c_int = 1;
3514-
pub const dot3ChipSetIntel82596: ::c_int = 2;
3515-
pub const dot3ChipSetIntel82557: ::c_int = 3;
3516-
3517-
pub const dot3ChipSetNational8390: ::c_int = 1;
3518-
pub const dot3ChipSetNationalSonic: ::c_int = 2;
3519-
3520-
pub const dot3ChipSetFujitsu86950: ::c_int = 1;
3521-
3522-
pub const dot3ChipSetDigitalDC21040: ::c_int = 1;
3523-
pub const dot3ChipSetDigitalDC21140: ::c_int = 2;
3524-
pub const dot3ChipSetDigitalDC21041: ::c_int = 3;
3525-
pub const dot3ChipSetDigitalDC21140A: ::c_int = 4;
3526-
pub const dot3ChipSetDigitalDC21142: ::c_int = 5;
3527-
3528-
pub const dot3ChipSetWesternDigital83C690: ::c_int = 1;
3529-
pub const dot3ChipSetWesternDigital83C790: ::c_int = 2;
3530-
35313486
// sys/netinet/in.h
35323487
// Protocols (RFC 1700)
35333488
// NOTE: These are in addition to the constants defined in src/unix/mod.rs
@@ -5883,3 +5838,6 @@ cfg_if! {
58835838
// Unknown target_arch
58845839
}
58855840
}
5841+
5842+
// sys/net/if_mib.h
5843+
pub mod ifmib;

0 commit comments

Comments
 (0)