Don't ignore drives with type "aufs" or "overlay" (Xamarin-31021)
[mono.git] / docs / sources / mono-api-utils.html
1 <h2>Utility Methods</h2>
2
3 <h3>Bitsets</h3>
4
5         <p>MonoBitsets are a set of routines used to manipulate sets
6         of bits.
7         
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>
33
34 <h3>Hashtables</h3>
35
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.
40
41         <p>The <tt>MonoGHashTable</tt> data type has the same API as
42         the GLIB.
43         
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>
58
59 <h3>SHA1 Signatures</h3>
60
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>
66
67 <h3>MD5 Signatures</h3>
68
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>
74
75 <h4><a name="api:mono_digest_get_public_token">mono_digest_get_public_token</a></h4>
76
77 <h3>Memory Pools</h3>
78
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. 
84
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). 
89
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.
95         
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> 
104  
105 <h3>JIT utilities</h3>
106
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>
109
110 <h3>Disassembling Generated Code</h3>
111
112         <p>Routines used to debug the JIT-produced code.
113         
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>
116
117 <h3>Walking the Stack</h3>
118
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
122 <h3>Others</h3>
123
124 <h4><a name="api:mono_escape_uri_string">mono_escape_uri_string</a></h4>
125 <h4><a name="api:mono_guid_to_string">mono_guid_to_string</a></h4>
126