+/**
+ * \file
+ */
+
#ifndef __MONO_PROC_LIB_H__
#define __MONO_PROC_LIB_H__
/*
#include <glib.h>
#include <mono/utils/mono-compiler.h>
+#include <mono/utils/mono-publib.h>
/* never remove or reorder these enums values: they are used in corlib/System */
MONO_PROCESS_VIRTUAL_BYTES,
MONO_PROCESS_VIRTUAL_BYTES_PEAK,
MONO_PROCESS_FAULTS,
- MONO_PROCESS_ELAPSED,
+ MONO_PROCESS_ELAPSED, /* 10 */
MONO_PROCESS_PPID,
+ MONO_PROCESS_PAGED_BYTES,
MONO_PROCESS_END
} MonoProcessData;
MONO_PROCESS_ERROR_OTHER
} MonoProcessError;
-gpointer* mono_process_list (int *size) MONO_INTERNAL;
+typedef struct _MonoCpuUsageState MonoCpuUsageState;
+#ifndef HOST_WIN32
+struct _MonoCpuUsageState {
+ gint64 kernel_time;
+ gint64 user_time;
+ gint64 current_time;
+};
+#else
+struct _MonoCpuUsageState {
+ guint64 kernel_time;
+ guint64 user_time;
+ guint64 idle_time;
+};
+#endif
+
+gpointer* mono_process_list (int *size);
+
+void mono_process_get_times (gpointer pid, gint64 *start_time, gint64 *user_time, gint64 *kernel_time);
+
+char* mono_process_get_name (gpointer pid, char *buf, int len);
-char* mono_process_get_name (gpointer pid, char *buf, int len) MONO_INTERNAL;
+gint64 mono_process_get_data (gpointer pid, MonoProcessData data);
+gint64 mono_process_get_data_with_error (gpointer pid, MonoProcessData data, MonoProcessError *error);
-gint64 mono_process_get_data (gpointer pid, MonoProcessData data) MONO_INTERNAL;
-gint64 mono_process_get_data_with_error (gpointer pid, MonoProcessData data, MonoProcessError *error) MONO_INTERNAL;
+int mono_process_current_pid (void);
-int mono_process_current_pid (void) MONO_INTERNAL;
+MONO_API int mono_cpu_count (void);
+gint64 mono_cpu_get_data (int cpu_id, MonoCpuData data, MonoProcessError *error);
+gint32 mono_cpu_usage (MonoCpuUsageState *prev);
-int mono_cpu_count (void) MONO_INTERNAL;
-gint64 mono_cpu_get_data (int cpu_id, MonoCpuData data, MonoProcessError *error) MONO_INTERNAL;
+int mono_atexit (void (*func)(void));
#endif /* __MONO_PROC_LIB_H__ */