inside Mono that developers extending or altering Mono might
want to use.
+<h2>Strings</h2>
+
+<h3>Other Encodings</h3>
+
+ <p>These routines are used when coping with strings that come
+ from Mono's environment, and might be encoded in one or more
+ of the external encodings.
+
+ <p>For example, some file systems might historically contain a
+ mix of file names with both old and new encodings, typically
+ UTF8 for new files, and the old files would be encoded in an 8
+ bit character set (ISO-8859-1 for example).
+
+ <p>These routines try a number of encodings, those specified
+ in the <tt>MONO_ENCODINGS</tt> environment variable and return
+ unicode strings that can be used internally.
+
+ <p>See the mono(1) man page for more details.
+
+<h4><a name="api:mono_unicode_from_external">mono_unicode_from_external</a></h4>
+<h4><a name="api:mono_unicode_to_external">mono_unicode_to_external</a></h4>
+<h4><a name="api:mono_utf8_from_external">mono_utf8_from_external</a></h4>
+
<h2>Marshalling functions</h2>
<h4><a name="api:mono_marshal_alloc">mono_marshal_alloc</a></h4>
<h4><a name="api:mono_marshal_get_delegate_invoke">mono_marshal_get_delegate_invoke</a></h4>
<h4><a name="api:mono_marshal_get_icall_wrapper">mono_marshal_get_icall_wrapper</a></h4>
<h4><a name="api:mono_marshal_get_isinst">mono_marshal_get_isinst</a></h4>
-<h4><a name="api:mono_marshal_get_ldfld_remote_wrapper">mono_marshal_get_ldfld_remote_wrapper</a></h4>
<h4><a name="api:mono_marshal_get_ldfld_wrapper">mono_marshal_get_ldfld_wrapper</a></h4>
<h4><a name="api:mono_marshal_get_managed_wrapper">mono_marshal_get_managed_wrapper</a></h4>
<h4><a name="api:mono_marshal_get_native_wrapper">mono_marshal_get_native_wrapper</a></h4>
<h4><a name="api:mono_marshal_get_remoting_invoke_with_check">mono_marshal_get_remoting_invoke_with_check</a></h4>
<h4><a name="api:mono_marshal_get_runtime_invoke">mono_marshal_get_runtime_invoke</a></h4>
<h4><a name="api:mono_marshal_get_stelemref">mono_marshal_get_stelemref</a></h4>
-<h4><a name="api:mono_marshal_get_stfld_remote_wrapper">mono_marshal_get_stfld_remote_wrapper</a></h4>
<h4><a name="api:mono_marshal_get_stfld_wrapper">mono_marshal_get_stfld_wrapper</a></h4>
<h4><a name="api:mono_marshal_get_struct_to_ptr">mono_marshal_get_struct_to_ptr</a></h4>
<h4><a name="api:mono_marshal_get_synchronized_wrapper">mono_marshal_get_synchronized_wrapper</a></h4>
<h4><a name="api:mono_marshal_get_xappdomain_invoke">mono_marshal_get_xappdomain_invoke</a></h4>
<h4><a name="api:mono_marshal_load_type_info">mono_marshal_load_type_info</a></h4>
<h4><a name="api:mono_marshal_method_from_wrapper">mono_marshal_method_from_wrapper</a></h4>
-<h4><a name="api:mono_marshal_realloc">mono_marshal_realloc</a></h4>
<h4><a name="api:mono_marshal_set_last_error">mono_marshal_set_last_error</a></h4>
<h4><a name="api:mono_marshal_type_size">mono_marshal_type_size</a></h4>
-<h2>Metadata Loading Errors</h2>
-
- <p>The routines in this section are used to cope with errors
- during metadata loading. Errors in metadata handling can
- happen for many reason, and these include (this is not an
- exhaustive list).
-
- <ul>
- <li>An assembly referenced is missing.
- <li>Fields referenced are missing.
- <li>Methods referenced are missing.
- </ul>
-
- <p>The <tt>mono_loader_set_*</tt> routines are invoked during
- metadata loading to flag that an error has happened. The
- class loading errros are flagged in a per-thread basis.
-
- <P>In various spots in the runtime the
- <tt>mono_loader_get_last_error</tt> routine is called to check
- if there was a problem, and then errors are propagated upwards
- on the stack until we reach a point where an exception can be
- raised and no runtime locks are held.
-
- <p>The <tt>mono_loader_error_prepare_exception</tt> takes a
- <tt>MonoLoaderError</tt> structure (the value returned from
- <tt>mono_loader_get_last_error</tt>), turns that into an
- exception and clears the error condition from the current
- thread.
-
-<h4><a name="api:mono_loader_set_error_field_load">mono_loader_set_error_field_load</a></h4>
-<h4><a name="api:mono_loader_set_error_method_load">mono_loader_set_error_method_load</a></h4>
-<h4><a name="api:mono_loader_set_error_type_load">mono_loader_set_error_type_load</a></h4>
-
-<h4><a name="api:mono_loader_get_last_error">mono_loader_get_last_error</a></h4>
-<h4><a name="api:mono_loader_clear_error">mono_loader_clear_error</a></h4>
-<h4><a name="api:mono_loader_error_prepare_exception">mono_loader_error_prepare_exception</a></h4>
-
<h2>Metadata Loader Locking: Internals</h2>
<p>The locking functions here are used by code in class.c and
<p>The internal interface of the Mono GC is the interface used
between the runtime engine and the garbage collector.
-<h4><a name="api:mono_gc_disable">mono_gc_disable</a></h4>
-<h4><a name="api:mono_gc_enable">mono_gc_enable</a></h4>
-<h4><a name="api:mono_gc_start_world">mono_gc_start_world</a></h4>
-<h4><a name="api:mono_gc_stop_world">mono_gc_stop_world</a></h4>
<h4><a name="api:mono_gc_alloc_fixed">mono_gc_alloc_fixed</a></h4>
<h4><a name="api:mono_gc_free_fixed">mono_gc_free_fixed</a></h4>
<h4><a name="api:mono_gc_make_descr_from_bitmap">mono_gc_make_descr_from_bitmap</a></h4>