2015-05-15 09:04:39 +01:00
<?xml version="1.0" encoding="us-ascii"?> < span >
2015-04-26 19:10:23 +01:00
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< title > mono-api-codegen.html< / title >
< style type = "text/css" >
h3 {
font-size: 18px;
padding-bottom: 4pt;
border-bottom: 2px solid #dddddd;
}
.api {
border: 1px solid;
padding: 10pt;
margin: 10pt;
}
.api-entry {
border-bottom: none;
font-size: 18px;
}
.prototype {
border: 1px solid;
background-color: #f2f2f2;
padding: 5pt;
margin-top: 5pt;
margin-bottom: 5pt;
}
.header {
border: 1px solid;
padding: 0 0 5pt 5pt;
margin: 10pt;
white-space: pre;
font-family: monospace;
}
.code {
border: 1px solid;
padding: 0 0 5pt 5pt;
margin: 10pt;
white-space: pre;
font-family: monospace;
}
< / style >
< / head >
< body >
< h3 > Code manager< / h3 >
< a name = "api:mono_code_manager_commit" > < / a >
< div class = "api" >
< div class = "api-entry" > mono_code_manager_commit< / div >
< div class = "prototype" > void
mono_code_manager_commit (MonoCodeManager *cman, void *data, int size, int newsize)
< / div >
< p / >
< b > Parameters< / b >
< blockquote > < dt > < i > cman:< / i > < / dt > < dd > a code manager< / dd > < dt > < i > data:< / i > < / dt > < dd > the pointer returned by mono_code_manager_reserve ()< / dd > < dt > < i > size:< / i > < / dt > < dd > the size requested in the call to mono_code_manager_reserve ()< / dd > < dt > < i > newsize:< / i > < / dt > < dd > the new size to reserve< / dd > < / blockquote >
< b > Remarks< / b >
< p / >
If we reserved too much room for a method and we didn't allocate
already from the code manager, we can get back the excess allocation
for later use in the code manager.
< / div > < a name = "api:mono_code_manager_destroy" > < / a >
< div class = "api" >
< div class = "api-entry" > mono_code_manager_destroy< / div >
< div class = "prototype" > void
mono_code_manager_destroy (MonoCodeManager *cman)
< / div >
< p / >
< b > Parameters< / b >
< blockquote > < dt > < i > cman:< / i > < / dt > < dd > a code manager< / dd > < / blockquote >
< b > Remarks< / b >
< p / >
Free all the memory associated with the code manager < i > cman< / i > .
< / div > < a name = "api:mono_code_manager_foreach" > < / a >
< div class = "api" >
< div class = "api-entry" > mono_code_manager_foreach< / div >
< div class = "prototype" > void
mono_code_manager_foreach (MonoCodeManager *cman, MonoCodeManagerFunc func, void *user_data)
< / div >
< p / >
< b > Parameters< / b >
< blockquote > < dt > < i > cman:< / i > < / dt > < dd > a code manager< / dd > < dt > < i > func:< / i > < / dt > < dd > a callback function pointer< / dd > < dt > < i > user_data:< / i > < / dt > < dd > additional data to pass to < i > func< / i > < / dd > < / blockquote >
< b > Remarks< / b >
< p / >
Invokes the callback < i > func< / i > for each different chunk of memory allocated
in the code manager < i > cman< / i > .
< / div > < a name = "api:mono_code_manager_invalidate" > < / a >
< div class = "api" >
< div class = "api-entry" > mono_code_manager_invalidate< / div >
< div class = "prototype" > void
mono_code_manager_invalidate (MonoCodeManager *cman)
< / div >
< p / >
< b > Parameters< / b >
< blockquote > < dt > < i > cman:< / i > < / dt > < dd > a code manager< / dd > < / blockquote >
< b > Remarks< / b >
< p / >
Fill all the memory with an invalid native code value
so that any attempt to execute code allocated in the code
manager < i > cman< / i > will fail. This is used for debugging purposes.
< / div > < a name = "api:mono_code_manager_new_dynamic" > < / a >
< div class = "api" >
< div class = "api-entry" > mono_code_manager_new_dynamic< / div >
< div class = "prototype" > MonoCodeManager*
2015-05-15 05:29:36 -04:00
mono_code_manager_new_dynamic (int bind_size)
2015-04-26 19:10:23 +01:00
< / div >
< p / >
< b > Returns< / b >
< blockquote > the new code manager
< / blockquote >
< b > Remarks< / b >
< p / >
Creates a new code manager suitable for holding native code that can be
used for single or small methods that need to be deallocated independently
of other native code.
2015-05-15 05:29:36 -04:00
BIND_SIZE is the amount of memory reserved for storing thunks. If its 0,
the default size is used.
2015-04-26 19:10:23 +01:00
< / div > < a name = "api:mono_code_manager_new" > < / a >
< div class = "api" >
< div class = "api-entry" > mono_code_manager_new< / div >
< div class = "prototype" > MonoCodeManager*
mono_code_manager_new (void)
< / div >
< p / >
< b > Returns< / b >
< blockquote > the new code manager
< / blockquote >
< b > Remarks< / b >
< p / >
Creates a new code manager. A code manager can be used to allocate memory
suitable for storing native code that can be later executed.
A code manager allocates memory from the operating system in large chunks
(typically 64KB in size) so that many methods can be allocated inside them
close together, improving cache locality.
< / div > < / body >
< / html >
< / span >