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