Skip to content

Add NetBSD ki_sigset_t, kinfo_proc2, and kinfo_lwp structs #2792

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 24, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion libc-test/semver/netbsd.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1275,8 +1275,10 @@ jrand48
kevent
key_t
killpg
kinfo_vmentry
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why was this removed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It wasn't removed, I just sorted this hunk - it's under kinfo_proc2.

kinfo_getvmmap
kinfo_lwp
kinfo_proc2
kinfo_vmentry
kqueue
kqueue1
labs
Expand Down
144 changes: 144 additions & 0 deletions src/unix/bsd/netbsdlike/netbsd/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -487,6 +487,134 @@ s! {
af_arg: [[::c_char; 10]; 24],
}

pub struct ki_sigset_t {
pub __bits: [u32; 4],
}

pub struct kinfo_proc2 {
pub p_forw: u64,
pub p_back: u64,
pub p_paddr: u64,
pub p_addr: u64,
pub p_fd: u64,
pub p_cwdi: u64,
pub p_stats: u64,
pub p_limit: u64,
pub p_vmspace: u64,
pub p_sigacts: u64,
pub p_sess: u64,
pub p_tsess: u64,
pub p_ru: u64,
pub p_eflag: i32,
pub p_exitsig: i32,
pub p_flag: i32,
pub p_pid: i32,
pub p_ppid: i32,
pub p_sid: i32,
pub p__pgid: i32,
pub p_tpgid: i32,
pub p_uid: u32,
pub p_ruid: u32,
pub p_gid: u32,
pub p_rgid: u32,
pub p_groups: [u32; KI_NGROUPS as usize],
pub p_ngroups: i16,
pub p_jobc: i16,
pub p_tdev: u32,
pub p_estcpu: u32,
pub p_rtime_sec: u32,
pub p_rtime_usec: u32,
pub p_cpticks: i32,
pub p_pctcpu: u32,
pub p_swtime: u32,
pub p_slptime: u32,
pub p_schedflags: i32,
pub p_uticks: u64,
pub p_sticks: u64,
pub p_iticks: u64,
pub p_tracep: u64,
pub p_traceflag: i32,
pub p_holdcnt: i32,
pub p_siglist: ki_sigset_t,
pub p_sigmask: ki_sigset_t,
pub p_sigignore: ki_sigset_t,
pub p_sigcatch: ki_sigset_t,
pub p_stat: i8,
pub p_priority: u8,
pub p_usrpri: u8,
pub p_nice: u8,
pub p_xstat: u16,
pub p_acflag: u16,
pub p_comm: [::c_char; KI_MAXCOMLEN as usize],
pub p_wmesg: [::c_char; KI_WMESGLEN as usize],
pub p_wchan: u64,
pub p_login: [::c_char; KI_MAXLOGNAME as usize],
pub p_vm_rssize: i32,
pub p_vm_tsize: i32,
pub p_vm_dsize: i32,
pub p_vm_ssize: i32,
pub p_uvalid: i64,
pub p_ustart_sec: u32,
pub p_ustart_usec: u32,
pub p_uutime_sec: u32,
pub p_uutime_usec: u32,
pub p_ustime_sec: u32,
pub p_ustime_usec: u32,
pub p_uru_maxrss: u64,
pub p_uru_ixrss: u64,
pub p_uru_idrss: u64,
pub p_uru_isrss: u64,
pub p_uru_minflt: u64,
pub p_uru_majflt: u64,
pub p_uru_nswap: u64,
pub p_uru_inblock: u64,
pub p_uru_oublock: u64,
pub p_uru_msgsnd: u64,
pub p_uru_msgrcv: u64,
pub p_uru_nsignals: u64,
pub p_uru_nvcsw: u64,
pub p_uru_nivcsw: u64,
pub p_uctime_sec: u32,
pub p_uctime_usec: u32,
pub p_cpuid: u64,
pub p_realflag: u64,
pub p_nlwps: u64,
pub p_nrlwps: u64,
pub p_realstat: u64,
pub p_svuid: u32,
pub p_svgid: u32,
pub p_ename: [::c_char; KI_MAXEMULLEN as usize],
pub p_vm_vsize: i64,
pub p_vm_msize: i64,
}

pub struct kinfo_lwp {
pub l_forw: u64,
pub l_back: u64,
pub l_laddr: u64,
pub l_addr: u64,
pub l_lid: i32,
pub l_flag: i32,
pub l_swtime: u32,
pub l_slptime: u32,
pub l_schedflags: i32,
pub l_holdcnt: i32,
pub l_priority: u8,
pub l_usrpri: u8,
pub l_stat: i8,
l_pad1: i8,
l_pad2: i32,
pub l_wmesg: [::c_char; KI_WMESGLEN as usize],
pub l_wchan: u64,
pub l_cpuid: u64,
pub l_rtime_sec: u32,
pub l_rtime_usec: u32,
pub l_cpticks: u32,
pub l_pctcpu: u32,
pub l_pid: u32,
pub l_name: [::c_char; KI_LNAMELEN as usize],
}

pub struct kinfo_vmentry {
pub kve_start: u64,
pub kve_end: u64,
Expand Down Expand Up @@ -2121,6 +2249,22 @@ pub const KVME_FLAG_GROWS_DOWN: ::c_int = 0x000000020;

pub const NGROUPS_MAX: ::c_int = 16;

pub const KI_NGROUPS: ::c_int = 16;
pub const KI_MAXCOMLEN: ::c_int = 24;
pub const KI_WMESGLEN: ::c_int = 8;
pub const KI_MAXLOGNAME: ::c_int = 24;
pub const KI_MAXEMULLEN: ::c_int = 16;
pub const KI_LNAMELEN: ::c_int = 20;

// sys/lwp.h
pub const LSIDL: ::c_int = 1;
pub const LSRUN: ::c_int = 2;
pub const LSSLEEP: ::c_int = 3;
pub const LSSTOP: ::c_int = 4;
pub const LSZOMB: ::c_int = 5;
pub const LSONPROC: ::c_int = 7;
pub const LSSUSPENDED: ::c_int = 8;

const_fn! {
{const} fn _ALIGN(p: usize) -> usize {
(p + _ALIGNBYTES) & !_ALIGNBYTES
Expand Down