Skip to content

Commit 38c0eaf

Browse files
committed
Properly declare a struct
1 parent 65b16d9 commit 38c0eaf

File tree

4 files changed

+296
-111
lines changed

4 files changed

+296
-111
lines changed

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

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,103 @@ s! {
2929
pub shm_dtime: ::time_t,
3030
pub shm_ctime: ::time_t,
3131
}
32+
33+
pub struct kinfo_proc {
34+
pub ki_structsize: ::c_int,
35+
pub ki_layout: ::c_int,
36+
pub ki_args: *mut ::pargs,
37+
// This is normally "struct proc".
38+
pub ki_paddr: *mut ::c_void,
39+
// This is normally "struct user".
40+
pub ki_addr: *mut ::c_void,
41+
// This is normally "struct vnode".
42+
pub ki_tracep: *mut ::c_void,
43+
// This is normally "struct vnode".
44+
pub ki_textvp: *mut ::c_void,
45+
// This is normally "struct filedesc".
46+
pub ki_fd: *mut ::c_void,
47+
// This is normally "struct vmspace".
48+
pub ki_vmspace: *mut ::c_void,
49+
pub ki_wchan: *mut ::c_void,
50+
pub ki_pid: ::pid_t,
51+
pub ki_ppid: ::pid_t,
52+
pub ki_pgid: ::pid_t,
53+
pub ki_tpgid: ::pid_t,
54+
pub ki_sid: ::pid_t,
55+
pub ki_tsid: ::pid_t,
56+
pub ki_jobc: ::c_short,
57+
pub ki_spare_short1: ::c_short,
58+
pub ki_tdev: ::dev_t,
59+
pub ki_siglist: ::sigset_t,
60+
pub ki_sigmask: ::sigset_t,
61+
pub ki_sigignore: ::sigset_t,
62+
pub ki_sigcatch: ::sigset_t,
63+
pub ki_uid: ::uid_t,
64+
pub ki_ruid: ::uid_t,
65+
pub ki_svuid: ::uid_t,
66+
pub ki_rgid: ::gid_t,
67+
pub ki_svgid: ::gid_t,
68+
pub ki_ngroups: ::c_short,
69+
pub ki_spare_short2: ::c_short,
70+
pub ki_groups: [::gid_t; ::KI_NGROUPS],
71+
pub ki_size: ::vm_size_t,
72+
pub ki_rssize: ::segsz_t,
73+
pub ki_swrss: ::segsz_t,
74+
pub ki_tsize: ::segsz_t,
75+
pub ki_dsize: ::segsz_t,
76+
pub ki_ssize: ::segsz_t,
77+
pub ki_xstat: ::u_short,
78+
pub ki_acflag: ::u_short,
79+
pub ki_pctcpu: ::fixpt_t,
80+
pub ki_estcpu: ::u_int,
81+
pub ki_slptime: ::u_int,
82+
pub ki_swtime: ::u_int,
83+
pub ki_cow: ::u_int,
84+
pub ki_runtime: u64,
85+
pub ki_start: ::timeval,
86+
pub ki_childtime: ::timeval,
87+
pub ki_flag: ::c_long,
88+
pub ki_kiflag: ::c_long,
89+
pub ki_traceflag: ::c_int,
90+
pub ki_stat: ::c_char,
91+
pub ki_nice: i8, // signed char
92+
pub ki_lock: ::c_char,
93+
pub ki_rqindex: ::c_char,
94+
pub ki_oncpu_old: ::c_uchar,
95+
pub ki_lastcpu_old: ::c_uchar,
96+
pub ki_tdname: [::c_char; ::TDNAMLEN + 1],
97+
pub ki_wmesg: [::c_char; ::WMESGLEN + 1],
98+
pub ki_login: [::c_char; ::LOGNAMELEN + 1],
99+
pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1],
100+
pub ki_comm: [::c_char; ::COMMLEN + 1],
101+
pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1],
102+
pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1],
103+
pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1],
104+
pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq
105+
pub ki_spareints: [::c_int; ::KI_NSPARE_INT],
106+
pub ki_oncpu: ::c_int,
107+
pub ki_lastcpu: ::c_int,
108+
pub ki_tracer: ::c_int,
109+
pub ki_flag2: ::c_int,
110+
pub ki_fibnum: ::c_int,
111+
pub ki_cr_flags: ::u_int,
112+
pub ki_jid: ::c_int,
113+
pub ki_numthreads: ::c_int,
114+
pub ki_tid: ::lwpid_t,
115+
pub ki_pri: ::priority,
116+
pub ki_rusage: ::rusage,
117+
pub ki_rusage_ch: ::rusage,
118+
// This is normally "struct pcb".
119+
pub ki_pcb: *mut ::c_void,
120+
pub ki_kstack: *mut ::c_void,
121+
pub ki_udata: *mut ::c_void,
122+
// This is normally "struct thread".
123+
pub ki_tdaddr: *mut ::c_void,
124+
pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR],
125+
pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG],
126+
pub ki_sflag: ::c_long,
127+
pub ki_tdflags: ::c_long,
128+
}
32129
}
33130

