[docs] Remove dead loader error APIs.
[mono.git] / docs / sources / mono-api-jitinternal.html
1 <h2>Internal Runtime Utility Functions</h2>
2
3 <h3>SHA1 Signatures</h3>
4
5 <h4><a name="api:mono_sha1_init">mono_sha1_init</a></h4>
6 <h4><a name="api:mono_sha1_update">mono_sha1_update</a></h4>
7 <h4><a name="api:mono_sha1_get_digest_from_file">mono_sha1_get_digest_from_file</a></h4>
8 <h4><a name="api:mono_sha1_get_digest">mono_sha1_get_digest</a></h4>
9 <h4><a name="api:mono_sha1_final">mono_sha1_final</a></h4>
10
11 <h3>MD5 Signatures</h3>
12
13 <h4><a name="api:mono_md5_init">mono_md5_init</a></h4>
14 <h4><a name="api:mono_md5_update">mono_md5_update</a></h4>
15 <h4><a name="api:mono_md5_get_digest_from_file">mono_md5_get_digest_from_file</a></h4>
16 <h4><a name="api:mono_md5_get_digest">mono_md5_get_digest</a></h4>
17 <h4><a name="api:mono_md5_final">mono_md5_final</a></h4>
18
19 <h4><a name="api:mono_digest_get_public_token">mono_digest_get_public_token</a></h4>
20
21 <h3>Hashtables</h3>
22
23         <p><tt>GHashTable</tt> is used when you need to store object
24         references into a hashtable, objects stored in a
25         <tt>MonoGHashTable</tt> are properly tracked by the garbage
26         collector.
27
28         <p>The <tt>MonoGHashTable</tt> data type has the same API as
29         the GLIB.
30         
31 <h4><a name="api:mono_g_hash_table_destroy">mono_g_hash_table_destroy</a></h4>
32 <h4><a name="api:mono_g_hash_table_foreach">mono_g_hash_table_foreach</a></h4>
33 <h4><a name="api:mono_g_hash_table_foreach_remove">mono_g_hash_table_foreach_remove</a></h4>
34 <h4><a name="api:mono_g_hash_table_foreach_steal">mono_g_hash_table_foreach_steal</a></h4>
35 <h4><a name="api:mono_g_hash_table_insert">mono_g_hash_table_insert</a></h4>
36 <h4><a name="api:mono_g_hash_table_lookup">mono_g_hash_table_lookup</a></h4>
37 <h4><a name="api:mono_g_hash_table_lookup_extended">mono_g_hash_table_lookup_extended</a></h4>
38 <h4><a name="api:mono_g_hash_table_new">mono_g_hash_table_new</a></h4>
39 <h4><a name="api:mono_g_hash_table_new_full">mono_g_hash_table_new_full</a></h4>
40 <h4><a name="api:mono_g_hash_table_remap">mono_g_hash_table_remap</a></h4>
41 <h4><a name="api:mono_g_hash_table_remove">mono_g_hash_table_remove</a></h4>
42 <h4><a name="api:mono_g_hash_table_replace">mono_g_hash_table_replace</a></h4>
43 <h4><a name="api:mono_g_hash_table_size">mono_g_hash_table_size</a></h4>
44 <h4><a name="api:mono_g_hash_table_steal">mono_g_hash_table_steal</a></h4>
45
46
47 <h3>Memory Pools</h3>
48
49         <p>Memory pools are a convenient way of tracking memory
50         allocations that are used for one specific task, they are also
51         faster than using the standard memory allocation procedures,
52         as they are designed to be used only by a single thread at a
53         time. 
54
55         <p><tt>MonoMemPool</tt> objects are not thread safe, which
56         means that you should not share the objects across multiple
57         threads without providing proper locking around it (unlike
58         <tt>malloc</tt> and <tt>free</tt> which are thread safe). 
59
60         <p>When a <tt>MonoMemPool</tt> is released with
61         <tt>mono_mempool_destroy</tt> all of the of the memory
62         allocated from that memory pool with
63         <tt>mono_mempool_alloc</tt> and <tt>mono_mempool_alloc0</tt>
64         is released.
65         
66 <h4><a name="api:mono_mempool_new">mono_mempool_new</a></h4>
67 <h4><a name="api:mono_mempool_destroy">mono_mempool_destroy</a></h4>
68 <h4><a name="api:mono_mempool_alloc">mono_mempool_alloc</a></h4>
69 <h4><a name="api:mono_mempool_alloc0">mono_mempool_alloc0</a></h4>
70 <h4><a name="api:mono_mempool_empty">mono_mempool_empty</a></h4>
71 <h4><a name="api:mono_mempool_invalidate">mono_mempool_invalidate</a></h4>
72 <h4><a name="api:mono_mempool_stats">mono_mempool_stats</a></h4>
73 <h4><a name="api:mono_mempool_contains_addr">mono_mempool_contains_addr</a></h4> 
74  
75 <h3>Bitsets</h3>
76
77         <p>MonoBitsets are a set of routines used to manipulate sets
78         of bits.
79         
80 <h4><a name="api:mono_bitset_alloc_size">mono_bitset_alloc_size</a></h4>
81 <h4><a name="api:mono_bitset_clear">mono_bitset_clear</a></h4>
82 <h4><a name="api:mono_bitset_clear_all">mono_bitset_clear_all</a></h4>
83 <h4><a name="api:mono_bitset_clone">mono_bitset_clone</a></h4>
84 <h4><a name="api:mono_bitset_copyto">mono_bitset_copyto</a></h4>
85 <h4><a name="api:mono_bitset_count">mono_bitset_count</a></h4>
86 <h4><a name="api:mono_bitset_equal">mono_bitset_equal</a></h4>
87 <h4><a name="api:mono_bitset_find_first">mono_bitset_find_first</a></h4>
88 <h4><a name="api:mono_bitset_find_last">mono_bitset_find_last</a></h4>
89 <h4><a name="api:mono_bitset_find_start">mono_bitset_find_start</a></h4>
90 <h4><a name="api:mono_bitset_foreach">mono_bitset_foreach</a></h4>
91 <h4><a name="api:mono_bitset_free">mono_bitset_free</a></h4>
92 <h4><a name="api:mono_bitset_intersection">mono_bitset_intersection</a></h4>
93 <h4><a name="api:mono_bitset_invert">mono_bitset_invert</a></h4>
94 <h4><a name="api:mono_bitset_mem_new">mono_bitset_mem_new</a></h4>
95 <h4><a name="api:mono_bitset_new">mono_bitset_new</a></h4>
96 <h4><a name="api:mono_bitset_set">mono_bitset_set</a></h4>
97 <h4><a name="api:mono_bitset_set_all">mono_bitset_set_all</a></h4>
98 <h4><a name="api:mono_bitset_size">mono_bitset_size</a></h4>
99 <h4><a name="api:mono_bitset_sub">mono_bitset_sub</a></h4>
100 <h4><a name="api:mono_bitset_test">mono_bitset_test</a></h4>
101 <h4><a name="api:mono_bitset_test_bulk">mono_bitset_test_bulk</a></h4>
102 <h4><a name="api:mono_bitset_union">mono_bitset_union</a></h4>
103 <h4><a name="api:mono_bitset_find_first_unset">mono_bitset_find_first_unset</a></h4>
104 <h4><a name="api:mono_bitset_intersection_2">mono_bitset_intersection_2</a></h4>
105
106 <h3>JIT utilities</h3>
107
108 <h4><a name="api:mono_signbit_double">mono_signbit_double</a></h4>
109 <h4><a name="api:mono_signbit_float">mono_signbit_float</a></h4>
110
111 <h3>Function Pointers</h3>
112
113         <p>To wrap a function pointer into something that the Mono
114         runtime can consume, you should use the mono_create_ftnptr.
115         This is only important if you plan on running on the IA64
116         architecture.   Otherwise you can just use the function
117         pointer address.
118         
119 <h4><a name="api:mono_create_ftnptr">mono_create_ftnptr</a></h4>
120
121
122 <h2>Notification Interface</h2>
123
124         <p>This is an internal profiler interface.   In general, users
125         would not be using this interface, but would be using the
126         profiler interface. 
127
128         <p>These methods must be called to notify the profiler of an
129         event that must be recorded.   Mono's JIT engine currently
130         calls these routines, but if you are extending Mono in some
131         way these are the methods that you might invoke to notify the
132         profiler of an event.
133
134 <h4><a name="api:mono_profiler_load">mono_profiler_load</a></h4>
135 <h4><a name="api:mono_profiler_allocation">mono_profiler_allocation</a></h4>
136 <h4><a name="api:mono_profiler_stat_hit">mono_profiler_stat_hit</a></h4> 
137 <h4><a name="api:mono_profiler_thread_start">mono_profiler_thread_start</a></h4>
138 <h4><a name="api:mono_profiler_thread_end">mono_profiler_thread_end</a></h4>
139 <h4><a name="api:mono_profiler_appdomain_event">mono_profiler_appdomain_event</a></h4>
140 <h4><a name="api:mono_profiler_appdomain_loaded">mono_profiler_appdomain_loaded</a></h4>
141 <h4><a name="api:mono_profiler_assembly_event">mono_profiler_assembly_event</a></h4>
142 <h4><a name="api:mono_profiler_assembly_loaded">mono_profiler_assembly_loaded</a></h4>
143 <h4><a name="api:mono_profiler_class_event">mono_profiler_class_event</a></h4>
144 <h4><a name="api:mono_profiler_class_loaded">mono_profiler_class_loaded</a></h4>
145 <h4><a name="api:mono_profiler_code_transition">mono_profiler_code_transition</a></h4>
146 <h4><a name="api:mono_profiler_method_end_jit">mono_profiler_method_end_jit</a></h4>
147 <h4><a name="api:mono_profiler_method_enter">mono_profiler_method_enter</a></h4>
148 <h4><a name="api:mono_profiler_method_jit">mono_profiler_method_jit</a></h4>
149 <h4><a name="api:mono_profiler_method_leave">mono_profiler_method_leave</a></h4>
150 <h4><a name="api:mono_profiler_module_event">mono_profiler_module_event</a></h4>
151 <h4><a name="api:mono_profiler_module_loaded">mono_profiler_module_loaded</a></h4>
152 <h4><a name="api:mono_profiler_shutdown">mono_profiler_shutdown</a></h4>
153 <h4><a name="api:mono_profiler_startup">mono_profiler_startup</a></h4>
154 <h4><a name="api:mono_profiler_gc_event">mono_profiler_gc_event</a></h4> 
155 <h4><a name="api:mono_profiler_gc_heap_resize">mono_profiler_gc_heap_resize</a></h4> 
156 <h4><a name="api:mono_profiler_gc_event">mono_profiler_gc_event</a></h4> 
157 <h4><a name="api:mono_profiler_gc_heap_resize">mono_profiler_gc_heap_resize</a></h4>
158 <h4><a name="api:mono_profiler_stat_hit">mono_profiler_stat_hit</a></h4>