Skip to content

Commit

Permalink
Add missing sysctl net types for mac
Browse files Browse the repository at this point in the history
(backport <rust-lang#4022>)
(cherry picked from commit 57a1be4)
  • Loading branch information
GuillaumeGomez authored and tgross35 committed Nov 16, 2024
1 parent 6e199c9 commit 61da9bc
Showing 1 changed file with 71 additions and 0 deletions.
71 changes: 71 additions & 0 deletions src/unix/bsd/apple/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1188,6 +1188,51 @@ s! {
pub struct host_cpu_load_info {
pub cpu_ticks: [::natural_t; CPU_STATE_MAX as usize],
}

// net/if_mib.h
pub struct ifmibdata {
/// Name of interface
pub ifmd_name: [::c_char; ::IFNAMSIZ],
/// Number of promiscuous listeners
pub ifmd_pcount: ::c_uint,
/// Interface flags
pub ifmd_flags: ::c_uint,
/// Instantaneous length of send queue
pub ifmd_snd_len: ::c_uint,
/// Maximum length of send queue
pub ifmd_snd_maxlen: ::c_uint,
/// Number of drops in send queue
pub ifmd_snd_drops: ::c_uint,
/// For future expansion
pub ifmd_filler: [::c_uint; 4],
/// Generic information and statistics
pub ifmd_data: if_data64,
}

pub struct ifs_iso_8802_3 {
pub dot3StatsAlignmentErrors: u32,
pub dot3StatsFCSErrors: u32,
pub dot3StatsSingleCollisionFrames: u32,
pub dot3StatsMultipleCollisionFrames: u32,
pub dot3StatsSQETestErrors: u32,
pub dot3StatsDeferredTransmissions: u32,
pub dot3StatsLateCollisions: u32,
pub dot3StatsExcessiveCollisions: u32,
pub dot3StatsInternalMacTransmitErrors: u32,
pub dot3StatsCarrierSenseErrors: u32,
pub dot3StatsFrameTooLongs: u32,
pub dot3StatsInternalMacReceiveErrors: u32,
pub dot3StatsEtherChipSet: u32,
pub dot3StatsMissedFrames: u32,
pub dot3StatsCollFrequencies: [u32; 16],
pub dot3Compliance: u32,
}

pub struct if_family_id {
pub iffmid_len: u32,
pub iffmid_id: u32,
pub iffmid_str: [::c_char; 1],
}
}

s_no_extra_traits! {
Expand Down Expand Up @@ -5529,6 +5574,32 @@ pub const HOST_VM_INFO64_COUNT: mach_msg_type_number_t =
(::mem::size_of::<vm_statistics64_data_t>() / ::mem::size_of::<integer_t>())
as mach_msg_type_number_t;

// bsd/net/if_mib.h
/// Non-interface-specific
pub const IFMIB_SYSTEM: ::c_int = 1;
/// Per-interface data table
pub const IFMIB_IFDATA: ::c_int = 2;
/// All interfaces data at once
pub const IFMIB_IFALLDATA: ::c_int = 3;

/// Generic stats for all kinds of ifaces
pub const IFDATA_GENERAL: ::c_int = 1;
/// Specific to the type of interface
pub const IFDATA_LINKSPECIFIC: ::c_int = 2;
/// Addresses assigned to interface
pub const IFDATA_ADDRS: ::c_int = 3;
/// Multicast addresses assigned to interface
pub const IFDATA_MULTIADDRS: ::c_int = 4;

/// Number of interfaces configured
pub const IFMIB_IFCOUNT: ::c_int = 1;

/// Functions not specific to a type of iface
pub const NETLINK_GENERIC: ::c_int = 0;

pub const DOT3COMPLIANCE_STATS: ::c_int = 1;
pub const DOT3COMPLIANCE_COLLS: ::c_int = 2;

f! {
pub fn CMSG_NXTHDR(mhdr: *const ::msghdr,
cmsg: *const ::cmsghdr) -> *mut ::cmsghdr {
Expand Down

0 comments on commit 61da9bc

Please sign in to comment.