Merge pull request #1624 from esdrubal/getprocesstimes
[mono.git] / mono / utils / mono-proclib.h
index dc870cde93a1d5cd4a5bd14df81b5798346abc00..67db3f3f31715e57ab0ca97e4dc5364a2d202e3a 100644 (file)
@@ -41,6 +41,21 @@ typedef enum {
        MONO_PROCESS_ERROR_OTHER
 } MonoProcessError;
 
+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);
@@ -54,6 +69,7 @@ int       mono_process_current_pid (void);
 
 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_atexit (void (*func)(void));