File: mono-api-jitinternal.html

package info (click to toggle)
mono 6.12.0.199%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 1,296,836 kB
  • sloc: cs: 11,181,803; xml: 2,850,076; ansic: 699,709; cpp: 123,344; perl: 59,361; javascript: 30,841; asm: 21,853; makefile: 20,405; sh: 15,009; python: 4,839; pascal: 925; sql: 859; sed: 16; php: 1
file content (150 lines) | stat: -rw-r--r-- 7,650 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<h2>Internal Runtime Utility Functions</h2>

<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
	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.

<h4><a name="api:mono_profiler_load">mono_profiler_load</a></h4>
<h4><a name="api:mono_profiler_allocation">mono_profiler_allocation</a></h4>
<h4><a name="api:mono_profiler_stat_hit">mono_profiler_stat_hit</a></h4> 
<h4><a name="api:mono_profiler_thread_start">mono_profiler_thread_start</a></h4>
<h4><a name="api:mono_profiler_thread_end">mono_profiler_thread_end</a></h4>
<h4><a name="api:mono_profiler_appdomain_event">mono_profiler_appdomain_event</a></h4>
<h4><a name="api:mono_profiler_appdomain_loaded">mono_profiler_appdomain_loaded</a></h4>
<h4><a name="api:mono_profiler_assembly_event">mono_profiler_assembly_event</a></h4>
<h4><a name="api:mono_profiler_assembly_loaded">mono_profiler_assembly_loaded</a></h4>
<h4><a name="api:mono_profiler_class_event">mono_profiler_class_event</a></h4>
<h4><a name="api:mono_profiler_class_loaded">mono_profiler_class_loaded</a></h4>
<h4><a name="api:mono_profiler_code_transition">mono_profiler_code_transition</a></h4>
<h4><a name="api:mono_profiler_method_end_jit">mono_profiler_method_end_jit</a></h4>
<h4><a name="api:mono_profiler_method_enter">mono_profiler_method_enter</a></h4>
<h4><a name="api:mono_profiler_method_jit">mono_profiler_method_jit</a></h4>
<h4><a name="api:mono_profiler_method_leave">mono_profiler_method_leave</a></h4>
<h4><a name="api:mono_profiler_module_event">mono_profiler_module_event</a></h4>
<h4><a name="api:mono_profiler_module_loaded">mono_profiler_module_loaded</a></h4>
<h4><a name="api:mono_profiler_shutdown">mono_profiler_shutdown</a></h4>
<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_stat_hit">mono_profiler_stat_hit</a></h4>