New test.
[mono.git] / mono / docscripts / sources / mono-api-embedding.html
1 <h2>Embedding Mono</h2>
2
3 <h4><a name="api:mono_jit_init">mono_jit_init</a></h4>
4 <h4><a name="api:mono_set_dirs">mono_set_dirs</a></h4>
5 <h4><a name="api:mono_runtime_exec_main">mono_runtime_exec_main</a></h4>
6 <h4><a name="api:mono_runtime_exec_managed_code">mono_runtime_exec_managed_code</a></h4>
7
8 <h4><a name="api:mono_jit_cleanup">mono_jit_cleanup</a></h4>
9 <h4><a name="api:mono_set_defaults">mono_set_defaults</a></h4>
10
11 <h3>Internal Calls</h3>
12
13         <p>The Mono runtime provides two mechanisms to expose C code
14         to the CIL universe: internal calls and native C
15         code. Internal calls are tightly integrated with the runtime,
16         and have the least overhead, as they use the same data types
17         that the runtime uses.
18
19         <p>The other option is to use the Platform Invoke (P/Invoke)
20         to call C code from the CIL universe, using the standard
21         P/Invoke mechanisms.
22
23         <p>To register an internal call, use this call you use the
24         <tt>mono_add_internal_call</tt> routine.
25
26 <h4><a name="api:mono_add_internal_call">mono_add_internal_call</a></h4>
27
28 <h3>Mono Runtime Configuration</h3>
29
30         <p>Certain features of the Mono runtime, like DLL mapping, are
31         available through a configuration file that is loaded at
32         runtime.   The default Mono implementation loads the
33         configuration file from <tt>$sysconfig/mono/config</tt>
34         (typically this is <tt>/etc/mono/config</tt>).
35
36         <p>See the <tt>mono-config(5)</tt> man page for more details
37         on what goes in this file.
38
39         <p>The following APIs expose this functionality:
40         
41 <h4><a name="api:mono_config_parse">mono_config_parse</a></h4>
42 <h4><a name="api:mono_config_parse_memory">mono_config_parse_memory</a></h4>
43
44 <h3>Function Pointers</h3>
45
46         <p>To wrap a function pointer into something that the Mono
47         runtime can consume, you should use the mono_create_ftnptr.
48         This is only important if you plan on running on the IA64
49         architecture.   Otherwise you can just use the function
50         pointer address.
51         
52 <h4><a name="api:mono_create_ftnptr">mono_create_ftnptr</a></h4>
53