34131
s_no_extra_traits! {

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

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,104 @@ s! {
3636
pub offset: ::u_long,
3737
pub len: ::size_t,
3838
}
39+
40+
pub struct kinfo_proc {
41+
pub ki_structsize: ::c_int,
42+
pub ki_layout: ::c_int,
43+
pub ki_args: *mut ::pargs,
44+
// This is normally "struct proc".
45+
pub ki_paddr: *mut ::c_void,
46+
// This is normally "struct user".
47+
pub ki_addr: *mut ::c_void,
48+
// This is normally "struct vnode".
49+
pub ki_tracep: *mut ::c_void,
50+
// This is normally "struct vnode".
51+
pub ki_textvp: *mut ::c_void,
52+
// This is normally "struct filedesc".
53+
pub ki_fd: *mut ::c_void,
54+
// This is normally "struct vmspace".
55+
pub ki_vmspace: *mut ::c_void,
56+
pub ki_wchan: *mut ::c_void,
57+
pub ki_pid: ::pid_t,
58+
pub ki_ppid: ::pid_t,
59+
pub ki_pgid: ::pid_t,
60+
pub ki_tpgid: ::pid_t,
61+
pub ki_sid: ::pid_t,
62+
pub ki_tsid: ::pid_t,
63+
pub ki_jobc: ::c_short,
64+
pub ki_spare_short1: ::c_short,
65+
pub ki_tdev_freebsd11: u32,
66+
pub ki_siglist: ::sigset_t,
67+
pub ki_sigmask: ::sigset_t,
68+
pub ki_sigignore: ::sigset_t,
69+
pub ki_sigcatch: ::sigset_t,
70+
pub ki_uid: ::uid_t,
71+
pub ki_ruid: ::uid_t,
72+
pub ki_svuid: ::uid_t,
73+
pub ki_rgid: ::gid_t,
74+
pub ki_svgid: ::gid_t,
75+
pub ki_ngroups: ::c_short,
76+
pub ki_spare_short2: ::c_short,
77+
pub ki_groups: [::gid_t; ::KI_NGROUPS],
78+
pub ki_size: ::vm_size_t,
79+
pub ki_rssize: ::segsz_t,
80+
pub ki_swrss: ::segsz_t,
81+
pub ki_tsize: ::segsz_t,
82+
pub ki_dsize: ::segsz_t,
83+
pub ki_ssize: ::segsz_t,
84+
pub ki_xstat: ::u_short,
85+
pub ki_acflag: ::u_short,
86+
pub ki_pctcpu: ::fixpt_t,
87+
pub ki_estcpu: ::u_int,
88+
pub ki_slptime: ::u_int,
89+
pub ki_swtime: ::u_int,
90+
pub ki_cow: ::u_int,
91+
pub ki_runtime: u64,
92+
pub ki_start: ::timeval,
93+
pub ki_childtime: ::timeval,
94+
pub ki_flag: ::c_long,
95+
pub ki_kiflag: ::c_long,
96+
pub ki_traceflag: ::c_int,
97+
pub ki_stat: ::c_char,
98+
pub ki_nice: i8, // signed char
99+
pub ki_lock: ::c_char,
100+
pub ki_rqindex: ::c_char,
101+
pub ki_oncpu_old: ::c_uchar,
102+
pub ki_lastcpu_old: ::c_uchar,
103+
pub ki_tdname: [::c_char; ::TDNAMLEN + 1],
104+
pub ki_wmesg: [::c_char; ::WMESGLEN + 1],
105+
pub ki_login: [::c_char; ::LOGNAMELEN + 1],
106+
pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1],
107+
pub ki_comm: [::c_char; ::COMMLEN + 1],
108+
pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1],
109+
pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1],
110+
pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1],
111+
pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq
112+
pub ki_spareints: [::c_int; ::KI_NSPARE_INT],
113+
pub ki_tdev: ::dev_t,
114+
pub ki_oncpu: ::c_int,
115+
pub ki_lastcpu: ::c_int,
116+
pub ki_tracer: ::c_int,
117+
pub ki_flag2: ::c_int,
118+
pub ki_fibnum: ::c_int,
119+
pub ki_cr_flags: ::u_int,
120+
pub ki_jid: ::c_int,
121+
pub ki_numthreads: ::c_int,
122+
pub ki_tid: ::lwpid_t,
123+
pub ki_pri: ::priority,
124+
pub ki_rusage: ::rusage,
125+
pub ki_rusage_ch: ::rusage,
126+
// This is normally "struct pcb".
127+
pub ki_pcb: *mut ::c_void,
128+
pub ki_kstack: *mut ::c_void,
129+
pub ki_udata: *mut ::c_void,
130+
// This is normally "struct thread".
131+
pub ki_tdaddr: *mut ::c_void,
132+
pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR],
133+
pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG],
134+
pub ki_sflag: ::c_long,
135+
pub ki_tdflags: ::c_long,
136+
}
39137
}
40138

