Fix eglib targets and filters.
[mono.git] / docs / sources / mono-api-jitinternal.html
index 25dd46cb5fa99f3dccc8f431051234f30a786909..bf6650e0b43b071de2241d0fbc3cbd1d15e9e377 100644 (file)
@@ -1,9 +1,123 @@
-<h1>Notification Interface</h1>
+<h2>Internal Runtime Utility Functions</h2>
 
-       <p>Am not sure that we want to document this;  This seems like
-       an internal interface that third parties would not likely
-       use, and if they do, they probably are reading the JIT's
-       source code. 
+<h3>SHA1 Signatures</h3>
+
+<h4><a name="api:mono_sha1_init">mono_sha1_init</a></h4>
+<h4><a name="api:mono_sha1_update">mono_sha1_update</a></h4>
+<h4><a name="api:mono_sha1_get_digest_from_file">mono_sha1_get_digest_from_file</a></h4>
+<h4><a name="api:mono_sha1_get_digest">mono_sha1_get_digest</a></h4>
+<h4><a name="api:mono_sha1_final">mono_sha1_final</a></h4>
+
+<h3>MD5 Signatures</h3>
+
+<h4><a name="api:mono_md5_init">mono_md5_init</a></h4>
+<h4><a name="api:mono_md5_update">mono_md5_update</a></h4>
+<h4><a name="api:mono_md5_get_digest_from_file">mono_md5_get_digest_from_file</a></h4>
+<h4><a name="api:mono_md5_get_digest">mono_md5_get_digest</a></h4>
+<h4><a name="api:mono_md5_final">mono_md5_final</a></h4>
+
+<h4><a name="api:mono_digest_get_public_token">mono_digest_get_public_token</a></h4>
+
+<h3>Hashtables</h3>
+
+       <p><tt>GHashTable</tt> is used when you need to store object
+       references into a hashtable, objects stored in a
+       <tt>MonoGHashTable</tt> are properly tracked by the garbage
+       collector.
+
+       <p>The <tt>MonoGHashTable</tt> data type has the same API as
+       the GLIB.
+       
+<h4><a name="api:mono_g_hash_table_destroy">mono_g_hash_table_destroy</a></h4>
+<h4><a name="api:mono_g_hash_table_foreach">mono_g_hash_table_foreach</a></h4>
+<h4><a name="api:mono_g_hash_table_foreach_remove">mono_g_hash_table_foreach_remove</a></h4>
+<h4><a name="api:mono_g_hash_table_insert">mono_g_hash_table_insert</a></h4>
+<h4><a name="api:mono_g_hash_table_lookup">mono_g_hash_table_lookup</a></h4>
+<h4><a name="api:mono_g_hash_table_lookup_extended">mono_g_hash_table_lookup_extended</a></h4>
+<h4><a name="api:mono_g_hash_table_remove">mono_g_hash_table_remove</a></h4>
+<h4><a name="api:mono_g_hash_table_replace">mono_g_hash_table_replace</a></h4>
+<h4><a name="api:mono_g_hash_table_size">mono_g_hash_table_size</a></h4>
+
+
+<h3>Memory Pools</h3>
+
+       <p>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. 
+
+       <p><tt>MonoMemPool</tt> objects are not thread safe, which
+       means that you should not share the objects across multiple
+       threads without providing proper locking around it (unlike
+       <tt>malloc</tt> and <tt>free</tt> which are thread safe). 
+
+       <p>When a <tt>MonoMemPool</tt> is released with
+       <tt>mono_mempool_destroy</tt> all of the of the memory
+       allocated from that memory pool with
+       <tt>mono_mempool_alloc</tt> and <tt>mono_mempool_alloc0</tt>
+       is released.
+       
+<h4><a name="api:mono_mempool_new">mono_mempool_new</a></h4>
+<h4><a name="api:mono_mempool_destroy">mono_mempool_destroy</a></h4>
+<h4><a name="api:mono_mempool_alloc">mono_mempool_alloc</a></h4>
+<h4><a name="api:mono_mempool_alloc0">mono_mempool_alloc0</a></h4>
+<h4><a name="api:mono_mempool_invalidate">mono_mempool_invalidate</a></h4>
+<h4><a name="api:mono_mempool_stats">mono_mempool_stats</a></h4>
+<h4><a name="api:mono_mempool_contains_addr">mono_mempool_contains_addr</a></h4> 
+<h3>Bitsets</h3>
+
+       <p>MonoBitsets are a set of routines used to manipulate sets
+       of bits.
+       
+<h4><a name="api:mono_bitset_alloc_size">mono_bitset_alloc_size</a></h4>
+<h4><a name="api:mono_bitset_clear">mono_bitset_clear</a></h4>
+<h4><a name="api:mono_bitset_clear_all">mono_bitset_clear_all</a></h4>
+<h4><a name="api:mono_bitset_clone">mono_bitset_clone</a></h4>
+<h4><a name="api:mono_bitset_copyto">mono_bitset_copyto</a></h4>
+<h4><a name="api:mono_bitset_count">mono_bitset_count</a></h4>
+<h4><a name="api:mono_bitset_equal">mono_bitset_equal</a></h4>
+<h4><a name="api:mono_bitset_find_first">mono_bitset_find_first</a></h4>
+<h4><a name="api:mono_bitset_find_last">mono_bitset_find_last</a></h4>
+<h4><a name="api:mono_bitset_find_start">mono_bitset_find_start</a></h4>
+<h4><a name="api:mono_bitset_foreach">mono_bitset_foreach</a></h4>
+<h4><a name="api:mono_bitset_free">mono_bitset_free</a></h4>
+<h4><a name="api:mono_bitset_intersection">mono_bitset_intersection</a></h4>
+<h4><a name="api:mono_bitset_invert">mono_bitset_invert</a></h4>
+<h4><a name="api:mono_bitset_mem_new">mono_bitset_mem_new</a></h4>
+<h4><a name="api:mono_bitset_new">mono_bitset_new</a></h4>
+<h4><a name="api:mono_bitset_set">mono_bitset_set</a></h4>
+<h4><a name="api:mono_bitset_set_all">mono_bitset_set_all</a></h4>
+<h4><a name="api:mono_bitset_size">mono_bitset_size</a></h4>
+<h4><a name="api:mono_bitset_sub">mono_bitset_sub</a></h4>
+<h4><a name="api:mono_bitset_test">mono_bitset_test</a></h4>
+<h4><a name="api:mono_bitset_test_bulk">mono_bitset_test_bulk</a></h4>
+<h4><a name="api:mono_bitset_union">mono_bitset_union</a></h4>
+<h4><a name="api:mono_bitset_find_first_unset">mono_bitset_find_first_unset</a></h4>
+<h4><a name="api:mono_bitset_intersection_2">mono_bitset_intersection_2</a></h4>
+
+<h3>JIT utilities</h3>
+
+<h4><a name="api:mono_signbit_double">mono_signbit_double</a></h4>
+<h4><a name="api:mono_signbit_float">mono_signbit_float</a></h4>
+
+<h3>Function Pointers</h3>
+
+       <p>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.
+       
+<h4><a name="api:mono_create_ftnptr">mono_create_ftnptr</a></h4>
+
+
+<h2>Notification Interface</h2>
+
+       <p>This is an internal profiler interface.   In general, users
+       would not be using this interface, but would be using the
+       profiler interface. 
 
        <p>These methods must be called to notify the profiler of an
        event that must be recorded.   Mono's JIT engine currently
 <h4><a name="api:mono_profiler_startup">mono_profiler_startup</a></h4>
 <h4><a name="api:mono_profiler_gc_event">mono_profiler_gc_event</a></h4> 
 <h4><a name="api:mono_profiler_gc_heap_resize">mono_profiler_gc_heap_resize</a></h4> 
-<h4><a name="api:mono_profiler_gc_event">mono_profiler_gc_event</a></h4> 
-<h4><a name="api:mono_profiler_gc_heap_resize">mono_profiler_gc_heap_resize</a></h4>
 <h4><a name="api:mono_profiler_stat_hit">mono_profiler_stat_hit</a></h4>