Skip to content

Commit

Permalink
Auto merge of #2786 - Freaky:openbsd_kinfo_proc, r=Amanieu
Browse files Browse the repository at this point in the history
Add OpenBSD kinfo_proc struct
  • Loading branch information
bors committed May 11, 2022
2 parents a72d300 + ae7a8f8 commit c3e4df1
Show file tree
Hide file tree
Showing 2 changed files with 104 additions and 0 deletions.
1 change: 1 addition & 0 deletions libc-test/semver/openbsd.txt
Expand Up @@ -1042,6 +1042,7 @@ jrand48
kevent
key_t
killpg
kinfo_proc
kinfo_vmentry
kqueue
labs
Expand Down
103 changes: 103 additions & 0 deletions src/unix/bsd/netbsdlike/openbsd/mod.rs
Expand Up @@ -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,
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit c3e4df1

Please sign in to comment.