X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Futils%2Fmono-counters.h;h=a8e6928dfbe84d036be48f0ef52e79987a24a97c;hb=17864980060a369eb5ad43207f63f047a956cc02;hp=c590c64b095173e66cb987573a07ed59f0902ef6;hpb=8989a87902276551254a8fc60167b8600a907068;p=mono.git diff --git a/mono/utils/mono-counters.h b/mono/utils/mono-counters.h index c590c64b095..a8e6928dfbe 100644 --- a/mono/utils/mono-counters.h +++ b/mono/utils/mono-counters.h @@ -25,6 +25,7 @@ enum { MONO_COUNTER_SECURITY = 1 << 12, MONO_COUNTER_RUNTIME = 1 << 13, MONO_COUNTER_SYSTEM = 1 << 14, + MONO_COUNTER_PERFCOUNTERS = 1 << 15, MONO_COUNTER_LAST_SECTION, /* Unit, bits 24-27 (4 bits) */ @@ -46,8 +47,8 @@ enum { typedef struct _MonoCounter MonoCounter; - MONO_API void mono_counters_enable (int section_mask); +MONO_API void mono_counters_init (void); /* * register addr as the address of a counter of type type. @@ -55,6 +56,10 @@ MONO_API void mono_counters_enable (int section_mask); * the function should return the value and take no arguments. */ MONO_API void mono_counters_register (const char* descr, int type, void *addr); +MONO_API void mono_counters_register_with_size (const char *name, int type, void *addr, int size); + +typedef void (*MonoCounterRegisterCallback) (MonoCounter*); +MONO_API void mono_counters_on_register (MonoCounterRegisterCallback callback); /* * Create a readable dump of the counters for section_mask sections (ORed section values) @@ -67,6 +72,15 @@ typedef mono_bool (*CountersEnumCallback) (MonoCounter *counter, void *user_data MONO_API void mono_counters_foreach (CountersEnumCallback cb, void *user_data); +MONO_API int mono_counters_sample (MonoCounter *counter, void *buffer, int buffer_size); + +MONO_API const char* mono_counter_get_name (MonoCounter *name); +MONO_API int mono_counter_get_type (MonoCounter *counter); +MONO_API int mono_counter_get_section (MonoCounter *counter); +MONO_API int mono_counter_get_unit (MonoCounter *counter); +MONO_API int mono_counter_get_variance (MonoCounter *counter); +MONO_API size_t mono_counter_get_size (MonoCounter *counter); + typedef enum { MONO_RESOURCE_JIT_CODE, /* bytes */ MONO_RESOURCE_METADATA, /* bytes */