Updated the runtime template documentation with all new APIs in Mono
[mono-project.git] / docs / sources / mono-api-utils.html
blob7b565b6f3a070d326c9b2db78061464c6cd77056
1 <h2>Utility Methods</h2>
3 <h3>Bitsets</h3>
5 <p>MonoBitsets are a set of routines used to manipulate sets
6 of bits.
8 <h4><a name="api:mono_bitset_alloc_size">mono_bitset_alloc_size</a></h4>
9 <h4><a name="api:mono_bitset_clear">mono_bitset_clear</a></h4>
10 <h4><a name="api:mono_bitset_clear_all">mono_bitset_clear_all</a></h4>
11 <h4><a name="api:mono_bitset_clone">mono_bitset_clone</a></h4>
12 <h4><a name="api:mono_bitset_copyto">mono_bitset_copyto</a></h4>
13 <h4><a name="api:mono_bitset_count">mono_bitset_count</a></h4>
14 <h4><a name="api:mono_bitset_equal">mono_bitset_equal</a></h4>
15 <h4><a name="api:mono_bitset_find_first">mono_bitset_find_first</a></h4>
16 <h4><a name="api:mono_bitset_find_last">mono_bitset_find_last</a></h4>
17 <h4><a name="api:mono_bitset_find_start">mono_bitset_find_start</a></h4>
18 <h4><a name="api:mono_bitset_foreach">mono_bitset_foreach</a></h4>
19 <h4><a name="api:mono_bitset_free">mono_bitset_free</a></h4>
20 <h4><a name="api:mono_bitset_intersection">mono_bitset_intersection</a></h4>
21 <h4><a name="api:mono_bitset_invert">mono_bitset_invert</a></h4>
22 <h4><a name="api:mono_bitset_mem_new">mono_bitset_mem_new</a></h4>
23 <h4><a name="api:mono_bitset_new">mono_bitset_new</a></h4>
24 <h4><a name="api:mono_bitset_set">mono_bitset_set</a></h4>
25 <h4><a name="api:mono_bitset_set_all">mono_bitset_set_all</a></h4>
26 <h4><a name="api:mono_bitset_size">mono_bitset_size</a></h4>
27 <h4><a name="api:mono_bitset_sub">mono_bitset_sub</a></h4>
28 <h4><a name="api:mono_bitset_test">mono_bitset_test</a></h4>
29 <h4><a name="api:mono_bitset_test_bulk">mono_bitset_test_bulk</a></h4>
30 <h4><a name="api:mono_bitset_union">mono_bitset_union</a></h4>
31 <h4><a name="api:mono_bitset_find_first_unset">mono_bitset_find_first_unset</a></h4>
32 <h4><a name="api:mono_bitset_intersection_2">mono_bitset_intersection_2</a></h4>
34 <h3>Hashtables</h3>
36 <p><tt>GHashTable</tt> is used when you need to store object
37 references into a hashtable, objects stored in a
38 <tt>MonoGHashTable</tt> are properly tracked by the garbage
39 collector.
41 <p>The <tt>MonoGHashTable</tt> data type has the same API as
42 the GLIB.
44 <h4><a name="api:mono_g_hash_table_destroy">mono_g_hash_table_destroy</a></h4>
45 <h4><a name="api:mono_g_hash_table_foreach">mono_g_hash_table_foreach</a></h4>
46 <h4><a name="api:mono_g_hash_table_foreach_remove">mono_g_hash_table_foreach_remove</a></h4>
47 <h4><a name="api:mono_g_hash_table_foreach_steal">mono_g_hash_table_foreach_steal</a></h4>
48 <h4><a name="api:mono_g_hash_table_insert">mono_g_hash_table_insert</a></h4>
49 <h4><a name="api:mono_g_hash_table_lookup">mono_g_hash_table_lookup</a></h4>
50 <h4><a name="api:mono_g_hash_table_lookup_extended">mono_g_hash_table_lookup_extended</a></h4>
51 <h4><a name="api:mono_g_hash_table_new">mono_g_hash_table_new</a></h4>
52 <h4><a name="api:mono_g_hash_table_new_full">mono_g_hash_table_new_full</a></h4>
53 <h4><a name="api:mono_g_hash_table_remap">mono_g_hash_table_remap</a></h4>
54 <h4><a name="api:mono_g_hash_table_remove">mono_g_hash_table_remove</a></h4>
55 <h4><a name="api:mono_g_hash_table_replace">mono_g_hash_table_replace</a></h4>
56 <h4><a name="api:mono_g_hash_table_size">mono_g_hash_table_size</a></h4>
57 <h4><a name="api:mono_g_hash_table_steal">mono_g_hash_table_steal</a></h4>
59 <h3>SHA1 Signatures</h3>
61 <h4><a name="api:mono_sha1_init">mono_sha1_init</a></h4>
62 <h4><a name="api:mono_sha1_update">mono_sha1_update</a></h4>
63 <h4><a name="api:mono_sha1_get_digest_from_file">mono_sha1_get_digest_from_file</a></h4>
64 <h4><a name="api:mono_sha1_get_digest">mono_sha1_get_digest</a></h4>
65 <h4><a name="api:mono_sha1_final">mono_sha1_final</a></h4>
67 <h3>MD5 Signatures</h3>
69 <h4><a name="api:mono_md5_init">mono_md5_init</a></h4>
70 <h4><a name="api:mono_md5_update">mono_md5_update</a></h4>
71 <h4><a name="api:mono_md5_get_digest_from_file">mono_md5_get_digest_from_file</a></h4>
72 <h4><a name="api:mono_md5_get_digest">mono_md5_get_digest</a></h4>
73 <h4><a name="api:mono_md5_final">mono_md5_final</a></h4>
75 <h4><a name="api:mono_digest_get_public_token">mono_digest_get_public_token</a></h4>
77 <h3>Memory Pools</h3>
79 <p>Memory pools are a convenient way of tracking memory
80 allocations that are used for one specific task, they are also
81 faster than using the standard memory allocation procedures,
82 as they are designed to be used only by a single thread at a
83 time.
85 <p><tt>MonoMemPool</tt> objects are not thread safe, which
86 means that you should not share the objects across multiple
87 threads without providing proper locking around it (unlike
88 <tt>malloc</tt> and <tt>free</tt> which are thread safe).
90 <p>When a <tt>MonoMemPool</tt> is released with
91 <tt>mono_mempool_destroy</tt> all of the of the memory
92 allocated from that memory pool with
93 <tt>mono_mempool_alloc</tt> and <tt>mono_mempool_alloc0</tt>
94 is released.
96 <h4><a name="api:mono_mempool_new">mono_mempool_new</a></h4>
97 <h4><a name="api:mono_mempool_destroy">mono_mempool_destroy</a></h4>
98 <h4><a name="api:mono_mempool_alloc">mono_mempool_alloc</a></h4>
99 <h4><a name="api:mono_mempool_alloc0">mono_mempool_alloc0</a></h4>
100 <h4><a name="api:mono_mempool_empty">mono_mempool_empty</a></h4>
101 <h4><a name="api:mono_mempool_invalidate">mono_mempool_invalidate</a></h4>
102 <h4><a name="api:mono_mempool_stats">mono_mempool_stats</a></h4>
103 <h4><a name="api:mono_mempool_contains_addr">mono_mempool_contains_addr</a></h4>
105 <h3>JIT utilities</h3>
107 <h4><a name="api:mono_signbit_double">mono_signbit_double</a></h4>
108 <h4><a name="api:mono_signbit_float">mono_signbit_float</a></h4>
110 <h3>Disassembling Generated Code</h3>
112 <p>Routines used to debug the JIT-produced code.
114 <h4><a name="api:mono_disasm_code">mono_disasm_code</a></h4>
115 <h4><a name="api:mono_disasm_code_one">mono_disasm_code_one</a></h4>
117 <h3>Walking the Stack</h3>
119 <h4><a name="api:mono_walk_stack">mono_walk_stack</a></h4>
120 <h4><a name="api:mono_stack_walk_no_il">mono_stack_walk_no_il</a></h4>
121 <h4><a name="api:mono_stack_walk_async_safe">mono_stack_walk_async_safe</a></h4>
123 <h3>Others</h3>
125 <h4><a name="api:mono_escape_uri_string">mono_escape_uri_string</a></h4>
126 <h4><a name="api:mono_guid_to_string">mono_guid_to_string</a></h4>