[llvm] Fix more memory leaks.
[mono.git] / mono / utils / mono-counters.h
index a22a3e92bf3696d2f62ecc8bb198ca96fba89551..f18212f90bfdc535588ad8cf1ec5d455fe04f60f 100644 (file)
@@ -2,6 +2,7 @@
 #define __MONO_COUNTERS_H__
 
 #include <stdio.h>
+#include <mono/utils/mono-publib.h>
 
 enum {
        MONO_COUNTER_INT,    /* 32 bit int */
@@ -11,6 +12,7 @@ enum {
        MONO_COUNTER_ULONG,   /* 64 bit uint */
        MONO_COUNTER_DOUBLE,
        MONO_COUNTER_STRING, /* char* */
+       MONO_COUNTER_TIME_INTERVAL, /* 64 bits signed int holding usecs. */
        MONO_COUNTER_TYPE_MASK = 0xf,
        MONO_COUNTER_CALLBACK = 128, /* ORed with the other values */
        MONO_COUNTER_SECTION_MASK = 0xffffff00,
@@ -23,19 +25,34 @@ enum {
        MONO_COUNTER_LAST_SECTION
 };
 
-void mono_counters_enable (int section_mask);
+MONO_API void mono_counters_enable (int section_mask);
 
 /* 
  * register addr as the address of a counter of type type.
  * It may be a function pointer if MONO_COUNTER_CALLBACK is specified:
  * the function should return the value and take no arguments.
  */
-void mono_counters_register (const char* descr, int type, void *addr);
+MONO_API void mono_counters_register (const char* descr, int type, void *addr);
 
 /* 
  * Create a readable dump of the counters for section_mask sections (ORed section values)
  */
-void mono_counters_dump (int section_mask, FILE *outfile);
+MONO_API void mono_counters_dump (int section_mask, FILE *outfile);
+
+MONO_API void mono_counters_cleanup (void);
+
+typedef enum {
+       MONO_RESOURCE_JIT_CODE, /* bytes */
+       MONO_RESOURCE_METADATA, /* bytes */
+       MONO_RESOURCE_GC_HEAP,  /* bytes */
+       MONO_RESOURCE_COUNT /* non-ABI value */
+} MonoResourceType;
+
+typedef void (*MonoResourceCallback) (int resource_type, uintptr_t value, int is_soft);
+
+MONO_API int  mono_runtime_resource_limit        (int resource_type, uintptr_t soft_limit, uintptr_t hard_limit);
+MONO_API void mono_runtime_resource_set_callback (MonoResourceCallback callback);
+MONO_API void mono_runtime_resource_check_limit  (int resource_type, uintptr_t value);
 
 #endif /* __MONO_COUNTERS_H__ */