darwin_libproc_sys/
rusage.rs

1pub const RUSAGE_INFO_V0: libc::c_int = 0;
2pub const RUSAGE_INFO_V1: libc::c_int = 1;
3pub const RUSAGE_INFO_V2: libc::c_int = 2;
4pub const RUSAGE_INFO_V3: libc::c_int = 3;
5pub const RUSAGE_INFO_V4: libc::c_int = 4;
6pub const RUSAGE_INFO_CURRENT: libc::c_int = RUSAGE_INFO_V4;
7
8#[repr(C)]
9#[derive(Debug, Clone)]
10pub struct rusage_info_v0 {
11    pub ri_uuid: [u8; 16],
12    pub ri_user_time: u64,
13    pub ri_system_time: u64,
14    pub ri_pkg_idle_wkups: u64,
15    pub ri_interrupt_wkups: u64,
16    pub ri_pageins: u64,
17    pub ri_wired_size: u64,
18    pub ri_resident_size: u64,
19    pub ri_phys_footprint: u64,
20    pub ri_proc_start_abstime: u64,
21    pub ri_proc_exit_abstime: u64,
22}
23
24#[repr(C)]
25#[derive(Debug, Clone)]
26pub struct rusage_info_v1 {
27    pub ri_uuid: [u8; 16],
28    pub ri_user_time: u64,
29    pub ri_system_time: u64,
30    pub ri_pkg_idle_wkups: u64,
31    pub ri_interrupt_wkups: u64,
32    pub ri_pageins: u64,
33    pub ri_wired_size: u64,
34    pub ri_resident_size: u64,
35    pub ri_phys_footprint: u64,
36    pub ri_proc_start_abstime: u64,
37    pub ri_proc_exit_abstime: u64,
38    pub ri_child_user_time: u64,
39    pub ri_child_system_time: u64,
40    pub ri_child_pkg_idle_wkups: u64,
41    pub ri_child_interrupt_wkups: u64,
42    pub ri_child_pageins: u64,
43    pub ri_child_elapsed_abstime: u64,
44}
45
46#[repr(C)]
47#[derive(Debug, Clone)]
48pub struct rusage_info_v2 {
49    pub ri_uuid: [u8; 16],
50    pub ri_user_time: u64,
51    pub ri_system_time: u64,
52    pub ri_pkg_idle_wkups: u64,
53    pub ri_interrupt_wkups: u64,
54    pub ri_pageins: u64,
55    pub ri_wired_size: u64,
56    pub ri_resident_size: u64,
57    pub ri_phys_footprint: u64,
58    pub ri_proc_start_abstime: u64,
59    pub ri_proc_exit_abstime: u64,
60    pub ri_child_user_time: u64,
61    pub ri_child_system_time: u64,
62    pub ri_child_pkg_idle_wkups: u64,
63    pub ri_child_interrupt_wkups: u64,
64    pub ri_child_pageins: u64,
65    pub ri_child_elapsed_abstime: u64,
66    pub ri_diskio_bytesread: u64,
67    pub ri_diskio_byteswritten: u64,
68}
69
70#[repr(C)]
71#[derive(Debug, Clone)]
72pub struct rusage_info_v3 {
73    pub ri_uuid: [u8; 16],
74    pub ri_user_time: u64,
75    pub ri_system_time: u64,
76    pub ri_pkg_idle_wkups: u64,
77    pub ri_interrupt_wkups: u64,
78    pub ri_pageins: u64,
79    pub ri_wired_size: u64,
80    pub ri_resident_size: u64,
81    pub ri_phys_footprint: u64,
82    pub ri_proc_start_abstime: u64,
83    pub ri_proc_exit_abstime: u64,
84    pub ri_child_user_time: u64,
85    pub ri_child_system_time: u64,
86    pub ri_child_pkg_idle_wkups: u64,
87    pub ri_child_interrupt_wkups: u64,
88    pub ri_child_pageins: u64,
89    pub ri_child_elapsed_abstime: u64,
90    pub ri_diskio_bytesread: u64,
91    pub ri_diskio_byteswritten: u64,
92    pub ri_cpu_time_qos_default: u64,
93    pub ri_cpu_time_qos_maintenance: u64,
94    pub ri_cpu_time_qos_background: u64,
95    pub ri_cpu_time_qos_utility: u64,
96    pub ri_cpu_time_qos_legacy: u64,
97    pub ri_cpu_time_qos_user_initiated: u64,
98    pub ri_cpu_time_qos_user_interactive: u64,
99    pub ri_billed_system_time: u64,
100    pub ri_serviced_system_time: u64,
101}
102
103#[repr(C)]
104#[derive(Debug, Clone)]
105pub struct rusage_info_v4 {
106    pub ri_uuid: [u8; 16],
107    pub ri_user_time: u64,
108    pub ri_system_time: u64,
109    pub ri_pkg_idle_wkups: u64,
110    pub ri_interrupt_wkups: u64,
111    pub ri_pageins: u64,
112    pub ri_wired_size: u64,
113    pub ri_resident_size: u64,
114    pub ri_phys_footprint: u64,
115    pub ri_proc_start_abstime: u64,
116    pub ri_proc_exit_abstime: u64,
117    pub ri_child_user_time: u64,
118    pub ri_child_system_time: u64,
119    pub ri_child_pkg_idle_wkups: u64,
120    pub ri_child_interrupt_wkups: u64,
121    pub ri_child_pageins: u64,
122    pub ri_child_elapsed_abstime: u64,
123    pub ri_diskio_bytesread: u64,
124    pub ri_diskio_byteswritten: u64,
125    pub ri_cpu_time_qos_default: u64,
126    pub ri_cpu_time_qos_maintenance: u64,
127    pub ri_cpu_time_qos_background: u64,
128    pub ri_cpu_time_qos_utility: u64,
129    pub ri_cpu_time_qos_legacy: u64,
130    pub ri_cpu_time_qos_user_initiated: u64,
131    pub ri_cpu_time_qos_user_interactive: u64,
132    pub ri_billed_system_time: u64,
133    pub ri_serviced_system_time: u64,
134    pub ri_logical_writes: u64,
135    pub ri_lifetime_max_phys_footprint: u64,
136    pub ri_instructions: u64,
137    pub ri_cycles: u64,
138    pub ri_billed_energy: u64,
139    pub ri_serviced_energy: u64,
140    pub ri_interval_max_phys_footprint: u64,
141    pub ri_runnable_time: u64,
142}
143
144pub type rusage_info_current = rusage_info_v4;
145pub type rusage_info_t = *mut libc::c_void;
146
147extern "C" {
148    pub fn proc_pid_rusage(
149        pid: libc::pid_t,
150        flavor: libc::c_int,
151        buffer: rusage_info_t,
152    ) -> libc::c_int;
153}