X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Futils%2Fmono-counters.h;h=f18212f90bfdc535588ad8cf1ec5d455fe04f60f;hb=2e34a838d380715565ada6d447a06d03d6874136;hp=a22a3e92bf3696d2f62ecc8bb198ca96fba89551;hpb=f1f8b8a867c800b21b6a03767252403c2f72cae2;p=mono.git diff --git a/mono/utils/mono-counters.h b/mono/utils/mono-counters.h index a22a3e92bf3..f18212f90bf 100644 --- a/mono/utils/mono-counters.h +++ b/mono/utils/mono-counters.h @@ -2,6 +2,7 @@ #define __MONO_COUNTERS_H__ #include +#include 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__ */