summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-05-11 01:02:33 +0000
committerbors <bors@rust-lang.org>2022-05-11 01:02:33 +0000
commitc3e4df1b3da401775ef9d54c9a0a9888a524f980 (patch)
tree151e093c9ad5d00e2250bf7a3789360f63828d07
parenta72d300fd05bcc441d9e4f865e2581da5da92500 (diff)
parentae7a8f8b7a90c0d7064a138454c4d86d1e1bb738 (diff)
downloadrust-libc-c3e4df1b3da401775ef9d54c9a0a9888a524f980.tar.gz
Auto merge of #2786 - Freaky:openbsd_kinfo_proc, r=Amanieu
Add OpenBSD kinfo_proc struct
-rw-r--r--libc-test/semver/openbsd.txt1
-rw-r--r--src/unix/bsd/netbsdlike/openbsd/mod.rs103
2 files changed, 104 insertions, 0 deletions
diff --git a/libc-test/semver/openbsd.txt b/libc-test/semver/openbsd.txt
index 58b3eedd12..6a2dc3379c 100644
--- a/libc-test/semver/openbsd.txt
+++ b/libc-test/semver/openbsd.txt
@@ -1042,6 +1042,7 @@ jrand48
kevent
key_t
killpg
+kinfo_proc
kinfo_vmentry
kqueue
labs
diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs
index 550f73ac10..199473dd6b 100644
--- a/src/unix/bsd/netbsdlike/openbsd/mod.rs
+++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs
@@ -403,6 +403,103 @@ s! {
}
// sys/sysctl.h
+ pub struct kinfo_proc {
+ pub p_forw: u64,
+ pub p_back: u64,
+ pub p_paddr: u64,
+ pub p_addr: u64,
+ pub p_fd: 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: i32,
+ pub p_sigmask: u32,
+ pub p_sigignore: u32,
+ pub p_sigcatch: u32,
+ pub p_stat: i8,
+ pub p_priority: u8,
+ pub p_usrpri: u8,
+ pub p_nice: u8,
+ pub p_xstat: u16,
+ pub p_spare: 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: u64,
+ 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_psflags: u32,
+ pub p_acflag: u32,
+ pub p_svuid: u32,
+ pub p_svgid: u32,
+ pub p_emul: [::c_char; KI_EMULNAMELEN as usize],
+ pub p_rlim_rss_cur: u64,
+ pub p_cpuid: u64,
+ pub p_vm_map_size: u64,
+ pub p_tid: i32,
+ pub p_rtableid: u32,
+ pub p_pledge: u64,
+ }
+
pub struct kinfo_vmentry {
pub kve_start: ::c_ulong,
pub kve_end: ::c_ulong,
@@ -1525,6 +1622,12 @@ pub const FUTEX_WAKE: ::c_int = 2;
pub const FUTEX_REQUEUE: ::c_int = 3;
pub const FUTEX_PRIVATE_FLAG: ::c_int = 128;
+// sysctl.h, kinfo_proc p_eflag constants
+pub const EPROC_CTTY: i32 = 0x01; // controlling tty vnode active
+pub const EPROC_SLEADER: i32 = 0x02; // session leader
+pub const EPROC_UNVEIL: i32 = 0x04; // has unveil settings
+pub const EPROC_LKUNVEIL: i32 = 0x08; // unveil is locked
+
const_fn! {
{const} fn _ALIGN(p: usize) -> usize {
(p + _ALIGNBYTES) & !_ALIGNBYTES