41139
s_no_extra_traits! {

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

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,106 @@ s! {
5454
pub struct __c_anonymous_domainset {
5555
_priv: [::uintptr_t; 4],
5656
}
57+
58+
pub struct kinfo_proc {
59+
pub ki_structsize: ::c_int,
60+
pub ki_layout: ::c_int,
61+
pub ki_args: *mut ::pargs,
62+
// This is normally "struct proc".
63+
pub ki_paddr: *mut ::c_void,
64+
// This is normally "struct user".
65+
pub ki_addr: *mut ::c_void,
66+
// This is normally "struct vnode".
67+
pub ki_tracep: *mut ::c_void,
68+
// This is normally "struct vnode".
69+
pub ki_textvp: *mut ::c_void,
70+
// This is normally "struct filedesc".
71+
pub ki_fd: *mut ::c_void,
72+
// This is normally "struct vmspace".
73+
pub ki_vmspace: *mut ::c_void,
74+
pub ki_wchan: *const ::c_void,
75+
pub ki_pid: ::pid_t,
76+
pub ki_ppid: ::pid_t,
77+
pub ki_pgid: ::pid_t,
78+
pub ki_tpgid: ::pid_t,
79+
pub ki_sid: ::pid_t,
80+
pub ki_tsid: ::pid_t,
81+
pub ki_jobc: ::c_short,
82+
pub ki_spare_short1: ::c_short,
83+
pub ki_tdev_freebsd11: u32,
84+
pub ki_siglist: ::sigset_t,
85+
pub ki_sigmask: ::sigset_t,
86+
pub ki_sigignore: ::sigset_t,
87+
pub ki_sigcatch: ::sigset_t,
88+
pub ki_uid: ::uid_t,
89+
pub ki_ruid: ::uid_t,
90+
pub ki_svuid: ::uid_t,
91+
pub ki_rgid: ::gid_t,
92+
pub ki_svgid: ::gid_t,
93+
pub ki_ngroups: ::c_short,
94+
pub ki_spare_short2: ::c_short,
95+
pub ki_groups: [::gid_t; ::KI_NGROUPS],
96+
pub ki_size: ::vm_size_t,
97+
pub ki_rssize: ::segsz_t,
98+
pub ki_swrss: ::segsz_t,
99+
pub ki_tsize: ::segsz_t,
100+
pub ki_dsize: ::segsz_t,
101+
pub ki_ssize: ::segsz_t,
102+
pub ki_xstat: ::u_short,
103+
pub ki_acflag: ::u_short,
104+
pub ki_pctcpu: ::fixpt_t,
105+
pub ki_estcpu: ::u_int,
106+
pub ki_slptime: ::u_int,
107+
pub ki_swtime: ::u_int,
108+
pub ki_cow: ::u_int,
109+
pub ki_runtime: u64,
110+
pub ki_start: ::timeval,
111+
pub ki_childtime: ::timeval,
112+
pub ki_flag: ::c_long,
113+
pub ki_kiflag: ::c_long,
114+
pub ki_traceflag: ::c_int,
115+
pub ki_stat: ::c_char,
116+
pub ki_nice: i8, // signed char
117+
pub ki_lock: ::c_char,
118+
pub ki_rqindex: ::c_char,
119+
pub ki_oncpu_old: ::c_uchar,
120+
pub ki_lastcpu_old: ::c_uchar,
121+
pub ki_tdname: [::c_char; ::TDNAMLEN + 1],
122+
pub ki_wmesg: [::c_char; ::WMESGLEN + 1],
123+
pub ki_login: [::c_char; ::LOGNAMELEN + 1],
124+
pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1],
125+
pub ki_comm: [::c_char; ::COMMLEN + 1],
126+
pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1],
127+
pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1],
128+
pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1],
129+
pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq
130+
pub ki_spareints: [::c_int; ::KI_NSPARE_INT],
131+
pub ki_tdev: u64,
132+
pub ki_oncpu: ::c_int,
133+
pub ki_lastcpu: ::c_int,
134+
pub ki_tracer: ::c_int,
135+
pub ki_flag2: ::c_int,
136+
pub ki_fibnum: ::c_int,
137+
pub ki_cr_flags: ::u_int,
138+
pub ki_jid: ::c_int,
139+
pub ki_numthreads: ::c_int,
140+
pub ki_tid: ::lwpid_t,
141+
pub ki_pri: ::priority,
142+
pub ki_rusage: ::rusage,
143+
pub ki_rusage_ch: ::rusage,
144+
// This is normally "struct pcb".
145+
pub ki_pcb: *mut ::c_void,
146+
pub ki_kstack: *mut ::c_void,
147+
pub ki_udata: *mut ::c_void,
148+
// This is normally "struct thread".
149+
pub ki_tdaddr: *mut ::c_void,
150+
// This is normally "struct pwddesc".
151+
pub ki_pd: *mut ::c_void,
152+
pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR],
153+
pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG],
154+
pub ki_sflag: ::c_long,
155+
pub ki_tdflags: ::c_long,
156+
}
57157
}
58158

59159
s_no_extra_traits! {

0 commit comments

Comments
 (0)