Mono Internals

This section documents some of the internal APIs used inside Mono that developers extending or altering Mono might want to use.

Strings

Other Encodings

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.

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

These routines try a number of encodings, those specified in the MONO_ENCODINGS environment variable and return unicode strings that can be used internally.

See the mono(1) man page for more details.

mono_unicode_from_external

mono_unicode_to_external

mono_utf8_from_external

Marshalling functions

mono_marshal_alloc

mono_marshal_asany

mono_marshal_free_array

mono_marshal_free_asany

mono_marshal_free

mono_marshal_get_castclass

mono_marshal_get_delegate_begin_invoke

mono_marshal_get_delegate_end_invoke

mono_marshal_get_delegate_invoke

mono_marshal_get_icall_wrapper

mono_marshal_get_isinst

mono_marshal_get_ldfld_wrapper

mono_marshal_get_managed_wrapper

mono_marshal_get_native_wrapper

mono_marshal_get_proxy_cancast

mono_marshal_get_ptr_to_struct

mono_marshal_get_remoting_invoke_for_target

mono_marshal_get_remoting_invoke

mono_marshal_get_remoting_invoke_with_check

mono_marshal_get_runtime_invoke

mono_marshal_get_stelemref

mono_marshal_get_stfld_wrapper

mono_marshal_get_struct_to_ptr

mono_marshal_get_synchronized_wrapper

mono_marshal_get_unbox_wrapper

mono_marshal_get_xappdomain_invoke

mono_marshal_load_type_info

mono_marshal_method_from_wrapper

mono_marshal_set_last_error

mono_marshal_type_size

Metadata Loader Locking: Internals

The locking functions here are used by code in class.c and metadata.c to lock access to the shared hashtables inside the MonoImage.

mono_loader_lock

mono_loader_unlock

Garbage Collector Internal Interface

The internal interface of the Mono GC is the interface used between the runtime engine and the garbage collector.

mono_gc_alloc_fixed

mono_gc_free_fixed

mono_gc_make_descr_from_bitmap

mono_gc_base_init

mono_gc_invoke_finalizers

mono_gc_is_gc_thread

mono_gc_pending_finalizers

mono_gc_register_thread

mono_gc_finalize_notify