@@ -403,6 +403,103 @@ s! {
403403 }
404404
405405 // sys/sysctl.h
406+ pub struct kinfo_proc {
407+ pub p_forw: u64 ,
408+ pub p_back: u64 ,
409+ pub p_paddr: u64 ,
410+ pub p_addr: u64 ,
411+ pub p_fd: u64 ,
412+ pub p_stats: u64 ,
413+ pub p_limit: u64 ,
414+ pub p_vmspace: u64 ,
415+ pub p_sigacts: u64 ,
416+ pub p_sess: u64 ,
417+ pub p_tsess: u64 ,
418+ pub p_ru: u64 ,
419+ pub p_eflag: i32 ,
420+ pub p_exitsig: i32 ,
421+ pub p_flag: i32 ,
422+ pub p_pid: i32 ,
423+ pub p_ppid: i32 ,
424+ pub p_sid: i32 ,
425+ pub p__pgid: i32 ,
426+ pub p_tpgid: i32 ,
427+ pub p_uid: u32 ,
428+ pub p_ruid: u32 ,
429+ pub p_gid: u32 ,
430+ pub p_rgid: u32 ,
431+ pub p_groups: [ u32 ; KI_NGROUPS as usize ] ,
432+ pub p_ngroups: i16 ,
433+ pub p_jobc: i16 ,
434+ pub p_tdev: u32 ,
435+ pub p_estcpu: u32 ,
436+ pub p_rtime_sec: u32 ,
437+ pub p_rtime_usec: u32 ,
438+ pub p_cpticks: i32 ,
439+ pub p_pctcpu: u32 ,
440+ pub p_swtime: u32 ,
441+ pub p_slptime: u32 ,
442+ pub p_schedflags: i32 ,
443+ pub p_uticks: u64 ,
444+ pub p_sticks: u64 ,
445+ pub p_iticks: u64 ,
446+ pub p_tracep: u64 ,
447+ pub p_traceflag: i32 ,
448+ pub p_holdcnt: i32 ,
449+ pub p_siglist: i32 ,
450+ pub p_sigmask: u32 ,
451+ pub p_sigignore: u32 ,
452+ pub p_sigcatch: u32 ,
453+ pub p_stat: i8 ,
454+ pub p_priority: u8 ,
455+ pub p_usrpri: u8 ,
456+ pub p_nice: u8 ,
457+ pub p_xstat: u16 ,
458+ pub p_spare: u16 ,
459+ pub p_comm: [ :: c_char; KI_MAXCOMLEN as usize ] ,
460+ pub p_wmesg: [ :: c_char; KI_WMESGLEN as usize ] ,
461+ pub p_wchan: u64 ,
462+ pub p_login: [ :: c_char; KI_MAXLOGNAME as usize ] ,
463+ pub p_vm_rssize: i32 ,
464+ pub p_vm_tsize: i32 ,
465+ pub p_vm_dsize: i32 ,
466+ pub p_vm_ssize: i32 ,
467+ pub p_uvalid: i64 ,
468+ pub p_ustart_sec: u64 ,
469+ pub p_ustart_usec: u32 ,
470+ pub p_uutime_sec: u32 ,
471+ pub p_uutime_usec: u32 ,
472+ pub p_ustime_sec: u32 ,
473+ pub p_ustime_usec: u32 ,
474+ pub p_uru_maxrss: u64 ,
475+ pub p_uru_ixrss: u64 ,
476+ pub p_uru_idrss: u64 ,
477+ pub p_uru_isrss: u64 ,
478+ pub p_uru_minflt: u64 ,
479+ pub p_uru_majflt: u64 ,
480+ pub p_uru_nswap: u64 ,
481+ pub p_uru_inblock: u64 ,
482+ pub p_uru_oublock: u64 ,
483+ pub p_uru_msgsnd: u64 ,
484+ pub p_uru_msgrcv: u64 ,
485+ pub p_uru_nsignals: u64 ,
486+ pub p_uru_nvcsw: u64 ,
487+ pub p_uru_nivcsw: u64 ,
488+ pub p_uctime_sec: u32 ,
489+ pub p_uctime_usec: u32 ,
490+ pub p_psflags: u32 ,
491+ pub p_acflag: u32 ,
492+ pub p_svuid: u32 ,
493+ pub p_svgid: u32 ,
494+ pub p_emul: [ :: c_char; KI_EMULNAMELEN as usize ] ,
495+ pub p_rlim_rss_cur: u64 ,
496+ pub p_cpuid: u64 ,
497+ pub p_vm_map_size: u64 ,
498+ pub p_tid: i32 ,
499+ pub p_rtableid: u32 ,
500+ pub p_pledge: u64 ,
501+ }
502+
406503 pub struct kinfo_vmentry {
407504 pub kve_start: :: c_ulong,
408505 pub kve_end: :: c_ulong,
@@ -1525,6 +1622,12 @@ pub const FUTEX_WAKE: ::c_int = 2;
15251622pub const FUTEX_REQUEUE : :: c_int = 3 ;
15261623pub const FUTEX_PRIVATE_FLAG : :: c_int = 128 ;
15271624
1625+ // sysctl.h, kinfo_proc p_eflag constants
1626+ pub const EPROC_CTTY : i32 = 0x01 ; // controlling tty vnode active
1627+ pub const EPROC_SLEADER : i32 = 0x02 ; // session leader
1628+ pub const EPROC_UNVEIL : i32 = 0x04 ; // has unveil settings
1629+ pub const EPROC_LKUNVEIL : i32 = 0x08 ; // unveil is locked
1630+
15281631const_fn ! {
15291632 { const } fn _ALIGN( p: usize ) -> usize {
15301633 ( p + _ALIGNBYTES) & !_ALIGNBYTES
0 commit comments