Internal Runtime Utility Functions
SHA1 Signatures
mono_sha1_get_digest_from_file
Syntax
mono_sha1_get_digest_from_file
mono_sha1_get_digest
Syntax
mono_sha1_get_digest
mono_sha1_final
MD5 Signatures
mono_md5_get_digest_from_file
Syntax
mono_md5_get_digest_from_file
mono_md5_get_digest
Syntax
mono_md5_get_digest
mono_digest_get_public_token
Syntax
mono_digest_get_public_token
Hashtables
GHashTable is used when you need to store object
references into a hashtable, objects stored in a
MonoGHashTable are properly tracked by the garbage
collector.
The
MonoGHashTable data type has the same API as
the GLIB.
mono_g_hash_table_destroy
Syntax
mono_g_hash_table_destroy
mono_g_hash_table_foreach
Syntax
mono_g_hash_table_foreach
mono_g_hash_table_foreach_remove
Syntax
mono_g_hash_table_foreach_remove
mono_g_hash_table_foreach_steal
Syntax
mono_g_hash_table_foreach_steal
mono_g_hash_table_insert
Syntax
mono_g_hash_table_insert
mono_g_hash_table_lookup
Syntax
mono_g_hash_table_lookup
mono_g_hash_table_lookup_extended
Syntax
mono_g_hash_table_lookup_extended
mono_g_hash_table_new
Syntax
mono_g_hash_table_new
mono_g_hash_table_new_full
Syntax
mono_g_hash_table_new_full
mono_g_hash_table_remap
Syntax
mono_g_hash_table_remap
mono_g_hash_table_remove
Syntax
mono_g_hash_table_remove
mono_g_hash_table_replace
Syntax
mono_g_hash_table_replace
mono_g_hash_table_size
Syntax
mono_g_hash_table_size
mono_g_hash_table_steal
Syntax
mono_g_hash_table_steal
Memory Pools
Memory pools are a convenient way of tracking memory
allocations that are used for one specific task, they are also
faster than using the standard memory allocation procedures,
as they are designed to be used only by a single thread at a
time.
MonoMemPool objects are not thread safe, which
means that you should not share the objects across multiple
threads without providing proper locking around it (unlike
malloc and
free which are thread safe).
When a
MonoMemPool is released with
mono_mempool_destroy all of the of the memory
allocated from that memory pool with
mono_mempool_alloc and
mono_mempool_alloc0
is released.
mono_mempool_new
Syntax
MonoMemPool*
mono_mempool_new (void)
Return value
a new memory pool.
Description
mono_mempool_destroy
Syntax
void
mono_mempool_destroy (MonoMemPool *pool)
Parameters
pool | the memory pool to destroy |
Description
Free all memory associated with this pool.
mono_mempool_alloc
Syntax
gpointer
mono_mempool_alloc (MonoMemPool *pool, guint size)
Parameters
pool | the memory pool to use |
size | size of the memory block |
Return value
the address of a newly allocated memory block.
Description
Allocates a new block of memory in
pool.
mono_mempool_alloc0
Syntax
gpointer
mono_mempool_alloc0 (MonoMemPool *pool, guint size)
Description
same as mono_mempool_alloc, but fills memory with zero.
mono_mempool_empty
Syntax
mono_mempool_empty
mono_mempool_invalidate
Syntax
void
mono_mempool_invalidate (MonoMemPool *pool)
Parameters
pool | the memory pool to invalidate |
Description
Fill the memory associated with this pool to 0x2a (42). Useful for debugging.
mono_mempool_stats
Syntax
void
mono_mempool_stats (MonoMemPool *pool)
Parameters
pool | the momory pool we need stats for |
Description
Print a few stats about the mempool:
- Total memory allocated (malloced) by mem pool
- Number of chunks/blocks memory is allocated in
- How much memory is available to dispense before a new malloc must occur?
mono_mempool_contains_addr
Syntax
gboolean
mono_mempool_contains_addr (MonoMemPool *pool,
gpointer addr)
Description
Determines whenever ADDR is inside the memory used by the mempool.
Bitsets
MonoBitsets are a set of routines used to manipulate sets
of bits.
mono_bitset_alloc_size
Syntax
mono_bitset_alloc_size
mono_bitset_clear_all
Syntax
mono_bitset_clear_all
mono_bitset_copyto
Syntax
mono_bitset_copyto
mono_bitset_find_first
Syntax
mono_bitset_find_first
mono_bitset_find_last
Syntax
mono_bitset_find_last
mono_bitset_find_start
Syntax
mono_bitset_find_start
mono_bitset_foreach
Syntax
mono_bitset_foreach
mono_bitset_intersection
Syntax
mono_bitset_intersection
mono_bitset_invert
Syntax
mono_bitset_invert
mono_bitset_mem_new
Syntax
mono_bitset_mem_new
mono_bitset_set_all
Syntax
mono_bitset_set_all
mono_bitset_test_bulk
Syntax
mono_bitset_test_bulk
mono_bitset_find_first_unset
Syntax
mono_bitset_find_first_unset
mono_bitset_intersection_2
Syntax
mono_bitset_intersection_2
JIT utilities
mono_signbit_double
Syntax
mono_signbit_double
mono_signbit_float
Syntax
mono_signbit_float
Function Pointers
To wrap a function pointer into something that the Mono
runtime can consume, you should use the mono_create_ftnptr.
This is only important if you plan on running on the IA64
architecture. Otherwise you can just use the function
pointer address.
mono_create_ftnptr
Syntax
mono_create_ftnptr
Notification Interface
This is an internal profiler interface. In general, users
would not be using this interface, but would be using the
profiler interface.
These methods must be called to notify the profiler of an
event that must be recorded. Mono's JIT engine currently
calls these routines, but if you are extending Mono in some
way these are the methods that you might invoke to notify the
profiler of an event.
mono_profiler_load
Syntax
void
mono_profiler_load (const char *desc)
Parameters
desc | arguments to configure the profiler |
Description
Invoke this method to initialize the profiler. This will drive the
loading of the internal ("default") or any external profilers.
This routine is invoked by Mono's driver, but must be called manually
if you embed Mono into your application.
mono_profiler_allocation
Syntax
mono_profiler_allocation
mono_profiler_stat_hit
Syntax
mono_profiler_stat_hit
mono_profiler_thread_start
Syntax
mono_profiler_thread_start
mono_profiler_thread_end
Syntax
mono_profiler_thread_end
mono_profiler_appdomain_event
Syntax
mono_profiler_appdomain_event
mono_profiler_appdomain_loaded
Syntax
mono_profiler_appdomain_loaded
mono_profiler_assembly_event
Syntax
mono_profiler_assembly_event
mono_profiler_assembly_loaded
Syntax
mono_profiler_assembly_loaded
mono_profiler_class_event
Syntax
mono_profiler_class_event
mono_profiler_class_loaded
Syntax
mono_profiler_class_loaded
mono_profiler_code_transition
Syntax
mono_profiler_code_transition
mono_profiler_method_end_jit
Syntax
mono_profiler_method_end_jit
mono_profiler_method_enter
Syntax
mono_profiler_method_enter
mono_profiler_method_jit
Syntax
mono_profiler_method_jit
mono_profiler_method_leave
Syntax
mono_profiler_method_leave
mono_profiler_module_event
Syntax
mono_profiler_module_event
mono_profiler_module_loaded
Syntax
mono_profiler_module_loaded
mono_profiler_shutdown
Syntax
mono_profiler_shutdown
mono_profiler_startup
Syntax
mono_profiler_startup
mono_profiler_gc_event
Syntax
mono_profiler_gc_event
mono_profiler_gc_heap_resize
Syntax
mono_profiler_gc_heap_resize
mono_profiler_gc_event
Syntax
mono_profiler_gc_event
mono_profiler_gc_heap_resize
Syntax
mono_profiler_gc_heap_resize