@@ -370,6 +370,16 @@ s! {
370370 pub t_sw: i16 ,
371371 pub t_pad: [ u16 ; 3 ] ,
372372 }
373+
374+ pub struct rusage_ext {
375+ pub rux_runtime: u64 ,
376+ pub rux_uticks: u64 ,
377+ pub rux_sticks: u64 ,
378+ pub rux_iticks: u64 ,
379+ pub rux_uu: u64 ,
380+ pub rux_su: u64 ,
381+ pub rux_tu: u64 ,
382+ }
373383}
374384
375385s_no_extra_traits ! {
@@ -1897,6 +1907,164 @@ pub const _POSIX2_EXPR_NEST_MAX: ::c_int = 32;
18971907pub const _POSIX2_LINE_MAX: :: c_int = 2048 ;
18981908pub const _POSIX2_RE_DUP_MAX: :: c_int = 255 ;
18991909
1910+ // sys/proc.h
1911+ pub const TDF_BORROWING : :: c_int = 0x00000001 ;
1912+ pub const TDF_INPANIC : :: c_int = 0x00000002 ;
1913+ pub const TDF_INMEM : :: c_int = 0x00000004 ;
1914+ pub const TDF_SINTR : :: c_int = 0x00000008 ;
1915+ pub const TDF_TIMEOUT : :: c_int = 0x00000010 ;
1916+ pub const TDF_IDLETD : :: c_int = 0x00000020 ;
1917+ pub const TDF_CANSWAP : :: c_int = 0x00000040 ;
1918+ pub const TDF_KTH_SUSP : :: c_int = 0x00000100 ;
1919+ pub const TDF_ALLPROCSUSP : :: c_int = 0x00000200 ;
1920+ pub const TDF_BOUNDARY : :: c_int = 0x00000400 ;
1921+ pub const TDF_ASTPENDING : :: c_int = 0x00000800 ;
1922+ pub const TDF_SBDRY : :: c_int = 0x00002000 ;
1923+ pub const TDF_UPIBLOCKED : :: c_int = 0x00004000 ;
1924+ pub const TDF_NEEDSUSPCHK : :: c_int = 0x00008000 ;
1925+ pub const TDF_NEEDRESCHED : :: c_int = 0x00010000 ;
1926+ pub const TDF_NEEDSIGCHK : :: c_int = 0x00020000 ;
1927+ pub const TDF_NOLOAD : :: c_int = 0x00040000 ;
1928+ pub const TDF_SERESTART : :: c_int = 0x00080000 ;
1929+ pub const TDF_THRWAKEUP : :: c_int = 0x00100000 ;
1930+ pub const TDF_SEINTR : :: c_int = 0x00200000 ;
1931+ pub const TDF_SWAPINREQ : :: c_int = 0x00400000 ;
1932+ pub const TDF_UNUSED23 : :: c_int = 0x00800000 ;
1933+ pub const TDF_SCHED0 : :: c_int = 0x01000000 ;
1934+ pub const TDF_SCHED1 : :: c_int = 0x02000000 ;
1935+ pub const TDF_SCHED2 : :: c_int = 0x04000000 ;
1936+ pub const TDF_SCHED3 : :: c_int = 0x08000000 ;
1937+ pub const TDF_ALRMPEND : :: c_int = 0x10000000 ;
1938+ pub const TDF_PROFPEND : :: c_int = 0x20000000 ;
1939+ pub const TDF_MACPEND : :: c_int = 0x40000000 ;
1940+
1941+ pub const TDB_SUSPEND : :: c_int = 0x00000001 ;
1942+ pub const TDB_XSIG : :: c_int = 0x00000002 ;
1943+ pub const TDB_USERWR : :: c_int = 0x00000004 ;
1944+ pub const TDB_SCE : :: c_int = 0x00000008 ;
1945+ pub const TDB_SCX : :: c_int = 0x00000010 ;
1946+ pub const TDB_EXEC : :: c_int = 0x00000020 ;
1947+ pub const TDB_FORK : :: c_int = 0x00000040 ;
1948+ pub const TDB_STOPATFORK : :: c_int = 0x00000080 ;
1949+ pub const TDB_CHILD : :: c_int = 0x00000100 ;
1950+ pub const TDB_BORN : :: c_int = 0x00000200 ;
1951+ pub const TDB_EXIT : :: c_int = 0x00000400 ;
1952+ pub const TDB_VFORK : :: c_int = 0x00000800 ;
1953+ pub const TDB_FSTP : :: c_int = 0x00001000 ;
1954+ pub const TDB_STEP : :: c_int = 0x00002000 ;
1955+
1956+ pub const TDP_OLDMASK : :: c_int = 0x00000001 ;
1957+ pub const TDP_INKTR : :: c_int = 0x00000002 ;
1958+ pub const TDP_INKTRACE : :: c_int = 0x00000004 ;
1959+ pub const TDP_BUFNEED : :: c_int = 0x00000008 ;
1960+ pub const TDP_COWINPROGRESS : :: c_int = 0x00000010 ;
1961+ pub const TDP_ALTSTACK : :: c_int = 0x00000020 ;
1962+ pub const TDP_DEADLKTREAT : :: c_int = 0x00000040 ;
1963+ pub const TDP_NOFAULTING : :: c_int = 0x00000080 ;
1964+ pub const TDP_OWEUPC : :: c_int = 0x00000200 ;
1965+ pub const TDP_ITHREAD : :: c_int = 0x00000400 ;
1966+ pub const TDP_SYNCIO : :: c_int = 0x00000800 ;
1967+ pub const TDP_SCHED1 : :: c_int = 0x00001000 ;
1968+ pub const TDP_SCHED2 : :: c_int = 0x00002000 ;
1969+ pub const TDP_SCHED3 : :: c_int = 0x00004000 ;
1970+ pub const TDP_SCHED4 : :: c_int = 0x00008000 ;
1971+ pub const TDP_GEOM : :: c_int = 0x00010000 ;
1972+ pub const TDP_SOFTDEP : :: c_int = 0x00020000 ;
1973+ pub const TDP_NORUNNINGBUF : :: c_int = 0x00040000 ;
1974+ pub const TDP_WAKEUP : :: c_int = 0x00080000 ;
1975+ pub const TDP_INBDFLUSH : :: c_int = 0x00100000 ;
1976+ pub const TDP_KTHREAD : :: c_int = 0x00200000 ;
1977+ pub const TDP_CALLCHAIN : :: c_int = 0x00400000 ;
1978+ pub const TDP_IGNSUSP : :: c_int = 0x00800000 ;
1979+ pub const TDP_AUDITREC : :: c_int = 0x01000000 ;
1980+ pub const TDP_RFPPWAIT : :: c_int = 0x02000000 ;
1981+ pub const TDP_RESETSPUR : :: c_int = 0x04000000 ;
1982+ pub const TDP_NERRNO : :: c_int = 0x08000000 ;
1983+ pub const TDP_EXECVMSPC : :: c_int = 0x40000000 ;
1984+
1985+ pub const TDI_SUSPENDED : :: c_int = 0x0001 ;
1986+ pub const TDI_SLEEPING : :: c_int = 0x0002 ;
1987+ pub const TDI_SWAPPED : :: c_int = 0x0004 ;
1988+ pub const TDI_LOCK : :: c_int = 0x0008 ;
1989+ pub const TDI_IWAIT : :: c_int = 0x0010 ;
1990+
1991+ pub const P_ADVLOCK : :: c_int = 0x00000001 ;
1992+ pub const P_CONTROLT : :: c_int = 0x00000002 ;
1993+ pub const P_KPROC : :: c_int = 0x00000004 ;
1994+ pub const P_UNUSED3 : :: c_int = 0x00000008 ;
1995+ pub const P_PPWAIT : :: c_int = 0x00000010 ;
1996+ pub const P_PROFIL : :: c_int = 0x00000020 ;
1997+ pub const P_STOPPROF : :: c_int = 0x00000040 ;
1998+ pub const P_HADTHREADS : :: c_int = 0x00000080 ;
1999+ pub const P_SUGID : :: c_int = 0x00000100 ;
2000+ pub const P_SYSTEM : :: c_int = 0x00000200 ;
2001+ pub const P_SINGLE_EXIT : :: c_int = 0x00000400 ;
2002+ pub const P_TRACED : :: c_int = 0x00000800 ;
2003+ pub const P_WAITED : :: c_int = 0x00001000 ;
2004+ pub const P_WEXIT : :: c_int = 0x00002000 ;
2005+ pub const P_EXEC : :: c_int = 0x00004000 ;
2006+ pub const P_WKILLED : :: c_int = 0x00008000 ;
2007+ pub const P_CONTINUED : :: c_int = 0x00010000 ;
2008+ pub const P_STOPPED_SIG : :: c_int = 0x00020000 ;
2009+ pub const P_STOPPED_TRACE : :: c_int = 0x00040000 ;
2010+ pub const P_STOPPED_SINGLE : :: c_int = 0x00080000 ;
2011+ pub const P_PROTECTED : :: c_int = 0x00100000 ;
2012+ pub const P_SIGEVENT : :: c_int = 0x00200000 ;
2013+ pub const P_SINGLE_BOUNDARY : :: c_int = 0x00400000 ;
2014+ pub const P_HWPMC : :: c_int = 0x00800000 ;
2015+ pub const P_JAILED : :: c_int = 0x01000000 ;
2016+ pub const P_TOTAL_STOP : :: c_int = 0x02000000 ;
2017+ pub const P_INEXEC : :: c_int = 0x04000000 ;
2018+ pub const P_STATCHILD : :: c_int = 0x08000000 ;
2019+ pub const P_INMEM : :: c_int = 0x10000000 ;
2020+ pub const P_SWAPPINGOUT : :: c_int = 0x20000000 ;
2021+ pub const P_SWAPPINGIN : :: c_int = 0x40000000 ;
2022+ pub const P_PPTRACE : :: c_int = 0x80000000 ;
2023+ pub const P_STOPPED : :: c_int = P_STOPPED_SIG | P_STOPPED_SINGLE | P_STOPPED_TRACE ;
2024+
2025+ pub const P2_INHERIT_PROTECTED : :: c_int = 0x00000001 ;
2026+ pub const P2_NOTRACE : :: c_int = 0x00000002 ;
2027+ pub const P2_NOTRACE_EXEC : :: c_int = 0x00000004 ;
2028+ pub const P2_AST_SU : :: c_int = 0x00000008 ;
2029+ pub const P2_PTRACE_FSTP : :: c_int = 0x00000010 ;
2030+ pub const P2_TRAPCAP : :: c_int = 0x00000020 ;
2031+ pub const P2_STKGAP_DISABLE : :: c_int = 0x00000800 ;
2032+ pub const P2_STKGAP_DISABLE_EXEC : :: c_int = 0x00001000 ;
2033+
2034+ pub const P_TREE_ORPHANED : :: c_int = 0x00000001 ;
2035+ pub const P_TREE_FIRST_ORPHAN : :: c_int = 0x00000002 ;
2036+ pub const P_TREE_REAPER : :: c_int = 0x00000004 ;
2037+
2038+ pub const SIDL : :: c_char = 1 ;
2039+ pub const SRUN : :: c_char = 2 ;
2040+ pub const SSLEEP : :: c_char = 3 ;
2041+ pub const SSTOP : :: c_char = 4 ;
2042+ pub const SZOMB : :: c_char = 5 ;
2043+ pub const SWAIT : :: c_char = 6 ;
2044+ pub const SLOCK : :: c_char = 7 ;
2045+
2046+ pub const P_MAGIC : :: c_int = 0xbeefface ;
2047+
2048+ cfg_if ! {
2049+ if #[ cfg( freebsd13) ] {
2050+ pub const TDP_SIGFASTBLOCK : :: c_int = 0x00000100 ;
2051+ pub const TDP_UIOHELD : :: c_int = 0x10000000 ;
2052+ pub const TDP_SIGFASTPENDING : :: c_int = 0x80000000 ;
2053+ pub const TDP2_COMPAT32RB : :: c_int = 0x00000002 ;
2054+ pub const P2_PROTMAX_ENABLE : :: c_int = 0x00000200 ;
2055+ pub const P2_PROTMAX_DISABLE : :: c_int = 0x00000400 ;
2056+ }
2057+ }
2058+ cfg_if ! {
2059+ if #[ cfg( any( freebsd12, freebsd13) ) ] {
2060+ pub const TDP2_SBPAGES : :: c_int = 0x00000001 ;
2061+ pub const P2_ASLR_ENABLE : :: c_int = 0x00000040 ;
2062+ pub const P2_ASLR_DISABLE : :: c_int = 0x00000080 ;
2063+ pub const P2_ASLR_IGNSTART : :: c_int = 0x00000100 ;
2064+ pub const P_TREE_GRPEXITED : :: c_int = 0x00000008 ;
2065+ }
2066+ }
2067+
19002068const_fn ! {
19012069 { const } fn _ALIGN( p: usize ) -> usize {
19022070 ( p + _ALIGNBYTES) & !_ALIGNBYTES
0 commit comments