1 #ifndef __MONO_PROC_LIB_H__
2 #define __MONO_PROC_LIB_H__
4 * Utility functions to access processes information and other info about the system.
8 #include <mono/utils/mono-compiler.h>
10 /* never remove or reorder these enums values: they are used in corlib/System */
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,
23 MONO_PROCESS_ELAPSED, /* 10 */
25 MONO_PROCESS_PAGED_BYTES,
39 MONO_PROCESS_ERROR_NONE, /* no error happened */
40 MONO_PROCESS_ERROR_NOT_FOUND, /* process not found */
41 MONO_PROCESS_ERROR_OTHER
44 typedef struct _MonoCpuUsageState MonoCpuUsageState;
46 struct _MonoCpuUsageState {
52 struct _MonoCpuUsageState {
59 gpointer* mono_process_list (int *size);
61 void mono_process_get_times (gpointer pid, gint64 *start_time, gint64 *user_time, gint64 *kernel_time);
63 char* mono_process_get_name (gpointer pid, char *buf, int len);
65 gint64 mono_process_get_data (gpointer pid, MonoProcessData data);
66 gint64 mono_process_get_data_with_error (gpointer pid, MonoProcessData data, MonoProcessError *error);
68 int mono_process_current_pid (void);
70 int mono_cpu_count (void);
71 gint64 mono_cpu_get_data (int cpu_id, MonoCpuData data, MonoProcessError *error);
72 gint32 mono_cpu_usage (MonoCpuUsageState *prev);
74 int mono_atexit (void (*func)(void));
76 #endif /* __MONO_PROC_LIB_H__ */