In mono/metadata:
[mono.git] / mono / utils / mono-proclib.h
blob710aefec37d06d5549adacd3d279c68e31db85aa
1 #ifndef __MONO_PROC_LIB_H__
2 #define __MONO_PROC_LIB_H__
3 /*
4 * Utility functions to access processes information and other info about the system.
5 */
7 #include <glib.h>
8 #include <mono/utils/mono-compiler.h>
10 /* never remove or reorder these enums values: they are used in corlib/System */
12 typedef enum {
13 MONO_PROCESS_NUM_THREADS,
14 MONO_PROCESS_USER_TIME, /* milliseconds */
15 MONO_PROCESS_SYSTEM_TIME, /* milliseconds */
16 MONO_PROCESS_TOTAL_TIME, /* milliseconds */
17 MONO_PROCESS_WORKING_SET,
18 MONO_PROCESS_WORKING_SET_PEAK, /* 5 */
19 MONO_PROCESS_PRIVATE_BYTES,
20 MONO_PROCESS_VIRTUAL_BYTES,
21 MONO_PROCESS_VIRTUAL_BYTES_PEAK,
22 MONO_PROCESS_FAULTS,
23 MONO_PROCESS_ELAPSED,
24 MONO_PROCESS_PPID,
25 MONO_PROCESS_END
26 } MonoProcessData;
28 typedef enum {
29 MONO_CPU_USER_TIME,
30 MONO_CPU_PRIV_TIME,
31 MONO_CPU_INTR_TIME,
32 MONO_CPU_DCP_TIME,
33 MONO_CPU_IDLE_TIME,
34 MONO_CPU_END
35 } MonoCpuData;
37 typedef enum {
38 MONO_PROCESS_ERROR_NONE, /* no error happened */
39 MONO_PROCESS_ERROR_NOT_FOUND, /* process not found */
40 MONO_PROCESS_ERROR_OTHER
41 } MonoProcessError;
43 gpointer* mono_process_list (int *size) MONO_INTERNAL;
45 char* mono_process_get_name (gpointer pid, char *buf, int len) MONO_INTERNAL;
47 gint64 mono_process_get_data (gpointer pid, MonoProcessData data) MONO_INTERNAL;
48 gint64 mono_process_get_data_with_error (gpointer pid, MonoProcessData data, MonoProcessError *error) MONO_INTERNAL;
50 int mono_cpu_count (void) MONO_INTERNAL;
51 gint64 mono_cpu_get_data (int cpu_id, MonoCpuData data, MonoProcessError *error) MONO_INTERNAL;
53 #endif /* __MONO_PROC_LIB_H__ */