mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 22:04:21 +00:00
std.c: adding freebsd's kinfo_proc type.
This commit is contained in:
parent
297b5d1074
commit
3dd0afe787
1 changed files with 186 additions and 0 deletions
|
|
@ -64,6 +64,7 @@ pub extern "c" fn getpid() pid_t;
|
|||
|
||||
pub extern "c" fn kinfo_getfile(pid: pid_t, cntp: *c_int) ?[*]kinfo_file;
|
||||
pub extern "c" fn kinfo_getvmmap(pid: pid_t, cntp: *c_int) ?[*]kinfo_vmentry;
|
||||
pub extern "c" fn kinfo_getproc(pid: pid_t) ?[*]kinfo_proc;
|
||||
|
||||
pub extern "c" fn cpuset_getaffinity(level: cpulevel_t, which: cpuwhich_t, id: id_t, setsize: usize, mask: *cpuset_t) c_int;
|
||||
pub extern "c" fn cpuset_setaffinity(level: cpulevel_t, which: cpuwhich_t, id: id_t, setsize: usize, mask: *const cpuset_t) c_int;
|
||||
|
|
@ -676,6 +677,191 @@ comptime {
|
|||
std.debug.assert(@sizeOf(kinfo_vmentry) == KINFO_VMENTRY_SIZE);
|
||||
}
|
||||
|
||||
pub const WMESGLEN = 8;
|
||||
pub const LOCKNAMELEN = 8;
|
||||
pub const TDNAMLEN = 16;
|
||||
pub const COMMLEN = 19;
|
||||
pub const MAXCOMLEN = 19;
|
||||
pub const KI_EMULNAMELEN = 16;
|
||||
pub const KI_NGROUPS = 16;
|
||||
pub const LOGNAMELEN = 17;
|
||||
pub const LOGINCLASSLEN = 17;
|
||||
|
||||
pub const KI_NSPARE_INT = 2;
|
||||
pub const KI_NSPARE_LONG = 12;
|
||||
pub const KI_NSPARE_PTR = 5;
|
||||
|
||||
pub const RUSAGE_SELF = 0;
|
||||
pub const RUSAGE_CHILDREN = -1;
|
||||
pub const RUSAGE_THREAD = 1;
|
||||
|
||||
pub const proc = opaque {};
|
||||
pub const thread = opaque {};
|
||||
pub const vnode = opaque {};
|
||||
pub const filedesc = opaque {};
|
||||
pub const pwddesc = opaque {};
|
||||
pub const vmspace = opaque {};
|
||||
pub const pcb = opaque {};
|
||||
pub const lwpid_t = i32;
|
||||
pub const fixpt_t = u32;
|
||||
pub const vm_size_t = usize;
|
||||
pub const segsz_t = isize;
|
||||
|
||||
pub const itimerval = extern struct {
|
||||
interval: timeval,
|
||||
value: timeval,
|
||||
};
|
||||
|
||||
pub const pstats = extern struct {
|
||||
cru: rusage,
|
||||
timer: [3]itimerval,
|
||||
prof: extern struct {
|
||||
base: u8,
|
||||
size: c_ulong,
|
||||
off: c_ulong,
|
||||
scale: c_ulong,
|
||||
},
|
||||
start: timeval,
|
||||
};
|
||||
|
||||
pub const user = extern struct {
|
||||
stats: pstats,
|
||||
kproc: kinfo_proc,
|
||||
};
|
||||
|
||||
pub const pargs = extern struct {
|
||||
ref: c_uint,
|
||||
length: c_uint,
|
||||
args: [1]u8,
|
||||
};
|
||||
|
||||
pub const priority = extern struct {
|
||||
class: u8,
|
||||
level: u8,
|
||||
native: u8,
|
||||
user: u8,
|
||||
};
|
||||
|
||||
pub const rusage = extern struct {
|
||||
utime: timeval,
|
||||
stime: timeval,
|
||||
maxrss: c_long,
|
||||
ixrss: c_long,
|
||||
idrss: c_long,
|
||||
isrss: c_long,
|
||||
minflt: c_long,
|
||||
majflt: c_long,
|
||||
nswap: c_long,
|
||||
inblock: c_long,
|
||||
oublock: c_long,
|
||||
msgsnd: c_long,
|
||||
msgrcv: c_long,
|
||||
nsignals: c_long,
|
||||
nvcsw: c_long,
|
||||
nivcsw: c_long,
|
||||
};
|
||||
|
||||
pub const kinfo_proc = extern struct {
|
||||
structsize: c_int,
|
||||
layout: c_int,
|
||||
args: *pargs,
|
||||
paddr: *proc,
|
||||
addr: *user,
|
||||
tracep: *vnode,
|
||||
textvp: *vnode,
|
||||
fd: *filedesc,
|
||||
vmspace: *vmspace,
|
||||
wchan: ?*const anyopaque,
|
||||
pid: pid_t,
|
||||
ppid: pid_t,
|
||||
pgid: pid_t,
|
||||
tpgid: pid_t,
|
||||
sid: pid_t,
|
||||
tsid: pid_t,
|
||||
jobc: c_short,
|
||||
spare_short1: c_short,
|
||||
tdev_freebsd11: u32,
|
||||
siglist: sigset_t,
|
||||
sigmask: sigset_t,
|
||||
sigignore: sigset_t,
|
||||
sigcatch: sigset_t,
|
||||
uid: uid_t,
|
||||
ruid: uid_t,
|
||||
svuid: uid_t,
|
||||
rgid: gid_t,
|
||||
svgid: gid_t,
|
||||
ngroups: c_short,
|
||||
spare_short2: c_short,
|
||||
groups: [KI_NGROUPS]gid_t,
|
||||
size: vm_size_t,
|
||||
rssize: segsz_t,
|
||||
swrss: segsz_t,
|
||||
tsize: segsz_t,
|
||||
dsize: segsz_t,
|
||||
ssize: segsz_t,
|
||||
xstat: c_ushort,
|
||||
acflag: c_ushort,
|
||||
pctcpu: fixpt_t,
|
||||
estcpu: c_uint,
|
||||
slptime: c_uint,
|
||||
swtime: c_uint,
|
||||
cow: c_uint,
|
||||
runtime: u64,
|
||||
start: timeval,
|
||||
childtime: timeval,
|
||||
flag: c_long,
|
||||
kiflag: c_long,
|
||||
traceflag: c_int,
|
||||
stat: u8,
|
||||
nice: i8,
|
||||
lock: u8,
|
||||
rqindex: u8,
|
||||
oncpu_old: u8,
|
||||
lastcpu_old: u8,
|
||||
tdname: [TDNAMLEN + 1]u8,
|
||||
wmesg: [WMESGLEN + 1]u8,
|
||||
login: [LOGNAMELEN + 1]u8,
|
||||
lockname: [LOCKNAMELEN + 1]u8,
|
||||
comm: [COMMLEN + 1]u8,
|
||||
emul: [KI_EMULNAMELEN + 1]u8,
|
||||
loginclass: [LOGINCLASSLEN + 1]u8,
|
||||
moretdname: [MAXCOMLEN - TDNAMLEN + 1]u8,
|
||||
sparestrings: [46]u8,
|
||||
spareints: [KI_NSPARE_INT]c_int,
|
||||
tdev: u64,
|
||||
oncpu: c_int,
|
||||
lastcpu: c_int,
|
||||
tracer: c_int,
|
||||
flag2: c_int,
|
||||
fibnum: c_int,
|
||||
cr_flags: c_uint,
|
||||
jid: c_int,
|
||||
numthreads: c_int,
|
||||
tid: lwpid_t,
|
||||
pri: priority,
|
||||
rusage: rusage,
|
||||
rusage_ch: rusage,
|
||||
pcb: *pcb,
|
||||
stack: ?*anyopaque,
|
||||
udata: ?*anyopaque,
|
||||
tdaddr: *thread,
|
||||
pd: *pwddesc,
|
||||
spareptrs: [KI_NSPARE_PTR]?*anyopaque,
|
||||
sparelongs: [KI_NSPARE_LONG]c_long,
|
||||
sflag: c_long,
|
||||
tdflag: c_long,
|
||||
};
|
||||
|
||||
pub const KINFO_PROC_SIZE = switch (builtin.cpu.arch) {
|
||||
.x86 => 768,
|
||||
.arm => 816,
|
||||
else => 1088,
|
||||
};
|
||||
|
||||
comptime {
|
||||
assert(@sizeOf(kinfo_proc) == KINFO_PROC_SIZE);
|
||||
}
|
||||
|
||||
pub const CTL = struct {
|
||||
pub const KERN = 1;
|
||||
pub const DEBUG = 5;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue