Skip to content

Commit 0785135

Browse files
Add documentation for kinfo_proc fields
1 parent fd4fe30 commit 0785135

File tree

4 files changed

+337
-0
lines changed

4 files changed

+337
-0
lines changed

src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,99 +31,182 @@ s! {
3131
}
3232

3333
pub struct kinfo_proc {
34+
/// Size of this structure.
3435
pub ki_structsize: ::c_int,
36+
/// Reserved: layout identifier.
3537
pub ki_layout: ::c_int,
38+
/// Address of command arguments.
3639
pub ki_args: *mut ::pargs,
3740
// This is normally "struct proc".
41+
/// Address of proc.
3842
pub ki_paddr: *mut ::c_void,
3943
// This is normally "struct user".
44+
/// Kernel virtual address of u-area.
4045
pub ki_addr: *mut ::c_void,
4146
// This is normally "struct vnode".
47+
/// Pointer to trace file.
4248
pub ki_tracep: *mut ::c_void,
4349
// This is normally "struct vnode".
50+
/// Pointer to executable file.
4451
pub ki_textvp: *mut ::c_void,
4552
// This is normally "struct filedesc".
53+
/// Pointer to open file info.
4654
pub ki_fd: *mut ::c_void,
4755
// This is normally "struct vmspace".
56+
/// Pointer to kernel vmspace struct.
4857
pub ki_vmspace: *mut ::c_void,
58+
/// Sleep address.
4959
pub ki_wchan: *mut ::c_void,
60+
/// Process identifier.
5061
pub ki_pid: ::pid_t,
62+
/// Parent process ID.
5163
pub ki_ppid: ::pid_t,
64+
/// Process group ID.
5265
pub ki_pgid: ::pid_t,
66+
/// tty process group ID.
5367
pub ki_tpgid: ::pid_t,
68+
/// Process session ID.
5469
pub ki_sid: ::pid_t,
70+
/// Terminal session ID.
5571
pub ki_tsid: ::pid_t,
72+
/// Job control counter.
5673
pub ki_jobc: ::c_short,
74+
/// Unused (just here for alignment).
5775
pub ki_spare_short1: ::c_short,
76+
/// Controlling tty dev.
5877
pub ki_tdev: ::dev_t,
78+
/// Signals arrived but not delivered.
5979
pub ki_siglist: ::sigset_t,
80+
/// Current signal mask.
6081
pub ki_sigmask: ::sigset_t,
82+
/// Signals being ignored.
6183
pub ki_sigignore: ::sigset_t,
84+
/// Signals being caught by user.
6285
pub ki_sigcatch: ::sigset_t,
86+
/// Effective user ID.
6387
pub ki_uid: ::uid_t,
88+
/// Real user ID.
6489
pub ki_ruid: ::uid_t,
90+
/// Saved effective user ID.
6591
pub ki_svuid: ::uid_t,
92+
/// Real group ID.
6693
pub ki_rgid: ::gid_t,
94+
/// Saved effective group ID.
6795
pub ki_svgid: ::gid_t,
96+
/// Number of groups.
6897
pub ki_ngroups: ::c_short,
98+
/// Unused (just here for alignment).
6999
pub ki_spare_short2: ::c_short,
100+
/// Groups.
70101
pub ki_groups: [::gid_t; ::KI_NGROUPS],
102+
/// Virtual size.
71103
pub ki_size: ::vm_size_t,
104+
/// Current resident set size in pages.
72105
pub ki_rssize: ::segsz_t,
106+
/// Resident set size before last swap.
73107
pub ki_swrss: ::segsz_t,
108+
/// Text size (pages) XXX.
74109
pub ki_tsize: ::segsz_t,
110+
/// Data size (pages) XXX.
75111
pub ki_dsize: ::segsz_t,
112+
/// Stack size (pages).
76113
pub ki_ssize: ::segsz_t,
114+
/// Exit status for wait & stop signal.
77115
pub ki_xstat: ::u_short,
116+
/// Accounting flags.
78117
pub ki_acflag: ::u_short,
118+
/// %cpu for process during `ki_swtime`.
79119
pub ki_pctcpu: ::fixpt_t,
120+
/// Time averaged value of `ki_cpticks`.
80121
pub ki_estcpu: ::u_int,
122+
/// Time since last blocked.
81123
pub ki_slptime: ::u_int,
124+
/// Time swapped in or out.
82125
pub ki_swtime: ::u_int,
126+
/// Number of copy-on-write faults.
83127
pub ki_cow: ::u_int,
128+
/// Real time in microsec.
84129
pub ki_runtime: u64,
130+
/// Starting time.
85131
pub ki_start: ::timeval,
132+
/// Time used by process children.
86133
pub ki_childtime: ::timeval,
134+
/// P_* flags.
87135
pub ki_flag: ::c_long,
136+
/// KI_* flags (below).
88137
pub ki_kiflag: ::c_long,
138+
/// Kernel trace points.
89139
pub ki_traceflag: ::c_int,
140+
/// S* process status.
90141
pub ki_stat: ::c_char,
142+
/// Process "nice" value.
91143
pub ki_nice: i8, // signed char
144+
/// Process lock (prevent swap) count.
92145
pub ki_lock: ::c_char,
146+
/// Run queue index.
93147
pub ki_rqindex: ::c_char,
148+
/// Which cpu we are on.
94149
pub ki_oncpu_old: ::c_uchar,
150+
/// Last cpu we were on.
95151
pub ki_lastcpu_old: ::c_uchar,
152+
/// Thread name.
96153
pub ki_tdname: [::c_char; ::TDNAMLEN + 1],
154+
/// Wchan message.
97155
pub ki_wmesg: [::c_char; ::WMESGLEN + 1],
156+
/// Setlogin name.
98157
pub ki_login: [::c_char; ::LOGNAMELEN + 1],
158+
/// Lock name.
99159
pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1],
160+
/// Command name.
100161
pub ki_comm: [::c_char; ::COMMLEN + 1],
162+
/// Emulation name.
101163
pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1],
164+
/// Login class.
102165
pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1],
166+
/// More thread name.
103167
pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1],
168+
/// Spare string space.
104169
pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq
170+
/// Spare room for growth.
105171
pub ki_spareints: [::c_int; ::KI_NSPARE_INT],
172+
/// Which cpu we are on.
106173
pub ki_oncpu: ::c_int,
174+
/// Last cpu we were on.
107175
pub ki_lastcpu: ::c_int,
176+
/// PID of tracing process.
108177
pub ki_tracer: ::c_int,
178+
/// P2_* flags.
109179
pub ki_flag2: ::c_int,
180+
/// Default FIB number.
110181
pub ki_fibnum: ::c_int,
182+
/// Credential flags.
111183
pub ki_cr_flags: ::u_int,
184+
/// Process jail ID.
112185
pub ki_jid: ::c_int,
186+
/// Number of threads in total.
113187
pub ki_numthreads: ::c_int,
188+
// Thread ID.
114189
pub ki_tid: ::lwpid_t,
190+
/// Process priority.
115191
pub ki_pri: ::priority,
192+
/// Process rusage statistics.
116193
pub ki_rusage: ::rusage,
194+
/// rusage of children processes.
117195
pub ki_rusage_ch: ::rusage,
118196
// This is normally "struct pcb".
197+
/// Kernel virtual addr of pcb.
119198
pub ki_pcb: *mut ::c_void,
199+
/// Kernel virtual addr of stack.
120200
pub ki_kstack: *mut ::c_void,
201+
/// User convenience pointer.
121202
pub ki_udata: *mut ::c_void,
122203
// This is normally "struct thread".
123204
pub ki_tdaddr: *mut ::c_void,
124205
pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR],
125206
pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG],
207+
/// PS_* flags.
126208
pub ki_sflag: ::c_long,
209+
/// kthread flag.
127210
pub ki_tdflags: ::c_long,
128211
}
129212
}

src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,100 +38,184 @@ s! {
3838
}
3939

4040
pub struct kinfo_proc {
41+
/// Size of this structure.
4142
pub ki_structsize: ::c_int,
43+
/// Reserved: layout identifier.
4244
pub ki_layout: ::c_int,
45+
/// Address of command arguments.
4346
pub ki_args: *mut ::pargs,
4447
// This is normally "struct proc".
48+
/// Address of proc.
4549
pub ki_paddr: *mut ::c_void,
4650
// This is normally "struct user".
51+
/// Kernel virtual address of u-area.
4752
pub ki_addr: *mut ::c_void,
4853
// This is normally "struct vnode".
54+
/// Pointer to trace file.
4955
pub ki_tracep: *mut ::c_void,
5056
// This is normally "struct vnode".
57+
/// Pointer to executable file.
5158
pub ki_textvp: *mut ::c_void,
5259
// This is normally "struct filedesc".
60+
/// Pointer to open file info.
5361
pub ki_fd: *mut ::c_void,
5462
// This is normally "struct vmspace".
63+
/// Pointer to kernel vmspace struct.
5564
pub ki_vmspace: *mut ::c_void,
65+
/// Sleep address.
5666
pub ki_wchan: *mut ::c_void,
67+
/// Process identifier.
5768
pub ki_pid: ::pid_t,
69+
/// Parent process ID.
5870
pub ki_ppid: ::pid_t,
71+
/// Process group ID.
5972
pub ki_pgid: ::pid_t,
73+
/// tty process group ID.
6074
pub ki_tpgid: ::pid_t,
75+
/// Process session ID.
6176
pub ki_sid: ::pid_t,
77+
/// Terminal session ID.
6278
pub ki_tsid: ::pid_t,
79+
/// Job control counter.
6380
pub ki_jobc: ::c_short,
81+
/// Unused (just here for alignment).
6482
pub ki_spare_short1: ::c_short,
83+
/// Controlling tty dev.
6584
pub ki_tdev_freebsd11: u32,
85+
/// Signals arrived but not delivered.
6686
pub ki_siglist: ::sigset_t,
87+
/// Current signal mask.
6788
pub ki_sigmask: ::sigset_t,
89+
/// Signals being ignored.
6890
pub ki_sigignore: ::sigset_t,
91+
/// Signals being caught by user.
6992
pub ki_sigcatch: ::sigset_t,
93+
/// Effective user ID.
7094
pub ki_uid: ::uid_t,
95+
/// Real user ID.
7196
pub ki_ruid: ::uid_t,
97+
/// Saved effective user ID.
7298
pub ki_svuid: ::uid_t,
99+
/// Real group ID.
73100
pub ki_rgid: ::gid_t,
101+
/// Saved effective group ID.
74102
pub ki_svgid: ::gid_t,
103+
/// Number of groups.
75104
pub ki_ngroups: ::c_short,
105+
/// Unused (just here for alignment).
76106
pub ki_spare_short2: ::c_short,
107+
/// Groups.
77108
pub ki_groups: [::gid_t; ::KI_NGROUPS],
109+
/// Virtual size.
78110
pub ki_size: ::vm_size_t,
111+
/// Current resident set size in pages.
79112
pub ki_rssize: ::segsz_t,
113+
/// Resident set size before last swap.
80114
pub ki_swrss: ::segsz_t,
115+
/// Text size (pages) XXX.
81116
pub ki_tsize: ::segsz_t,
117+
/// Data size (pages) XXX.
82118
pub ki_dsize: ::segsz_t,
119+
/// Stack size (pages).
83120
pub ki_ssize: ::segsz_t,
121+
/// Exit status for wait & stop signal.
84122
pub ki_xstat: ::u_short,
123+
/// Accounting flags.
85124
pub ki_acflag: ::u_short,
125+
/// %cpu for process during `ki_swtime`.
86126
pub ki_pctcpu: ::fixpt_t,
127+
/// Time averaged value of `ki_cpticks`.
87128
pub ki_estcpu: ::u_int,
129+
/// Time since last blocked.
88130
pub ki_slptime: ::u_int,
131+
/// Time swapped in or out.
89132
pub ki_swtime: ::u_int,
133+
/// Number of copy-on-write faults.
90134
pub ki_cow: ::u_int,
135+
/// Real time in microsec.
91136
pub ki_runtime: u64,
137+
/// Starting time.
92138
pub ki_start: ::timeval,
139+
/// Time used by process children.
93140
pub ki_childtime: ::timeval,
141+
/// P_* flags.
94142
pub ki_flag: ::c_long,
143+
/// KI_* flags (below).
95144
pub ki_kiflag: ::c_long,
145+
/// Kernel trace points.
96146
pub ki_traceflag: ::c_int,
147+
/// S* process status.
97148
pub ki_stat: ::c_char,
149+
/// Process "nice" value.
98150
pub ki_nice: i8, // signed char
151+
/// Process lock (prevent swap) count.
99152
pub ki_lock: ::c_char,
153+
/// Run queue index.
100154
pub ki_rqindex: ::c_char,
155+
/// Which cpu we are on.
101156
pub ki_oncpu_old: ::c_uchar,
157+
/// Last cpu we were on.
102158
pub ki_lastcpu_old: ::c_uchar,
159+
/// Thread name.
103160
pub ki_tdname: [::c_char; ::TDNAMLEN + 1],
161+
/// Wchan message.
104162
pub ki_wmesg: [::c_char; ::WMESGLEN + 1],
163+
/// Setlogin name.
105164
pub ki_login: [::c_char; ::LOGNAMELEN + 1],
165+
/// Lock name.
106166
pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1],
167+
/// Command name.
107168
pub ki_comm: [::c_char; ::COMMLEN + 1],
169+
/// Emulation name.
108170
pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1],
171+
/// Login class.
109172
pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1],
173+
/// More thread name.
110174
pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1],
175+
/// Spare string space.
111176
pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq
177+
/// Spare room for growth.
112178
pub ki_spareints: [::c_int; ::KI_NSPARE_INT],
179+
/// Controlling tty dev.
113180
pub ki_tdev: ::dev_t,
181+
/// Which cpu we are on.
114182
pub ki_oncpu: ::c_int,
183+
/// Last cpu we were on.
115184
pub ki_lastcpu: ::c_int,
185+
/// PID of tracing process.
116186
pub ki_tracer: ::c_int,
187+
/// P2_* flags.
117188
pub ki_flag2: ::c_int,
189+
/// Default FIB number.
118190
pub ki_fibnum: ::c_int,
191+
/// Credential flags.
119192
pub ki_cr_flags: ::u_int,
193+
/// Process jail ID.
120194
pub ki_jid: ::c_int,
195+
/// Number of threads in total.
121196
pub ki_numthreads: ::c_int,
197+
// Thread ID.
122198
pub ki_tid: ::lwpid_t,
199+
/// Process priority.
123200
pub ki_pri: ::priority,
201+
/// Process rusage statistics.
124202
pub ki_rusage: ::rusage,
203+
/// rusage of children processes.
125204
pub ki_rusage_ch: ::rusage,
126205
// This is normally "struct pcb".
206+
/// Kernel virtual addr of pcb.
127207
pub ki_pcb: *mut ::c_void,
208+
/// Kernel virtual addr of stack.
128209
pub ki_kstack: *mut ::c_void,
210+
/// User convenience pointer.
129211
pub ki_udata: *mut ::c_void,
130212
// This is normally "struct thread".
131213
pub ki_tdaddr: *mut ::c_void,
132214
pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR],
133215
pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG],
216+
/// PS_* flags.
134217
pub ki_sflag: ::c_long,
218+
/// kthread flag.
135219
pub ki_tdflags: ::c_long,
136220
}
137221
}

0 commit comments

Comments
 (0)