5 #ifndef __MONO_PROC_LIB_H__
6 #define __MONO_PROC_LIB_H__
8 * Utility functions to access processes information and other info about the system.
12 #include <mono/utils/mono-compiler.h>
13 #include <mono/utils/mono-publib.h>
15 /* never remove or reorder these enums values: they are used in corlib/System */
18 MONO_PROCESS_NUM_THREADS
,
19 MONO_PROCESS_USER_TIME
, /* milliseconds */
20 MONO_PROCESS_SYSTEM_TIME
, /* milliseconds */
21 MONO_PROCESS_TOTAL_TIME
, /* milliseconds */
22 MONO_PROCESS_WORKING_SET
,
23 MONO_PROCESS_WORKING_SET_PEAK
, /* 5 */
24 MONO_PROCESS_PRIVATE_BYTES
,
25 MONO_PROCESS_VIRTUAL_BYTES
,
26 MONO_PROCESS_VIRTUAL_BYTES_PEAK
,
28 MONO_PROCESS_ELAPSED
, /* 10 */
30 MONO_PROCESS_PAGED_BYTES
,
44 MONO_PROCESS_ERROR_NONE
, /* no error happened */
45 MONO_PROCESS_ERROR_NOT_FOUND
, /* process not found */
46 MONO_PROCESS_ERROR_OTHER
49 typedef struct _MonoCpuUsageState MonoCpuUsageState
;
51 struct _MonoCpuUsageState
{
57 struct _MonoCpuUsageState
{
64 gpointer
* mono_process_list (int *size
);
66 void mono_process_get_times (gpointer pid
, gint64
*start_time
, gint64
*user_time
, gint64
*kernel_time
);
68 char* mono_process_get_name (gpointer pid
, char *buf
, int len
);
70 gint64
mono_process_get_data (gpointer pid
, MonoProcessData data
);
71 gint64
mono_process_get_data_with_error (gpointer pid
, MonoProcessData data
, MonoProcessError
*error
);
73 int mono_process_current_pid (void);
75 MONO_API
int mono_cpu_count (void);
76 gint64
mono_cpu_get_data (int cpu_id
, MonoCpuData data
, MonoProcessError
*error
);
77 gint32
mono_cpu_usage (MonoCpuUsageState
*prev
);
79 int mono_atexit (void (*func
)(void));
81 #endif /* __MONO_PROC_LIB_H__ */