summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorMirco Bauer <meebey@meebey.net>2009-05-21 20:31:32 +0200
committerMirco Bauer <meebey@meebey.net>2009-05-21 20:31:32 +0200
commit9b2da0eb623df784864c8c5de5ad08051fb7e9f3 (patch)
treecdc4167e8e2cc2a6042ecfb70a21b42d32c6b103 /docs
parente11d0f5ec38de57728d18bd063266f809c7b72ba (diff)
downloadmono-9b2da0eb623df784864c8c5de5ad08051fb7e9f3.tar.gz
Imported Upstream version 2.4+dfsgupstream/2.4+dfsg
Diffstat (limited to 'docs')
-rw-r--r--docs/ChangeLog95
-rw-r--r--docs/Makefile.am77
-rw-r--r--docs/Makefile.in156
-rw-r--r--docs/README81
-rw-r--r--docs/TODO37
-rw-r--r--docs/api-style.css40
-rw-r--r--docs/check-coverage16
-rw-r--r--docs/check-exports15
-rw-r--r--docs/convert.cs12
-rw-r--r--docs/current-api1030
-rw-r--r--docs/deploy/.stamp0
-rw-r--r--docs/docs.make29
-rw-r--r--docs/documented1012
-rw-r--r--docs/exdoc293
-rw-r--r--docs/ignore477
-rw-r--r--docs/jit-trampolines24
-rw-r--r--docs/mini-porting.txt69
-rw-r--r--docs/mono-api-metadata.html103
-rw-r--r--docs/mono-file-formats.config5
-rw-r--r--docs/mono-file-formats.source4
-rw-r--r--docs/mono-tools.config55
-rw-r--r--docs/mono-tools.source4
-rw-r--r--docs/monoapi.source5
-rw-r--r--docs/produce-lists36
-rw-r--r--docs/public79
-rw-r--r--docs/public-api929
-rw-r--r--docs/sources/mono-api-assembly.html56
-rw-r--r--docs/sources/mono-api-class.html72
-rw-r--r--docs/sources/mono-api-codegen.html40
-rw-r--r--docs/sources/mono-api-counters.html44
-rw-r--r--docs/sources/mono-api-debug.html45
-rw-r--r--docs/sources/mono-api-decimal.html19
-rw-r--r--docs/sources/mono-api-domains.html55
-rw-r--r--docs/sources/mono-api-dynamic-codegen.html141
-rw-r--r--docs/sources/mono-api-embedding.html78
-rw-r--r--docs/sources/mono-api-exc.html59
-rw-r--r--docs/sources/mono-api-gc.html42
-rw-r--r--docs/sources/mono-api-gchandle.html95
-rw-r--r--docs/sources/mono-api-image.html66
-rw-r--r--docs/sources/mono-api-internal.html14
-rw-r--r--docs/sources/mono-api-interpreter.html11
-rw-r--r--docs/sources/mono-api-jit.html20
-rw-r--r--docs/sources/mono-api-jitinternal.html38
-rw-r--r--docs/sources/mono-api-marshal.html39
-rw-r--r--docs/sources/mono-api-metadata.html749
-rw-r--r--docs/sources/mono-api-methods.html78
-rw-r--r--docs/sources/mono-api-object.html214
-rw-r--r--docs/sources/mono-api-profiler.html73
-rw-r--r--docs/sources/mono-api-reflection.html46
-rw-r--r--docs/sources/mono-api-security.html20
-rw-r--r--docs/sources/mono-api-string.html89
-rw-r--r--docs/sources/mono-api-threads.html46
-rw-r--r--docs/sources/mono-api-trace.html14
-rw-r--r--docs/sources/mono-api-type.html22
-rw-r--r--docs/sources/mono-api-types.html27
-rw-r--r--docs/sources/mono-api-unsorted.html60
-rw-r--r--docs/sources/mono-api-utils.html140
-rw-r--r--docs/sources/mono-api-vm.html0
-rw-r--r--docs/sources/mono-api-wapi.html111
-rw-r--r--docs/svgs/fragmentation.svg425
-rw-r--r--docs/svgs/gcmem.svg857
-rw-r--r--docs/svgs/overview.svg282
-rw-r--r--docs/svgs/roots.svg761
-rw-r--r--docs/svgs/stacks.svg266
-rw-r--r--docs/toc.xml193
65 files changed, 10063 insertions, 27 deletions
diff --git a/docs/ChangeLog b/docs/ChangeLog
new file mode 100644
index 0000000000..7241365952
--- /dev/null
+++ b/docs/ChangeLog
@@ -0,0 +1,95 @@
+2008-12-12 Mark Probst <mark.probst@gmail.com>
+
+ * mini-porting.txt: Added some details about function descriptors
+ and emulated opcodes.
+
+2008-12-08 Jonathan Pryor <jpryor@novell.com>
+
+ * mono-file-formats.source, mono-tools.source: Place these under the
+ new "Commands and Files" node, and remove nay intermediate nodes.
+
+2008-11-20 Jonathan Pryor <jpryor@novell.com>
+
+ * Makefile.am (sources_DATA): Add mono-file-formats.source,
+ mono-tools.source.
+
+2008-11-20 Raja R Harinath <harinath@hurrynot.org>
+
+ Remove unnecessary rebuilds of the html directory
+ * docs.make (monoapi.zip): Make slightly more unforgiving, by
+ using '&&' instead of ';' to sequence commands.
+ (mono-tools.zip, mono-file-formats.zip): Likewise.
+ * Makefile.am (monoapi.zip, mono-tools.zip, mono-fileformats.zip):
+ Likewise.
+ (convert.exe): Don't depend on Makefile.am or docs.make.
+
+2008-11-19 Raja R Harinath <harinath@hurrynot.org>
+
+ Fix srcdir != builddir, and add idiom for multi-output commands
+ * docs.make (monoapi.zip): Handle the case where 'monoapi.tree'
+ exists but 'monoapi.zip' doesn't. IOW, we should rebuild
+ monoapi.zip with 'rm monoapi.zip; make'.
+ (mono-tools.zip, mono-file-formats.zip): Likewise.
+ * Makefile.am (monoapi.zip, mono-tools.zip, mono-fileformats.zip):
+ Likewise.
+ (monoapi.tree): Don't use $< in an explicit rule.
+ (mono-tools.tree, mono-file-formats.tree): Likewise.
+
+2008-11-18 Jonathan Pryor <jpryor@novell.com>
+
+ * Makefile.am (EXTRA_DIST): Add mono-file-formats{.config,.source} and
+ mono-tools{.config,.source} (fixes the build).
+
+2008-11-18 Jonathan Pryor <jpryor@novell.com>
+
+ * docs.make, Makefile.am: Build mono-file-formats{.tree,.zip},
+ mono-tool{.tree,.zip} files.
+ * mono-file-formats.config, mono-tools.config: Alter paths to man
+ pages so that they're valid for building from mono/docs.
+ * monoapi.make: Rename to docs.make.
+
+2008-11-01 Raja R Harinath <harinath@hurrynot.org>
+
+ * Makefile.am: Clean up for srcdir != builddir.
+ (deploy/.stamp): Compute location of 'mono-wrapper' and pass to exdoc.
+ * exdoc (mono-wrapper): Use $runtimedir to look for 'mono-wrapper'.
+
+2008-10-31 Jonathan Pryor <jpryor@novell.com>
+
+ * check, Makefile.am (EXTRA_DIST): Rename to check-exports. This was
+ needed to fix `make distdir...`, because (1) with a file named
+ `check` which (2) was listed in $(EXTRA_DIST), while (3) `check` is
+ ALSO a .PHONY target, this caused make to look for the `check` file,
+ not find it due to (3), and then proceed to try to build convert.exe
+ from convert.cs...for reasons I don't care about. This obviously
+ can't work during `make distdir`, as mcs hasn't been built yet, thus
+ leading to pain, suffering, and a broken build.
+
+2008-10-30 Jonathan Pryor <jpryor@novell.com>
+
+ * . (svn:ignore), deploy (svn:ignore): Ignore generated files.
+ * AgilityPack.dll, api-style.css, ChangeLog, check, check-coverage,
+ convert.cs, current-api, deploy, documented, exdoc, ignore,
+ mono-api-metadata.html, monoapi.source, produce-lists, public,
+ public-api, README, sources, toc.xml, TODO, wapi: Copy from
+ ../mono/docscripts.
+ * exdoc: Use the in-tree mono program to run convert.exe.
+ * Makefile.am: Mention files to clean/distribute; extract
+ documentation (with exdoc) and then assemble documentation (with
+ monoapi.make's assemble target) for use by monodoc.
+ * monoapi.make: Added; Makefile to use mcs' buid/rules.make to compile
+ convert.cs and assemble documentation. (This is a separate file so
+ that we can include mcs' build/rules.make, which needs topdir set to
+ behave properly BUT must be $(mcs_topdir) from Makefile.am's
+ perspective.)
+ * monoapi.source: Add a /monodoc/node element for use with monodoc 2.2.
+
+2006-11-19 Miguel de Icaza <miguel@novell.com>
+
+ * exdoc: Move to use CSS instead of tables, this will break
+ GtkHTML rendering.
+
+ * ignore: Updated with more hidden APIs.
+
+ * Bunch of documentation work.
+
diff --git a/docs/Makefile.am b/docs/Makefile.am
index c74733ebdd..41d1977cf3 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -1,14 +1,38 @@
+sourcesdir = $(prefix)/lib/monodoc/sources
+
+sources_DATA = \
+ mono-file-formats.source \
+ mono-tools.source \
+ monoapi.source \
+ $(ASSEMBLED_DOCS)
+
+ASSEMBLED_DOCS = \
+ mono-file-formats.tree mono-file-formats.zip \
+ mono-tools.tree mono-tools.zip \
+ monoapi.tree monoapi.zip
+
EXTRA_DIST = \
abc-removal.txt \
+ AgilityPack.dll \
aot-compiler.txt \
+ api-style.css \
assembly-bundle \
+ check-exports \
+ check-coverage \
+ convert.cs \
+ current-api \
+ deploy \
+ docs.make \
+ documented \
embedded-api \
exception-handling.txt \
exceptions \
+ exdoc \
file-share-modes \
gc-issues \
gc-variables-in-c \
glossary.txt \
+ ignore \
internal-calls \
ir-desc \
jit-imt \
@@ -19,17 +43,68 @@ EXTRA_DIST = \
magic.diff \
mini-doc.txt \
mini-porting.txt \
+ mono-api-metadata.html \
+ mono-file-formats.config\
+ mono-file-formats.source\
mono_handle_d \
+ mono-tools.config \
+ mono-tools.source \
+ monoapi.source \
new-regalloc \
object-layout \
opcode-decomp.txt \
precise-gc \
+ produce-lists \
+ public \
+ public-api \
+ README \
release-notes-1.0.html \
remoting \
ssapre.txt \
stack-alignment \
stack-overflow.txt \
- threading \
thread-safety.txt \
+ threading \
+ toc.xml \
+ TODO \
tree-mover.txt \
unmanaged-calls
+
+dist-hook:
+ $(mkdir_p) $(distdir)/sources
+ $(mkdir_p) $(distdir)/svgs
+ cp sources/* $(distdir)/sources
+ cp svgs/* $(distdir)/svgs
+
+clean-local:
+ -rm -Rf $(srcdir)/html
+ -rm -f $(srcdir)/deploy/* $(srcdir)/convert.exe*
+ -cd $(srcdir) && rm -f $(ASSEMBLED_DOCS)
+
+monoapi.zip: monoapi.tree
+ @test -f $@ || { rm -f $(srcdir)/monoapi.tree && $(MAKE) monoapi.tree; }
+monoapi.tree: docs.make Makefile.am toc.xml $(srcdir)/deploy/.stamp
+ cd $(srcdir) && cp api-style.css deploy
+ cd $(srcdir) && $(MAKE) -f docs.make topdir=$(mcs_topdir_from_srcdir) $@
+
+mono-tools.zip: mono-tools.tree
+ @test -f $@ || { rm -f $(srcdir)/mono-tools.tree && $(MAKE) mono-tools.tree; }
+mono-tools.tree: docs.make Makefile.am $(srcdir)/deploy/.stamp
+ cd $(srcdir) && $(MAKE) -f docs.make topdir=$(mcs_topdir_from_srcdir) $@
+
+mono-file-formats.zip: mono-file-formats.tree
+ @test -f $@ || { rm -f $(srcdir)/mono-file-formats.tree && $(MAKE) mono-file-formats.tree; }
+mono-file-formats.tree: docs.make Makefile.am $(srcdir)/deploy/.stamp
+ cd $(srcdir) && $(MAKE) -f docs.make topdir=$(mcs_topdir_from_srcdir) $@
+
+$(srcdir)/deploy/.stamp: convert.exe Makefile.am
+ $(mkdir_p) $(srcdir)/html
+ runtimedir=`cd ../runtime && pwd`; export runtimedir; \
+ cd $(srcdir) && MONO_PATH=$(mcs_topdir_from_srcdir)/class/lib/net_2_0 perl ./exdoc -h . ../mono/*/*.c
+ touch $@
+
+extract: $(srcdir)/deploy/.stamp
+
+convert.exe: convert.cs AgilityPack.dll
+ cd $(srcdir) && $(MAKE) -f docs.make topdir=$(mcs_topdir_from_srcdir) convert.exe
+
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 4a87eeead5..6a1a03d9d4 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -13,6 +13,7 @@
# PARTICULAR PURPOSE.
@SET_MAKE@
+
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -33,17 +34,28 @@ build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = docs
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ ChangeLog TODO
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/nls.m4 $(top_srcdir)/po.m4 \
+ $(top_srcdir)/progtest.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(sourcesdir)"
+sourcesDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(sources_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -91,12 +103,16 @@ EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GMODULE_CFLAGS = @GMODULE_CFLAGS@
GMODULE_LIBS = @GMODULE_LIBS@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
GREP = @GREP@
HAVE_BOEHM_GC = @HAVE_BOEHM_GC@
+HAVE_MSGFMT = @HAVE_MSGFMT@
HOST_CC = @HOST_CC@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -120,6 +136,9 @@ MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MONO_DL_NEED_USCORE = @MONO_DL_NEED_USCORE@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
@@ -140,9 +159,13 @@ SHELL = @SHELL@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
+USE_NLS = @USE_NLS@
VERSION = @VERSION@
X11 = @X11@
XATTR_LIB = @XATTR_LIB@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
XMKMF = @XMKMF@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -215,17 +238,40 @@ target_os = @target_os@
target_vendor = @target_vendor@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
+sourcesdir = $(prefix)/lib/monodoc/sources
+sources_DATA = \
+ mono-file-formats.source \
+ mono-tools.source \
+ monoapi.source \
+ $(ASSEMBLED_DOCS)
+
+ASSEMBLED_DOCS = \
+ mono-file-formats.tree mono-file-formats.zip \
+ mono-tools.tree mono-tools.zip \
+ monoapi.tree monoapi.zip
+
EXTRA_DIST = \
abc-removal.txt \
+ AgilityPack.dll \
aot-compiler.txt \
+ api-style.css \
assembly-bundle \
+ check-exports \
+ check-coverage \
+ convert.cs \
+ current-api \
+ deploy \
+ docs.make \
+ documented \
embedded-api \
exception-handling.txt \
exceptions \
+ exdoc \
file-share-modes \
gc-issues \
gc-variables-in-c \
glossary.txt \
+ ignore \
internal-calls \
ir-desc \
jit-imt \
@@ -236,18 +282,30 @@ EXTRA_DIST = \
magic.diff \
mini-doc.txt \
mini-porting.txt \
+ mono-api-metadata.html \
+ mono-file-formats.config\
+ mono-file-formats.source\
mono_handle_d \
+ mono-tools.config \
+ mono-tools.source \
+ monoapi.source \
new-regalloc \
object-layout \
opcode-decomp.txt \
precise-gc \
+ produce-lists \
+ public \
+ public-api \
+ README \
release-notes-1.0.html \
remoting \
ssapre.txt \
stack-alignment \
stack-overflow.txt \
- threading \
thread-safety.txt \
+ threading \
+ toc.xml \
+ TODO \
tree-mover.txt \
unmanaged-calls
@@ -289,6 +347,23 @@ mostlyclean-libtool:
clean-libtool:
-rm -rf .libs _libs
+install-sourcesDATA: $(sources_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(sourcesdir)" || $(MKDIR_P) "$(DESTDIR)$(sourcesdir)"
+ @list='$(sources_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(sourcesDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sourcesdir)/$$f'"; \
+ $(sourcesDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sourcesdir)/$$f"; \
+ done
+
+uninstall-sourcesDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(sources_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(sourcesdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(sourcesdir)/$$f"; \
+ done
tags: TAGS
TAGS:
@@ -322,10 +397,16 @@ distdir: $(DISTFILES)
|| exit 1; \
fi; \
done
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-hook
check-am: all-am
check: check-am
-all-am: Makefile
+all-am: Makefile $(DATA)
installdirs:
+ for dir in "$(DESTDIR)$(sourcesdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
@@ -352,7 +433,7 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
-clean-am: clean-generic clean-libtool mostlyclean-am
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
distclean: distclean-am
-rm -f Makefile
@@ -368,7 +449,7 @@ info: info-am
info-am:
-install-data-am:
+install-data-am: install-sourcesDATA
install-dvi: install-dvi-am
@@ -402,21 +483,60 @@ ps: ps-am
ps-am:
-uninstall-am:
+uninstall-am: uninstall-sourcesDATA
.MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
- distclean distclean-generic distclean-libtool distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
-
+ clean-local dist-hook distclean distclean-generic \
+ distclean-libtool distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-sourcesDATA install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-sourcesDATA
+
+
+dist-hook:
+ $(mkdir_p) $(distdir)/sources
+ $(mkdir_p) $(distdir)/svgs
+ cp sources/* $(distdir)/sources
+ cp svgs/* $(distdir)/svgs
+
+clean-local:
+ -rm -Rf $(srcdir)/html
+ -rm -f $(srcdir)/deploy/* $(srcdir)/convert.exe*
+ -cd $(srcdir) && rm -f $(ASSEMBLED_DOCS)
+
+monoapi.zip: monoapi.tree
+ @test -f $@ || { rm -f $(srcdir)/monoapi.tree && $(MAKE) monoapi.tree; }
+monoapi.tree: docs.make Makefile.am toc.xml $(srcdir)/deploy/.stamp
+ cd $(srcdir) && cp api-style.css deploy
+ cd $(srcdir) && $(MAKE) -f docs.make topdir=$(mcs_topdir_from_srcdir) $@
+
+mono-tools.zip: mono-tools.tree
+ @test -f $@ || { rm -f $(srcdir)/mono-tools.tree && $(MAKE) mono-tools.tree; }
+mono-tools.tree: docs.make Makefile.am $(srcdir)/deploy/.stamp
+ cd $(srcdir) && $(MAKE) -f docs.make topdir=$(mcs_topdir_from_srcdir) $@
+
+mono-file-formats.zip: mono-file-formats.tree
+ @test -f $@ || { rm -f $(srcdir)/mono-file-formats.tree && $(MAKE) mono-file-formats.tree; }
+mono-file-formats.tree: docs.make Makefile.am $(srcdir)/deploy/.stamp
+ cd $(srcdir) && $(MAKE) -f docs.make topdir=$(mcs_topdir_from_srcdir) $@
+
+$(srcdir)/deploy/.stamp: convert.exe Makefile.am
+ $(mkdir_p) $(srcdir)/html
+ runtimedir=`cd ../runtime && pwd`; export runtimedir; \
+ cd $(srcdir) && MONO_PATH=$(mcs_topdir_from_srcdir)/class/lib/net_2_0 perl ./exdoc -h . ../mono/*/*.c
+ touch $@
+
+extract: $(srcdir)/deploy/.stamp
+
+convert.exe: convert.cs AgilityPack.dll
+ cd $(srcdir) && $(MAKE) -f docs.make topdir=$(mcs_topdir_from_srcdir) convert.exe
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/docs/README b/docs/README
new file mode 100644
index 0000000000..b705b8f6ec
--- /dev/null
+++ b/docs/README
@@ -0,0 +1,81 @@
+* Scripts to maintain the Mono VM internal API
+
+Layout
+------
+
+ sources/
+ mono-api-*.html
+
+ Contains the various source files, each source file
+ contains HTML, and a line for each API call like this:
+
+ <h4><a name="api:mono_something">mono_something</a></h4>
+
+ The format is static, notice that the tools actually search
+ for the above format and process that (both the tools here,
+ as well as the upcoming Monodoc tools and index creation
+ tools).
+
+ The files can contain any ammount of extra information.
+
+ The documentation from the source code is then merged with
+ these files and the header/footer information to produce
+ the deploy directory.
+
+ deploy/
+
+ Scripts produce a ready-to-use set of XHTML files that can
+ be either fed into a monodoc XHTML provider or can be published
+ directly on the web.
+
+PROGRAMS
+--------
+* check-coverage
+
+ Run this script every once in a while to make sure that a
+ public symbol that has been added to Mono has a corresponding
+ section on the mono-vm-api.html
+
+ This works by looking for the <h4>APICALL</h4> pattern on the
+ HTML file.
+
+* produce-lists
+
+ Produces the public-api and wapi files that contain the public
+ libmono API.
+
+* exdoc
+
+ Extracts the embedded documentation from the sources.
+
+* check
+
+ This script is used to verify which routines are missing inline
+ documentation, usage:
+
+ check mono/metadata/*.c
+
+* convert.cs
+
+ Converts an HTML file into a valid XML document, uses the
+ AgilityPack.dll. The sources to this DLL live in GNOME CVS
+ module beagle/Filters/AgilityPack.
+
+ A binary is shipped for our convenience.
+
+DATAFILES:
+---------
+
+ ignore
+
+ Contains the list of public symbols that should be
+ ignored, they come from tests for example, or are known
+ to be exposed.
+
+ This is consumed by produce-lists
+
+ public-api
+ wapi
+ These two are produced by the produce-lists script
+ and it documents all the public methods.
+
diff --git a/docs/TODO b/docs/TODO
new file mode 100644
index 0000000000..202887aeeb
--- /dev/null
+++ b/docs/TODO
@@ -0,0 +1,37 @@
+* Methods that should be static, but I cant commit now because of other patches:
+
+ mono_class_set_failure
+ mono_class_get_nullable_param
+ mono_assembly_loaded_full
+
+* Methods that might need to be static, but am not sure:
+ mono_assembly_loaded_full
+ mono_image_loaded_by_guid_full
+ mono_image_loaded_full
+
+* Namespacing
+
+ Do we need to re-namespace the published helper_ routines to avoid
+ poluting the namespace?
+
+ helper_compile_generic_method
+ helper_ldstr
+ helper_ldstr_mscorlib
+ helper_newobj_mscorlib
+ helper_stelem_ref
+ helper_stelem_ref_check
+
+* Need to make public:
+
+ If the mono_mb_ interface is public, we need to make public:
+
+ MonoWrapperType
+ MonoDefaults.
+
+* Generate a table of contents at the begining of each page for APIs.
+
+* Fill in with a concept guide
+
+* Install documentation into monodoc's standard location.
+
+* Add support for inserting "api:" nodes into the index in the Monodoc XHTML provider. \ No newline at end of file
diff --git a/docs/api-style.css b/docs/api-style.css
new file mode 100644
index 0000000000..910ac49e55
--- /dev/null
+++ b/docs/api-style.css
@@ -0,0 +1,40 @@
+ 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;
+ }
diff --git a/docs/check-coverage b/docs/check-coverage
new file mode 100644
index 0000000000..b73ffa9c35
--- /dev/null
+++ b/docs/check-coverage
@@ -0,0 +1,16 @@
+#!/bin/sh
+add_h4()
+{
+ sed -e 's,^\(.*\)$,<h4><a name="api:\1">\1</a></h4>,'
+}
+
+dir=`dirname $0`
+sh $dir/produce-lists || exit 1
+cat $dir/public-api $dir/wapi > $dir/current-api
+for i in `cat $dir/current-api`; do
+ if grep "api:$i" $dir/sources/mono-api-*.html > /dev/null; then
+ true;
+ else
+ echo "Missing: $i from the template";
+ fi
+done
diff --git a/docs/check-exports b/docs/check-exports
new file mode 100644
index 0000000000..549a0d4ae5
--- /dev/null
+++ b/docs/check-exports
@@ -0,0 +1,15 @@
+#!/bin/sh
+dir=`dirname $0`
+
+for file in $*;
+do
+ perl $dir/exdoc $file | grep ^Function: | sed -e 's/Function: //' -e 's/://' > documented
+ nm `dirname $file`/.libs/`basename $file .c`.o | grep ' T ' | sed 's/.* T //' > public
+ for i in `cat public | grep -v $dir/ignore`; do
+ if grep $i documented > /dev/null; then
+ true
+ else
+ echo $i is not documented | grep -v ves_icall
+ fi
+ done
+done
diff --git a/docs/convert.cs b/docs/convert.cs
new file mode 100644
index 0000000000..50680f6713
--- /dev/null
+++ b/docs/convert.cs
@@ -0,0 +1,12 @@
+using HtmlAgilityPack;
+
+class Convert {
+
+ static void Main (string [] args)
+ {
+ HtmlDocument doc = new HtmlDocument();
+ doc.Load(args [0]);
+ doc.OptionOutputAsXml = true;
+ doc.Save(args [1]);
+ }
+}
diff --git a/docs/current-api b/docs/current-api
new file mode 100644
index 0000000000..1e12ae493a
--- /dev/null
+++ b/docs/current-api
@@ -0,0 +1,1030 @@
+mono_check_corlib_version
+mono_domain_has_type_resolve
+mono_domain_is_unloading
+mono_domain_owns_vtable_slot
+mono_domain_set
+mono_domain_try_type_resolve
+mono_install_runtime_cleanup
+mono_runtime_cleanup
+mono_runtime_init
+mono_runtime_is_shutting_down
+mono_runtime_quit
+mono_assemblies_cleanup
+mono_assembly_addref
+mono_assembly_close
+mono_assembly_get_image
+mono_assembly_get_main
+mono_assembly_getrootdir
+mono_assembly_load
+mono_assembly_loaded
+mono_assembly_loaded_full
+mono_assembly_load_from
+mono_assembly_load_full
+mono_assembly_name_free
+mono_assembly_name_parse
+mono_assembly_names_equal
+mono_assembly_open
+mono_install_assembly_load_hook
+mono_install_assembly_postload_refonly_search_hook
+mono_install_assembly_postload_search_hook
+mono_install_assembly_preload_hook
+mono_install_assembly_refonly_preload_hook
+mono_install_assembly_refonly_search_hook
+mono_install_assembly_search_hook
+mono_register_bundled_assemblies
+mono_set_dirs
+mono_stringify_assembly_name
+mono_gc_alloc_fixed
+mono_gc_base_init
+mono_gc_collect
+mono_gc_disable
+mono_gc_enable
+mono_gc_enable_events
+mono_gc_free_fixed
+mono_gc_get_heap_size
+mono_gc_get_used_size
+mono_gc_invoke_finalizers
+mono_gc_is_gc_thread
+mono_gc_make_descr_from_bitmap
+mono_gc_max_generation
+mono_gc_pending_finalizers
+mono_gc_register_thread
+mono_gc_wbarrier_arrayref_copy
+mono_gc_wbarrier_generic_store
+mono_gc_wbarrier_set_arrayref
+mono_gc_wbarrier_set_field
+mono_gc_wbarrier_value_copy
+mono_gc_weak_link_add
+mono_gc_weak_link_get
+mono_gc_weak_link_remove
+mono_object_is_alive
+mono_array_class_get
+mono_array_element_size
+mono_bounded_array_class_get
+mono_class_array_element_size
+mono_class_data_size
+mono_class_enum_basetype
+mono_classes_cleanup
+mono_class_from_generic_parameter
+mono_class_from_mono_type
+mono_class_from_name
+mono_class_from_name_case
+mono_class_from_typeref
+mono_class_get
+mono_class_get_byref_type
+mono_class_get_cctor
+mono_class_get_element_class
+mono_class_get_events
+mono_class_get_event_token
+mono_class_get_exception_for_failure
+mono_class_get_field
+mono_class_get_field_from_name
+mono_class_get_fields
+mono_class_get_field_token
+mono_class_get_finalizer
+mono_class_get_flags
+mono_class_get_full
+mono_class_get_image
+mono_class_get_implemented_interfaces
+mono_class_get_interfaces
+mono_class_get_method_from_name
+mono_class_get_method_from_name_flags
+mono_class_get_methods
+mono_class_get_name
+mono_class_get_namespace
+mono_class_get_nested_types
+mono_class_get_nesting_type
+mono_class_get_nullable_param
+mono_class_get_parent
+mono_class_get_properties
+mono_class_get_property_from_name
+mono_class_get_property_token
+mono_class_get_rank
+mono_class_get_type
+mono_class_get_type_token
+mono_class_inflate_generic_method
+mono_class_inflate_generic_type
+mono_class_init
+mono_class_instance_size
+mono_class_is_assignable_from
+mono_class_is_enum
+mono_class_is_nullable
+mono_class_is_open_constructed_type
+mono_class_is_subclass_of
+mono_class_is_valuetype
+mono_class_layout_fields
+mono_class_min_align
+mono_class_name_from_token
+mono_class_needs_cctor_run
+mono_class_num_events
+mono_class_num_fields
+mono_class_num_methods
+mono_class_num_properties
+mono_class_set_failure
+mono_class_setup_methods
+mono_class_setup_mono_type
+mono_class_setup_parent
+mono_class_setup_supertypes
+mono_class_setup_vtable
+mono_class_setup_vtable_general
+mono_class_value_size
+mono_dup_array_type
+mono_event_get_add_method
+mono_event_get_flags
+mono_event_get_name
+mono_event_get_parent
+mono_event_get_raise_method
+mono_event_get_remove_method
+mono_field_get_data
+mono_field_get_flags
+mono_field_get_name
+mono_field_get_parent
+mono_field_get_type
+mono_get_inflated_generic_class
+mono_get_shared_generic_inst
+mono_image_add_to_name_cache
+mono_install_get_class_from_name
+mono_install_lookup_dynamic_token
+mono_ldtoken
+mono_lookup_dynamic_token
+mono_lookup_dynamic_token_class
+mono_property_get_flags
+mono_property_get_get_method
+mono_property_get_name
+mono_property_get_parent
+mono_property_get_set_method
+mono_ptr_class_get
+mono_type_get_full_name
+mono_type_get_name
+mono_type_get_name_full
+mono_type_get_underlying_type
+mono_class_describe_statics
+mono_disasm_code
+mono_disasm_code_one
+mono_method_desc_free
+mono_method_desc_from_method
+mono_method_desc_full_match
+mono_method_desc_match
+mono_method_desc_new
+mono_method_desc_search_in_class
+mono_method_desc_search_in_image
+mono_method_full_name
+mono_object_describe
+mono_object_describe_fields
+mono_signature_get_desc
+mono_type_full_name
+mono_type_get_desc
+mono_value_describe_fields
+_mono_debug_address_from_il_offset
+mono_debug_close_mono_symbol_file
+mono_debug_open_mono_symbols
+mono_debug_symfile_lookup_location
+mono_debug_symfile_lookup_method
+mono_decimal2double
+mono_decimal2Int64
+mono_decimal2string
+mono_decimal2UInt64
+mono_decimalCompare
+mono_decimalDiv
+mono_decimalFloorAndTrunc
+mono_decimalIncr
+mono_decimalIntDiv
+mono_decimalMult
+mono_decimalRound
+mono_decimalSetExponent
+mono_double2decimal
+mono_string2decimal
+mono_cleanup
+mono_context_get
+mono_context_set
+mono_debugger_check_runtime_version
+mono_domain_assembly_open
+mono_domain_create
+mono_domain_foreach
+mono_domain_free
+mono_domain_get
+mono_domain_get_by_id
+mono_domain_get_id
+mono_domain_get_tls_key
+mono_domain_set_internal
+mono_get_array_class
+mono_get_boolean_class
+mono_get_byte_class
+mono_get_char_class
+mono_get_corlib
+mono_get_double_class
+mono_get_enum_class
+mono_get_exception_class
+mono_get_int16_class
+mono_get_int32_class
+mono_get_int64_class
+mono_get_intptr_class
+mono_get_object_class
+mono_get_root_domain
+mono_get_sbyte_class
+mono_get_single_class
+mono_get_string_class
+mono_get_thread_class
+mono_get_uint16_class
+mono_get_uint32_class
+mono_get_uint64_class
+mono_get_uintptr_class
+mono_get_void_class
+mono_init
+mono_init_from_assembly
+mono_init_version
+mono_jit_info_get_code_size
+mono_jit_info_get_code_start
+mono_jit_info_get_method
+mono_jit_info_table_find
+mono_string_equal
+mono_string_hash
+mono_environment_exitcode_get
+mono_environment_exitcode_set
+mono_exception_from_name
+mono_exception_from_name_domain
+mono_exception_from_name_msg
+mono_exception_from_name_two_strings
+mono_exception_from_token
+mono_get_exception_appdomain_unloaded
+mono_get_exception_argument
+mono_get_exception_argument_null
+mono_get_exception_argument_out_of_range
+mono_get_exception_arithmetic
+mono_get_exception_array_type_mismatch
+mono_get_exception_bad_image_format
+mono_get_exception_cannot_unload_appdomain
+mono_get_exception_divide_by_zero
+mono_get_exception_execution_engine
+mono_get_exception_file_not_found
+mono_get_exception_file_not_found2
+mono_get_exception_index_out_of_range
+mono_get_exception_invalid_cast
+mono_get_exception_invalid_operation
+mono_get_exception_io
+mono_get_exception_missing_field
+mono_get_exception_missing_method
+mono_get_exception_not_implemented
+mono_get_exception_not_supported
+mono_get_exception_null_reference
+mono_get_exception_overflow
+mono_get_exception_reflection_type_load
+mono_get_exception_security
+mono_get_exception_serialization
+mono_get_exception_stack_overflow
+mono_get_exception_synchronization_lock
+mono_get_exception_thread_abort
+mono_get_exception_thread_state
+mono_get_exception_type_initialization
+mono_get_exception_type_load
+mono_domain_finalize
+mono_gc_finalize_notify
+mono_gchandle_free
+mono_gchandle_free_domain
+mono_gchandle_get_target
+mono_gchandle_is_in_domain
+mono_gchandle_new
+mono_gchandle_new_weakref
+mono_gc_is_finalizer_thread
+mono_gc_out_of_memory
+mono_object_register_finalizer
+mono_add_internal_call
+mono_create_icall_signature
+mono_lookup_internal_call
+mono_cli_rva_image_map
+mono_image_addref
+mono_image_close
+mono_image_ensure_section
+mono_image_ensure_section_idx
+mono_image_get_assembly
+mono_image_get_entry_point
+mono_image_get_filename
+mono_image_get_guid
+mono_image_get_name
+mono_image_get_public_key
+mono_image_get_resource
+mono_image_get_strong_name
+mono_image_get_table_info
+mono_image_get_table_rows
+mono_image_has_authenticode_entry
+mono_image_is_dynamic
+mono_image_loaded
+mono_image_loaded_by_guid
+mono_image_loaded_by_guid_full
+mono_image_loaded_full
+mono_image_load_file_for_image
+mono_image_lookup_resource
+mono_image_open
+mono_image_open_from_data
+mono_image_open_from_data_full
+mono_image_open_full
+mono_image_rva_map
+mono_images_cleanup
+mono_image_strerror
+mono_image_strong_name_position
+mono_pe_file_open
+mono_table_info_get_rows
+mono_dllmap_insert
+mono_field_from_token
+mono_free_method
+mono_get_method
+mono_get_method_full
+mono_get_shared_generic_method
+mono_install_stack_walk
+mono_loader_cleanup
+mono_loader_clear_error
+mono_loader_error_prepare_exception
+mono_loader_get_last_error
+mono_loader_lock
+mono_loader_set_error_assembly_load
+mono_loader_set_error_field_load
+mono_loader_set_error_method_load
+mono_loader_set_error_type_load
+mono_loader_unlock
+mono_lookup_pinvoke_call
+mono_method_get_class
+mono_method_get_flags
+mono_method_get_header
+mono_method_get_index
+mono_method_get_last_managed
+mono_method_get_marshal_info
+mono_method_get_name
+mono_method_get_param_names
+mono_method_get_param_token
+mono_method_get_signature
+mono_method_get_signature_full
+mono_method_get_token
+mono_method_get_wrapper_data
+mono_method_has_marshal_info
+mono_method_signature
+mono_stack_walk
+mono_stack_walk_no_il
+load_normalization_resource
+mono_array_to_lparray
+mono_array_to_savearray
+mono_class_native_size
+mono_delegate_free_ftnptr
+mono_delegate_to_ftnptr
+mono_ftnptr_to_delegate
+mono_marshal_alloc
+mono_marshal_asany
+mono_marshal_cleanup
+mono_marshal_free
+mono_marshal_free_array
+mono_marshal_free_asany
+mono_marshal_get_castclass
+mono_marshal_get_delegate_begin_invoke
+mono_marshal_get_delegate_end_invoke
+mono_marshal_get_delegate_invoke
+mono_marshal_get_generic_array_helper
+mono_marshal_get_icall_wrapper
+mono_marshal_get_isinst
+mono_marshal_get_ldfld_remote_wrapper
+mono_marshal_get_ldfld_wrapper
+mono_marshal_get_managed_wrapper
+mono_marshal_get_native_func_wrapper
+mono_marshal_get_native_wrapper
+mono_marshal_get_proxy_cancast
+mono_marshal_get_ptr_to_struct
+mono_marshal_get_remoting_invoke
+mono_marshal_get_remoting_invoke_for_target
+mono_marshal_get_remoting_invoke_with_check
+mono_marshal_get_runtime_invoke
+mono_marshal_get_stelemref
+mono_marshal_get_stfld_remote_wrapper
+mono_marshal_get_stfld_wrapper
+mono_marshal_get_struct_to_ptr
+mono_marshal_get_synchronized_wrapper
+mono_marshal_get_unbox_wrapper
+mono_marshal_get_write_barrier
+mono_marshal_get_xappdomain_invoke
+mono_marshal_load_type_info
+mono_marshal_method_from_wrapper
+mono_marshal_realloc
+mono_marshal_set_last_error
+mono_marshal_string_to_utf16
+mono_marshal_type_size
+mono_mb_add_data
+mono_mb_add_local
+mono_mb_create_method
+mono_mb_emit_add_to_local
+mono_mb_emit_branch
+mono_mb_emit_byte
+mono_mb_emit_exception
+mono_mb_emit_i2
+mono_mb_emit_i4
+mono_mb_emit_icon
+mono_mb_emit_ldarg
+mono_mb_emit_ldarg_addr
+mono_mb_emit_ldflda
+mono_mb_emit_ldloc
+mono_mb_emit_ldloc_addr
+mono_mb_emit_ldstr
+mono_mb_emit_managed_call
+mono_mb_emit_native_call
+mono_mb_emit_short_branch
+mono_mb_emit_stloc
+mono_mb_free
+mono_mb_new
+mono_mb_patch_addr
+mono_mb_patch_addr_s
+mono_string_builder_to_utf16
+mono_string_builder_to_utf8
+mono_string_to_ansibstr
+mono_string_to_bstr
+mono_string_to_byvalstr
+mono_string_to_byvalwstr
+mono_string_utf16_to_builder
+mono_string_utf8_to_builder
+mono_type_native_stack_size
+mono_type_to_ldind
+mono_type_to_stind
+mono_upgrade_remote_class_wrapper
+mono_mempool_alloc
+mono_mempool_alloc0
+mono_mempool_contains_addr
+mono_mempool_destroy
+mono_mempool_empty
+mono_mempool_get_allocated
+mono_mempool_invalidate
+mono_mempool_new
+mono_mempool_stats
+mono_mempool_strdup
+mono_guid_to_string
+mono_metadata_blob_heap
+mono_metadata_cleanup
+mono_metadata_compute_size
+mono_metadata_custom_attrs_from_index
+mono_metadata_declsec_from_index
+mono_metadata_decode_blob_size
+mono_metadata_decode_row
+mono_metadata_decode_row_col
+mono_metadata_decode_signed_value
+mono_metadata_decode_table_row
+mono_metadata_decode_table_row_col
+mono_metadata_decode_value
+mono_metadata_encode_value
+mono_metadata_events_from_typedef
+mono_metadata_field_info
+mono_metadata_free_array
+mono_metadata_free_marshal_spec
+mono_metadata_free_method_signature
+mono_metadata_free_mh
+mono_metadata_free_type
+mono_metadata_generic_class_is_valuetype
+mono_metadata_generic_method_equal
+mono_metadata_get_constant_index
+mono_metadata_get_marshal_info
+mono_metadata_guid_heap
+mono_metadata_has_generic_params
+mono_metadata_implmap_from_method
+mono_metadata_inflate_generic_inst
+mono_metadata_interfaces_from_typedef
+mono_metadata_interfaces_from_typedef_full
+mono_metadata_load_generic_params
+mono_metadata_locate
+mono_metadata_locate_token
+mono_metadata_methods_from_event
+mono_metadata_methods_from_property
+mono_metadata_nested_in_typedef
+mono_metadata_nesting_typedef
+mono_metadata_packing_from_typedef
+mono_metadata_parse_array
+mono_metadata_parse_array_full
+mono_metadata_parse_custom_mod
+mono_metadata_parse_field_type
+mono_metadata_parse_generic_inst
+mono_metadata_parse_marshal_spec
+mono_metadata_parse_method_signature
+mono_metadata_parse_method_signature_full
+mono_metadata_parse_mh
+mono_metadata_parse_mh_full
+mono_metadata_parse_param
+mono_metadata_parse_signature
+mono_metadata_parse_signature_full
+mono_metadata_parse_type
+mono_metadata_parse_typedef_or_ref
+mono_metadata_parse_type_full
+mono_metadata_properties_from_typedef
+mono_metadata_signature_alloc
+mono_metadata_signature_dup
+mono_metadata_signature_equal
+mono_metadata_string_heap
+mono_metadata_token_from_dor
+mono_metadata_translate_token_index
+mono_metadata_typedef_from_field
+mono_metadata_typedef_from_method
+mono_metadata_type_equal
+mono_metadata_type_hash
+mono_metadata_user_string
+mono_method_header_get_clauses
+mono_method_header_get_code
+mono_method_header_get_locals
+mono_method_header_get_num_clauses
+mono_signature_explicit_this
+mono_signature_get_call_conv
+mono_signature_get_param_count
+mono_signature_get_params
+mono_signature_get_return_type
+mono_signature_hash
+mono_signature_is_instance
+mono_signature_vararg_start
+mono_type_create_from_typespec
+mono_type_generic_inst_is_valuetype
+mono_type_get_array_type
+mono_type_get_class
+mono_type_get_modifiers
+mono_type_get_ptr_type
+mono_type_get_signature
+mono_type_get_type
+mono_type_is_byref
+mono_type_size
+mono_type_stack_size
+mono_type_to_unmanaged
+mono_monitor_cleanup
+mono_monitor_enter
+mono_monitor_exit
+mono_monitor_try_enter
+mono_config_for_assembly
+mono_config_parse
+mono_config_parse_memory
+mono_get_config_dir
+mono_debugger_add_symbol_file
+mono_debugger_breakpoint_callback
+mono_debugger_event
+mono_debugger_handle_exception
+mono_debugger_insert_breakpoint
+mono_debugger_insert_breakpoint_full
+mono_debugger_lock
+mono_debugger_lookup_assembly
+mono_debugger_lookup_type
+mono_debugger_method_has_breakpoint
+mono_debugger_remove_breakpoint
+mono_debugger_runtime_invoke
+mono_debugger_start_add_type
+mono_debugger_throw_exception
+mono_debugger_unhandled_exception
+mono_debugger_unlock
+mono_debug_add_method
+mono_debug_find_method
+mono_debug_free_source_location
+mono_debug_lookup_method
+mono_debug_lookup_source_location
+mono_debug_print_stack_frame
+mono_debug_using_mono_debugger
+mono_array_clone
+mono_array_clone_in_domain
+mono_array_full_copy
+mono_array_new
+mono_array_new_full
+mono_array_new_specific
+mono_async_result_new
+mono_class_get_allocation_ftn
+mono_class_vtable
+mono_compile_method
+mono_delegate_ctor
+mono_field_get_value
+mono_field_get_value_object
+mono_field_set_value
+mono_field_static_get_value
+mono_field_static_set_value
+mono_get_addr_from_ftnptr
+mono_get_constant_value_from_blob
+mono_get_delegate_invoke
+mono_install_compile_method
+mono_install_delegate_trampoline
+mono_install_free_method
+mono_install_handler
+mono_install_remoting_trampoline
+mono_install_runtime_invoke
+mono_install_trampoline
+mono_ldstr
+mono_load_remote_field
+mono_load_remote_field_new
+mono_message_init
+mono_message_invoke
+mono_method_call_message_new
+mono_method_return_message_restore
+mono_nullable_box
+mono_nullable_init
+mono_object_castclass_mbyref
+mono_object_clone
+mono_object_get_class
+mono_object_get_domain
+mono_object_get_size
+mono_object_get_virtual_method
+mono_object_isinst
+mono_object_isinst_mbyref
+mono_object_new
+mono_object_new_alloc_specific
+mono_object_new_fast
+mono_object_new_from_token
+mono_object_new_specific
+mono_object_unbox
+mono_print_unhandled_exception
+mono_property_get_value
+mono_property_set_value
+mono_raise_exception
+mono_release_type_locks
+mono_remote_class
+mono_remote_class_vtable
+mono_remoting_invoke
+mono_runtime_class_init
+mono_runtime_delegate_invoke
+mono_runtime_exec_main
+mono_runtime_exec_managed_code
+mono_runtime_free_method
+mono_runtime_get_main_args
+mono_runtime_invoke
+mono_runtime_invoke_array
+mono_runtime_object_init
+mono_runtime_run_main
+mono_store_remote_field
+mono_store_remote_field_new
+mono_string_from_utf16
+mono_string_intern
+mono_string_is_interned
+mono_string_new
+mono_string_new_len
+mono_string_new_size
+mono_string_new_utf16
+mono_string_new_wrapper
+mono_string_to_utf16
+mono_string_to_utf8
+mono_string_to_utf8_mp
+mono_thread_get_main
+mono_thread_set_main
+mono_type_initialization_cleanup
+mono_type_initialization_init
+mono_unhandled_exception
+mono_upgrade_remote_class
+mono_value_box
+mono_value_copy
+mono_value_copy_array
+mono_vtable_get_static_field_data
+mono_wait_handle_new
+mono_opcode_name
+mono_opcode_value
+mono_profiler_allocation
+mono_profiler_appdomain_event
+mono_profiler_appdomain_loaded
+mono_profiler_assembly_event
+mono_profiler_assembly_loaded
+mono_profiler_class_event
+mono_profiler_class_loaded
+mono_profiler_code_transition
+mono_profiler_coverage_get
+mono_profiler_gc_event
+mono_profiler_gc_heap_resize
+mono_profiler_get_events
+mono_profiler_install
+mono_profiler_install_allocation
+mono_profiler_install_appdomain
+mono_profiler_install_assembly
+mono_profiler_install_class
+mono_profiler_install_coverage_filter
+mono_profiler_install_enter_leave
+mono_profiler_install_gc
+mono_profiler_install_jit_compile
+mono_profiler_install_jit_end
+mono_profiler_install_module
+mono_profiler_install_statistical
+mono_profiler_install_thread
+mono_profiler_install_transition
+mono_profiler_load
+mono_profiler_method_end_jit
+mono_profiler_method_enter
+mono_profiler_method_jit
+mono_profiler_method_leave
+mono_profiler_module_event
+mono_profiler_module_loaded
+mono_profiler_set_events
+mono_profiler_shutdown
+mono_profiler_stat_hit
+mono_profiler_thread_end
+mono_profiler_thread_start
+mono_raw_buffer_cleanup
+mono_raw_buffer_free
+mono_raw_buffer_load
+mono_raw_buffer_update
+mono_assembly_get_object
+mono_custom_attrs_construct
+mono_custom_attrs_free
+mono_custom_attrs_from_assembly
+mono_custom_attrs_from_class
+mono_custom_attrs_from_event
+mono_custom_attrs_from_field
+mono_custom_attrs_from_index
+mono_custom_attrs_from_method
+mono_custom_attrs_from_param
+mono_custom_attrs_from_property
+mono_custom_attrs_get_attr
+mono_custom_attrs_has_attr
+mono_declsec_flags_from_assembly
+mono_declsec_flags_from_class
+mono_declsec_flags_from_method
+mono_declsec_get_assembly_action
+mono_declsec_get_class_action
+mono_declsec_get_demands
+mono_declsec_get_inheritdemands_class
+mono_declsec_get_inheritdemands_method
+mono_declsec_get_linkdemands
+mono_declsec_get_method_action
+mono_event_get_object
+mono_field_get_object
+mono_get_dbnull_object
+mono_image_basic_init
+mono_image_build_metadata
+mono_image_create_method_token
+mono_image_create_pefile
+mono_image_create_token
+mono_image_insert_string
+mono_image_load_module
+mono_method_body_get_object
+mono_method_get_object
+mono_module_file_get_object
+mono_module_get_object
+mono_param_get_objects
+mono_property_get_object
+mono_reflection_bind_generic_method_parameters
+mono_reflection_bind_generic_parameters
+mono_reflection_call_is_assignable_to
+mono_reflection_create_dynamic_method
+mono_reflection_create_generic_class
+mono_reflection_create_internal_class
+mono_reflection_create_runtime_class
+mono_reflection_event_builder_get_event_info
+mono_reflection_generic_class_initialize
+mono_reflection_get_custom_attrs
+mono_reflection_get_custom_attrs_blob
+mono_reflection_get_custom_attrs_by_type
+mono_reflection_get_custom_attrs_data
+mono_reflection_get_custom_attrs_info
+mono_reflection_get_token
+mono_reflection_get_type
+mono_reflection_initialize_generic_parameter
+mono_reflection_lookup_dynamic_token
+mono_reflection_marshal_from_marshal_spec
+mono_reflection_parse_type
+mono_reflection_setup_generic_class
+mono_reflection_setup_internal_class
+mono_reflection_sighelper_get_signature_field
+mono_reflection_sighelper_get_signature_local
+mono_reflection_type_from_name
+mono_type_get_object
+mono_activate_security_manager
+mono_get_context_capture_method
+mono_is_ecma_key
+mono_is_security_manager_active
+mono_security_manager_get_methods
+mono_thread_pool_add
+mono_thread_pool_finish
+mono_alloc_special_static_data
+mono_get_special_static_data
+mono_thread_abort_all_other_threads
+mono_thread_attach
+mono_thread_cleanup
+mono_thread_create
+mono_thread_current
+mono_thread_detach
+mono_thread_exit
+mono_thread_force_interruption_checkpoint
+mono_thread_get_abort_signal
+mono_thread_get_pending_exception
+mono_thread_get_tls_key
+mono_thread_has_appdomain_ref
+mono_thread_interruption_checkpoint
+mono_thread_interruption_requested
+mono_thread_interruption_request_flag
+mono_thread_manage
+mono_thread_new_init
+mono_thread_pop_appdomain_ref
+mono_thread_push_appdomain_ref
+mono_thread_request_interruption
+mono_threads_abort_appdomain_threads
+mono_threads_clear_cached_culture
+mono_threads_get_default_stacksize
+mono_threads_install_cleanup
+mono_threads_request_thread_dump
+mono_threads_set_default_stacksize
+mono_thread_stop
+mono_thread_suspend_all_other_threads
+mono_free_verify_list
+mono_image_verify_tables
+mono_method_verify
+mono_verify_corlib
+mono_perform_abc_removal
+mono_debugger_main
+mono_debug_add_aot_method
+mono_debug_print_vars
+mono_jit_cleanup
+mono_jit_exec
+mono_jit_init
+mono_main
+mono_parse_default_optimizations
+mono_inst_name
+mono_burg_emit
+mono_burg_kids
+mono_burg_label
+mono_burg_rule
+mono_debugger_run_finally
+mono_handle_exception
+mono_print_thread_dump
+mono_walk_stack
+mono_create_jump_trampoline
+mono_pmip
+mono_print_method_from_ip
+mono_set_defaults
+mono_trace_enter_method
+mono_trace_leave_method
+mono_debugger_create_notification_function
+mono_profiler_startup
+mono_profiler_startup
+add_delegate
+mono_invoke_delegate
+mono_test_marshal_inout_byval_class_delegate
+mono_test_marshal_lpstruct
+mono_test_marshal_lpstruct_blittable
+mono_test_marshal_pass_inout_custom
+mono_test_marshal_pass_out_byval_custom
+mono_test_marshal_return_fnptr
+mono_bitset_alloc_size
+mono_bitset_clear
+mono_bitset_clear_all
+mono_bitset_clone
+mono_bitset_copyto
+mono_bitset_count
+mono_bitset_equal
+mono_bitset_find_first
+mono_bitset_find_first_unset
+mono_bitset_find_last
+mono_bitset_find_start
+mono_bitset_foreach
+mono_bitset_free
+mono_bitset_intersection
+mono_bitset_intersection_2
+mono_bitset_invert
+mono_bitset_mem_new
+mono_bitset_new
+mono_bitset_set
+mono_bitset_set_all
+mono_bitset_size
+mono_bitset_sub
+mono_bitset_test
+mono_bitset_test_bulk
+mono_bitset_union
+mono_code_manager_commit
+mono_code_manager_destroy
+mono_code_manager_foreach
+mono_code_manager_invalidate
+mono_code_manager_new
+mono_code_manager_new_dynamic
+mono_code_manager_reserve
+mono_counters_dump
+mono_counters_enable
+mono_counters_register
+mono_g_hash_table_destroy
+mono_g_hash_table_foreach
+mono_g_hash_table_foreach_remove
+mono_g_hash_table_foreach_steal
+mono_g_hash_table_insert
+mono_g_hash_table_lookup
+mono_g_hash_table_lookup_extended
+mono_g_hash_table_new
+mono_g_hash_table_new_full
+mono_g_hash_table_new_type
+mono_g_hash_table_remap
+mono_g_hash_table_remove
+mono_g_hash_table_replace
+mono_g_hash_table_size
+mono_g_hash_table_steal
+mono_trace
+mono_trace_cleanup
+mono_trace_is_traced
+mono_trace_pop
+mono_trace_push
+mono_trace_set_level
+mono_trace_set_level_string
+mono_trace_set_mask
+mono_trace_set_mask_string
+mono_tracev
+mono_signbit_double
+mono_signbit_float
+mono_md5_final
+mono_md5_get_digest
+mono_md5_get_digest_from_file
+mono_md5_init
+mono_md5_update
+mono_path_canonicalize
+mono_path_resolve_symlinks
+mono_digest_get_public_token
+mono_sha1_final
+mono_sha1_get_digest
+mono_sha1_get_digest_from_file
+mono_sha1_init
+mono_sha1_update
+mono_escape_uri_string
+mono_unicode_from_external
+mono_unicode_to_external
+mono_utf8_from_external
+GetThreadContext
+DeleteCriticalSection
+InitializeCriticalSection
+InitializeCriticalSectionAndSpinCount
+SetCriticalSectionSpinCount
+TryEnterCriticalSection
+errno_to_WSA
+GetLastError
+SetLastError
+CreateEvent
+OpenEvent
+PulseEvent
+ResetEvent
+SetEvent
+CloseHandle
+DuplicateHandle
+CopyFile
+CreateDirectory
+CreateFile
+CreatePipe
+DeleteFile
+FileTimeToSystemTime
+FindClose
+FindFirstFile
+FindNextFile
+FlushFileBuffers
+GetCurrentDirectory
+GetFileAttributes
+GetFileAttributesEx
+GetFileSize
+GetFileTime
+GetFileType
+GetLogicalDriveStrings
+GetStdHandle
+GetTempPath
+LockFile
+MoveFile
+ReadFile
+RemoveDirectory
+SetCurrentDirectory
+SetEndOfFile
+SetFileAttributes
+SetFilePointer
+SetFileTime
+UnlockFile
+WriteFile
+mono_once
+CreateMutex
+OpenMutex
+ReleaseMutex
+CreateProcess
+EnumProcesses
+EnumProcessModules
+GetCurrentProcess
+GetCurrentProcessId
+GetExitCodeProcess
+GetModuleBaseName
+GetProcessId
+GetProcessTimes
+GetProcessWorkingSetSize
+OpenProcess
+SetProcessWorkingSetSize
+ShellExecuteEx
+TerminateProcess
+ImpersonateLoggedOnUser
+RevertToSelf
+CreateSemaphore
+OpenSemaphore
+ReleaseSemaphore
+closesocket
+ioctlsocket
+WSACleanup
+WSAGetLastError
+WSAIoctl
+WSASetLastError
+WSAStartup
+GetSystemInfo
+CreateThread
+ExitThread
+GetCurrentThread
+GetCurrentThreadId
+GetExitCodeThread
+mono_pthread_key_for_tls
+OpenThread
+QueueUserAPC
+ResumeThread
+Sleep
+SleepEx
+SuspendThread
+TlsAlloc
+TlsFree
+TlsGetValue
+TlsSetValue
+GetTickCount
+QueryPerformanceCounter
+QueryPerformanceFrequency
+SignalObjectAndWait
+WaitForMultipleObjects
+WaitForMultipleObjectsEx
+WaitForSingleObject
+WaitForSingleObjectEx
diff --git a/docs/deploy/.stamp b/docs/deploy/.stamp
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/docs/deploy/.stamp
diff --git a/docs/docs.make b/docs/docs.make
new file mode 100644
index 0000000000..50a001f5f2
--- /dev/null
+++ b/docs/docs.make
@@ -0,0 +1,29 @@
+thisdir = docs
+SUBDIRS =
+include $(topdir)/build/rules.make
+
+ASSEMBLED_DOCS = \
+ mono-file-formats.tree mono-file-formats.zip \
+ mono-tools.tree mono-tools.zip \
+ monoapi.tree monoapi.zip
+
+convert.exe: convert.cs AgilityPack.dll
+ $(CSCOMPILE) -out:$@ $< -r:AgilityPack.dll
+
+monoapi.zip: monoapi.tree
+ @test -f $@ || { rm -f $< && $(MAKE) $<; }
+monoapi.tree: toc.xml docs.make
+ $(MDOC) assemble -o monoapi -f hb $<
+
+mono-tools.zip: mono-tools.tree
+ @test -f $@ || { rm -f $< && $(MAKE) $<; }
+mono-tools.tree: mono-tools.config docs.make
+ $(MDOC) assemble -o mono-tools -f man $<
+
+mono-file-formats.zip: mono-file-formats.tree
+ @test -f $@ || { rm -f $< && $(MAKE) $<; }
+mono-file-formats.tree: mono-file-formats.config docs.make
+ $(MDOC) assemble -o mono-file-formats -f man $<
+
+.doc-stamp:
+
diff --git a/docs/documented b/docs/documented
new file mode 100644
index 0000000000..6fa1b89777
--- /dev/null
+++ b/docs/documented
@@ -0,0 +1,1012 @@
+mono_assembly_open
+mono_assembly_close
+mono_assembly_load
+mono_assembly_load_from
+mono_assembly_load_full
+mono_assembly_loaded
+mono_assembly_get_image
+mono_assembly_get_main
+mono_assembly_getrootdir
+mono_assembly_addref
+mono_assembly_name_parse
+mono_assembly_name_free
+mono_stringify_assembly_name
+mono_assembly_names_equal
+mono_class_array_element_size
+mono_class_create_generic_2
+mono_class_create_generic
+mono_class_data_size
+mono_class_enum_basetype
+mono_class_from_generic_parameter
+mono_class_from_mono_type
+mono_class_from_name_case
+mono_class_from_name
+mono_class_from_typeref
+mono_class_get_allocation_ftn
+mono_class_get_byref_type
+mono_class_get_element_class
+mono_class_get_events
+mono_class_get_event_token
+mono_class_get_field_from_name
+mono_class_get_field
+mono_class_get_fields
+mono_class_get_field_token
+mono_class_get_flags
+mono_class_get_full
+mono_class_get_image
+mono_class_get_implemented_interfaces
+mono_class_get_interfaces
+mono_class_get_method_from_name
+mono_class_get_methods
+mono_class_get
+mono_class_get_name
+mono_class_get_namespace
+mono_class_get_nested_types
+mono_class_get_nesting_type
+mono_class_get_overrides
+mono_class_get_parent
+mono_class_get_properties
+mono_class_get_property_from_name
+mono_class_get_property_token
+mono_class_get_rank
+mono_class_get_type
+mono_class_inflate_generic_method
+mono_class_inflate_generic_type
+mono_class_init
+mono_class_instance_size
+mono_class_is_assignable_from
+mono_class_is_enum
+mono_class_is_open_constructed_type
+mono_class_is_subclass_of
+mono_class_is_valuetype
+mono_class_layout_fields
+mono_class_min_align
+mono_class_native_size
+mono_class_needs_cctor_run
+mono_class_num_events
+mono_class_num_fields
+mono_class_num_methods
+mono_class_num_properties
+mono_class_setup_mono_type
+mono_class_setup_parent
+mono_class_setup_supertypes
+mono_class_setup_vtable
+mono_class_value_size
+mono_class_vtable
+mono_class_get_cctor
+mono_class_get_finalizer
+mono_class_get_method_from_name_flags
+mono_class_inflate_generic_signature
+mono_class_name_from_token
+mono_class_setup_methods
+mono_class_setup_vtable_general
+mono_class_get_exception_for_failure
+mono_class_is_nullable
+mono_code_manager_commit
+mono_code_manager_destroy
+mono_code_manager_foreach
+mono_code_manager_invalidate
+mono_code_manager_new_dynamic
+mono_code_manager_new
+mono_code_manager_reserve
+mono_install_assembly_load_hook
+mono_install_assembly_preload_hook
+mono_install_assembly_search_hook
+mono_install_compile_method
+mono_install_free_method
+mono_install_handler
+mono_install_lookup_dynamic_token
+mono_install_remoting_trampoline
+mono_install_runtime_invoke
+mono_install_stack_walk
+mono_install_thread_callbacks
+mono_install_trampoline
+mono_install_runtime_cleanup
+mono_install_assembly_postload_refonly_search_hook
+mono_install_assembly_postload_search_hook
+mono_install_assembly_refonly_preload_hook
+mono_install_assembly_refonly_search_hook
+mono_install_delegate_trampoline
+mono_counters_dump
+mono_counters_enable
+mono_counters_register
+mono_debug_il_offset_from_address
+mono_debug_open_mono_symbol_file
+mono_debug_source_location_from_address
+mono_debug_source_location_from_il_offset
+mono_debug_add_aot_method
+mono_debug_add_method
+_mono_debug_address_from_il_offset
+mono_debug_address_from_il_offset
+mono_debug_add_wrapper
+mono_debug_close_mono_symbol_file
+mono_debug_find_method
+mono_debug_find_source_location
+mono_debug_using_mono_debugger
+mono_debugger_add_builtin_types
+mono_debugger_add_method
+mono_debugger_add_symbol_file
+mono_debugger_add_type
+mono_debugger_add_wrapper
+mono_debugger_breakpoint_callback
+mono_debugger_check_runtime_version
+mono_debugger_create_notification_function
+mono_debugger_event
+_mono_debugger_get_symfile
+mono_debugger_handle_exception
+mono_debugger_insert_breakpoint_full
+mono_debugger_insert_breakpoint
+mono_debugger_lock
+mono_debugger_lookup_assembly
+mono_debugger_lookup_type
+mono_debugger_method_has_breakpoint
+mono_debugger_remove_breakpoint
+mono_debugger_runtime_invoke
+mono_debugger_start_add_type
+mono_debugger_throw_exception
+mono_debugger_unhandled_exception
+mono_debugger_unlock
+mono_debugger_finalize_threads
+mono_debugger_main
+mono_debugger_run_finally
+mono_decimal2double
+mono_decimal2Int64
+mono_decimal2string
+mono_decimal2UInt64
+mono_decimalCompare
+mono_decimalDiv
+mono_decimalFloorAndTrunc
+mono_decimalIncr
+mono_decimalIntDiv
+mono_decimalMult
+mono_decimalRound
+mono_decimalSetExponent
+mono_double2decimal
+mono_string2decimal
+mono_domain_assembly_open
+mono_domain_create
+mono_domain_finalize
+mono_domain_foreach
+mono_domain_free
+mono_domain_get_by_id
+mono_domain_get_id
+mono_domain_get
+mono_domain_has_type_resolve
+mono_domain_is_unloading
+mono_domain_set_internal
+mono_domain_set
+mono_domain_try_type_resolve
+mono_domain_get_tls_key
+mono_domain_owns_vtable_slot
+mono_context_get
+mono_context_set
+mono_create_jit_trampoline
+mono_mb_new
+mono_mb_add_data
+mono_mb_add_local
+mono_mb_create_method
+mono_mb_emit_add_to_local
+mono_mb_emit_branch
+mono_mb_emit_byte
+mono_mb_emit_exception
+mono_mb_emit_i2
+mono_mb_emit_i4
+mono_mb_emit_icon
+mono_mb_emit_ldarg_addr
+mono_mb_emit_ldarg
+mono_mb_emit_ldflda
+mono_mb_emit_ldloc_addr
+mono_mb_emit_ldloc
+mono_mb_emit_ldstr
+mono_mb_emit_managed_call
+mono_mb_emit_native_call
+mono_mb_emit_stloc
+mono_mb_free
+mono_mb_patch_addr
+mono_mb_patch_addr_s
+mono_metadata_signature_alloc
+mono_metadata_signature_dup
+mono_metadata_signature_equal
+mono_jit_init
+mono_set_dirs
+mono_runtime_exec_main
+mono_runtime_exec_managed_code
+mono_jit_cleanup
+mono_set_defaults
+mono_add_internal_call
+mono_config_parse
+mono_config_parse_memory
+mono_create_ftnptr
+mono_raise_exception
+mono_unhandled_exception
+mono_print_unhandled_exception
+mono_handle_exception
+mono_exception_from_name_domain
+mono_exception_from_name
+mono_exception_from_name_msg
+mono_exception_from_name_two_strings
+mono_get_exception_appdomain_unloaded
+mono_get_exception_argument
+mono_get_exception_argument_null
+mono_get_exception_argument_out_of_range
+mono_get_exception_arithmetic
+mono_get_exception_array_type_mismatch
+mono_get_exception_bad_image_format
+mono_get_exception_cannot_unload_appdomain
+mono_get_exception_class
+mono_get_exception_divide_by_zero
+mono_get_exception_execution_engine
+mono_get_exception_file_not_found2
+mono_get_exception_file_not_found
+mono_get_exception_index_out_of_range
+mono_get_exception_invalid_cast
+mono_get_exception_io
+mono_get_exception_missing_method
+mono_get_exception_not_implemented
+mono_get_exception_null_reference
+mono_get_exception_overflow
+mono_get_exception_security
+mono_get_exception_serialization
+mono_get_exception_stack_overflow
+mono_get_exception_synchronization_lock
+mono_get_exception_thread_abort
+mono_get_exception_thread_state
+mono_get_exception_type_initialization
+mono_get_exception_type_load
+mono_get_exception_invalid_operation
+mono_get_exception_missing_field
+mono_get_exception_not_supported
+mono_get_exception_reflection_type_load
+mono_gchandle_new
+mono_gchandle_new_weakref
+mono_gchandle_new
+mono_gchandle_new_weakref
+mono_gchandle_get_target
+mono_gchandle_is_in_domain
+mono_gchandle_free
+mono_gc_collect
+mono_gc_max_generation
+mono_gc_get_heap_size
+mono_gc_get_used_size
+mono_gc_weak_link_add
+mono_gc_weak_link_get
+mono_gc_weak_link_remove
+mono_gc_disable
+mono_gc_enable
+mono_gc_is_finalizer_thread
+mono_gc_out_of_memory
+mono_gc_start_world
+mono_gc_stop_world
+mono_gc_alloc_fixed
+mono_gc_enable_events
+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
+mono_image_addref
+mono_image_add_to_name_cache
+mono_image_close
+mono_image_ensure_section_idx
+mono_image_ensure_section
+mono_image_get_assembly
+mono_image_get_entry_point
+mono_image_get_filename
+mono_image_get_name
+mono_image_get_public_key
+mono_image_get_resource
+mono_image_get_strong_name
+mono_image_get_table_info
+mono_image_get_table_rows
+mono_image_has_authenticode_entry
+mono_image_is_dynamic
+mono_image_loaded_by_guid
+mono_image_loaded
+mono_image_load_file_for_image
+mono_image_lookup_resource
+mono_image_open_from_data
+mono_image_open
+mono_image_rva_map
+mono_image_strerror
+mono_image_strong_name_position
+mono_image_verify_tables
+mono_image_get_guid
+mono_image_open_from_data_full
+mono_image_open_full
+mono_image_basic_init
+mono_image_build_metadata
+mono_image_create_method_token
+mono_image_create_pefile
+mono_image_create_token
+mono_image_insert_string
+mono_image_load_module
+mono_burg_kids
+mono_burg_label
+mono_burg_rule
+mono_interp_dis_mintop
+mono_interp_exec
+mono_interp_ftnptr_to_delegate
+mono_interp_get_runtime_method
+mono_interp_transform_init
+mono_interp_transform_method
+mono_pmip
+mono_print_code
+mono_print_method_from_ip
+mono_print_thread_dump
+mono_threads_request_thread_dump
+mono_inst_name
+mono_profiler_load
+mono_profiler_allocation
+mono_profiler_stat_hit
+mono_profiler_thread_start
+mono_profiler_thread_end
+mono_profiler_appdomain_event
+mono_profiler_appdomain_loaded
+mono_profiler_assembly_event
+mono_profiler_assembly_loaded
+mono_profiler_class_event
+mono_profiler_class_loaded
+mono_profiler_code_transition
+mono_profiler_method_end_jit
+mono_profiler_method_enter
+mono_profiler_method_jit
+mono_profiler_method_leave
+mono_profiler_module_event
+mono_profiler_module_loaded
+mono_profiler_shutdown
+mono_profiler_startup
+mono_profiler_gc_event
+mono_profiler_gc_heap_resize
+mono_profiler_gc_event
+mono_profiler_gc_heap_resize
+mono_profiler_stat_hit
+mono_delegate_free_ftnptr
+mono_delegate_to_ftnptr
+mono_ftnptr_to_delegate
+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_remote_wrapper
+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_remote_wrapper
+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_realloc
+mono_marshal_set_last_error
+mono_marshal_string_to_utf16
+mono_marshal_type_size
+mono_loader_lock
+mono_loader_unlock
+mono_cli_rva_image_map
+mono_pe_file_open
+mono_meta_table_name
+mono_metadata_blob_heap
+mono_metadata_compute_size
+mono_metadata_custom_attrs_from_index
+mono_metadata_decode_blob_size
+mono_metadata_decode_row_col
+mono_metadata_decode_row
+mono_metadata_decode_signed_value
+mono_metadata_decode_value
+mono_metadata_encode_value
+mono_metadata_events_from_typedef
+mono_metadata_field_info
+mono_metadata_free_array
+mono_metadata_free_marshal_spec
+mono_metadata_free_mh
+mono_metadata_free_type
+mono_metadata_generic_inst_equal
+mono_metadata_generic_inst_hash
+mono_metadata_generic_inst_is_valuetype
+mono_metadata_generic_method_equal
+mono_metadata_get_constant_index
+mono_metadata_get_marshal_info
+mono_metadata_get_table
+mono_metadata_guid_heap
+mono_metadata_implmap_from_method
+mono_metadata_interfaces_from_typedef_full
+mono_metadata_interfaces_from_typedef
+mono_metadata_load_generic_params
+mono_metadata_locate
+mono_metadata_locate_token
+mono_metadata_methods_from_event
+mono_metadata_methods_from_property
+mono_metadata_nested_in_typedef
+mono_metadata_nesting_typedef
+mono_metadata_packing_from_typedef
+mono_metadata_parse_array_full
+mono_metadata_parse_array
+mono_metadata_parse_custom_mod
+mono_metadata_parse_field_type
+mono_metadata_parse_marshal_spec
+mono_metadata_parse_method_signature_full
+mono_metadata_parse_method_signature
+mono_metadata_parse_mh_full
+mono_metadata_parse_mh
+mono_metadata_parse_param
+mono_metadata_parse_signature_full
+mono_metadata_parse_signature
+mono_metadata_parse_typedef_or_ref
+mono_metadata_parse_type_full
+mono_metadata_parse_type
+mono_metadata_properties_from_typedef
+mono_metadata_string_heap
+mono_metadata_token_from_dor
+mono_metadata_typedef_from_field
+mono_metadata_typedef_from_method
+mono_metadata_type_equal
+mono_metadata_type_hash
+mono_metadata_user_string
+mono_metadata_declsec_from_index
+mono_metadata_free_method_signature
+mono_metadata_generic_class_is_valuetype
+mono_metadata_has_generic_params
+mono_metadata_inflate_generic_inst
+mono_metadata_parse_generic_inst
+mono_ldtoken
+mono_lookup_dynamic_token
+mono_ldstr
+mono_exception_from_token
+mono_create_jit_trampoline_from_token
+mono_signature_explicit_this
+mono_signature_get_call_conv
+mono_signature_get_desc
+mono_signature_get_param_count
+mono_signature_get_params
+mono_signature_get_return_type
+mono_signature_hash
+mono_signature_is_instance
+mono_signature_vararg_start
+mono_opcode_name
+mono_opcode_value
+mono_loader_set_error_field_load
+mono_loader_set_error_method_load
+mono_loader_set_error_type_load
+mono_loader_get_last_error
+mono_loader_clear_error
+mono_loader_error_prepare_exception
+mono_runtime_invoke_array
+mono_runtime_invoke
+mono_remoting_invoke
+mono_runtime_delegate_invoke
+mono_method_call_message_new
+mono_method_desc_free
+mono_method_desc_from_method
+mono_method_desc_full_match
+mono_method_desc_match
+mono_method_desc_new
+mono_method_desc_search_in_class
+mono_method_desc_search_in_image
+mono_method_full_name
+mono_method_get_class
+mono_method_get_flags
+mono_method_get_last_managed
+mono_method_get_marshal_info
+mono_method_get_name
+mono_method_get_object
+mono_method_get_param_names
+mono_method_get_param_token
+mono_method_get_signature
+mono_method_get_index
+mono_method_get_signature_full
+mono_method_get_token
+mono_method_get_wrapper_data
+mono_method_has_marshal_info
+mono_method_return_message_restore
+mono_method_same_domain
+mono_method_signature
+mono_method_verify
+mono_method_get_header
+mono_method_header_get_clauses
+mono_method_header_get_code
+mono_method_header_get_locals
+mono_method_header_get_num_clauses
+mono_object_new
+mono_object_new_alloc_specific
+mono_object_new_fast
+mono_object_new_from_token
+mono_object_new_specific
+mono_object_clone
+mono_object_get_class
+mono_object_get_domain
+mono_object_get_virtual_method
+mono_object_isinst_mbyref
+mono_object_isinst
+mono_object_register_finalizer
+mono_object_unbox
+mono_object_castclass_mbyref
+mono_object_is_alive
+mono_object_get_size
+mono_value_box
+mono_value_copy
+mono_value_copy_array
+mono_array_class_get
+mono_array_clone_in_domain
+mono_array_clone
+mono_array_element_size
+mono_array_full_copy
+mono_array_new_full
+mono_array_new
+mono_array_new_specific
+mono_array_to_lparray
+mono_array_to_savearray
+mono_dup_array_type
+mono_field_from_token
+mono_field_get_flags
+mono_field_get_name
+mono_field_get_parent
+mono_field_get_type
+mono_field_get_value
+mono_field_get_value_object
+mono_field_set_value
+mono_field_static_get_value
+mono_field_static_set_value
+mono_property_get_flags
+mono_property_get_get_method
+mono_property_get_name
+mono_property_get_parent
+mono_property_get_set_method
+mono_property_get_value
+mono_property_set_value
+mono_event_get_add_method
+mono_event_get_flags
+mono_event_get_name
+mono_event_get_parent
+mono_event_get_raise_method
+mono_event_get_remove_method
+mono_delegate_ctor
+mono_async_result_new
+mono_load_remote_field
+mono_load_remote_field_new
+mono_store_remote_field
+mono_store_remote_field_new
+mono_nullable_box
+mono_nullable_init
+mono_profiler_install
+mono_profiler_install_allocation
+mono_profiler_install_appdomain
+mono_profiler_install_assembly
+mono_profiler_install_class
+mono_profiler_install_coverage_filter
+mono_profiler_install_enter_leave
+mono_profiler_install_jit_compile
+mono_profiler_install_module
+mono_profiler_install_thread
+mono_profiler_install_transition
+mono_profiler_install_gc
+mono_profiler_install_statistical
+mono_profiler_set_events
+mono_profiler_get_events
+mono_profiler_coverage_get
+mono_reflection_bind_generic_method_parameters
+mono_reflection_bind_generic_parameters
+mono_reflection_create_dynamic_method
+mono_reflection_create_generic_class
+mono_reflection_create_internal_class
+mono_reflection_create_runtime_class
+mono_reflection_event_builder_get_event_info
+mono_reflection_generic_inst_initialize
+mono_reflection_get_custom_attrs_blob
+mono_reflection_get_custom_attrs
+mono_custom_attrs_get_attr
+mono_reflection_get_token
+mono_reflection_get_type
+mono_reflection_initialize_generic_parameter
+mono_reflection_lookup_dynamic_token
+mono_reflection_marshal_from_marshal_spec
+mono_reflection_parse_type
+mono_reflection_setup_generic_class
+mono_reflection_setup_internal_class
+mono_reflection_sighelper_get_signature_field
+mono_reflection_sighelper_get_signature_local
+mono_reflection_type_from_name
+mono_reflection_generic_class_initialize
+mono_reflection_get_custom_attrs_info
+mono_custom_attrs_construct
+mono_custom_attrs_free
+mono_custom_attrs_from_assembly
+mono_custom_attrs_from_class
+mono_custom_attrs_from_event
+mono_custom_attrs_from_field
+mono_custom_attrs_from_index
+mono_custom_attrs_from_method
+mono_custom_attrs_from_param
+mono_custom_attrs_from_property
+mono_custom_attrs_has_attr
+mono_module_file_get_object
+mono_module_get_object
+mono_method_body_get_object
+mono_event_get_object
+mono_assembly_get_object
+mono_param_get_objects
+mono_field_get_object
+mono_property_get_object
+mono_type_get_object
+mono_is_security_manager_active
+mono_security_manager_get_methods
+mono_activate_security_manager
+mono_is_ecma_key
+mono_get_context_capture_method
+mono_declsec_flags_from_assembly
+mono_declsec_flags_from_class
+mono_declsec_flags_from_method
+mono_declsec_get_assembly_action
+mono_declsec_get_class_action
+mono_declsec_get_demands
+mono_declsec_get_inheritdemands_class
+mono_declsec_get_inheritdemands_method
+mono_declsec_get_linkdemands
+mono_declsec_get_method_action
+mono_string_new
+mono_string_new_len
+mono_string_new_size
+mono_string_new_utf16
+mono_string_from_utf16
+mono_string_intern
+mono_string_is_interned
+mono_string_new_wrapper
+mono_string_to_ansibstr
+mono_string_to_bstr
+mono_string_to_byvalstr
+mono_string_to_byvalwstr
+mono_string_to_utf16
+mono_string_to_utf8
+mono_string_utf16_to_builder
+mono_string_utf8_to_builder
+mono_string_equal
+mono_string_hash
+mono_string_builder_to_utf16
+mono_string_builder_to_utf8
+mono_unicode_from_external
+mono_unicode_to_external
+mono_utf8_from_external
+mono_thread_abort_all_other_threads
+mono_thread_attach
+mono_thread_create
+mono_thread_current
+mono_thread_detach
+mono_thread_exit
+mono_thread_force_interruption_checkpoint
+mono_thread_get_abort_signal
+mono_thread_get_pending_exception
+mono_thread_interruption_checkpoint
+mono_thread_interruption_requested
+mono_thread_interruption_request_flag
+mono_thread_manage
+mono_thread_new_init
+mono_thread_pop_appdomain_ref
+mono_thread_push_appdomain_ref
+mono_thread_request_interruption
+mono_threads_abort_appdomain_threads
+mono_threads_get_default_stacksize
+mono_threads_install_cleanup
+mono_threads_set_default_stacksize
+mono_thread_stop
+mono_thread_get_main
+mono_thread_set_main
+mono_thread_get_tls_key
+mono_pthread_key_for_tls
+mono_thread_pool_add
+mono_thread_pool_finish
+mono_monitor_enter
+mono_monitor_exit
+mono_monitor_try_enter
+mono_threads_clear_cached_culture
+mono_thread_suspend_all_other_threads
+mono_thread_has_appdomain_ref
+mono_trace_cleanup
+mono_trace_enter_method
+mono_trace_eval
+mono_trace_leave_method
+mono_trace
+mono_trace_parse_options
+mono_trace_pop
+mono_trace_push
+mono_trace_set_assembly
+mono_trace_set_level
+mono_trace_set_level_string
+mono_trace_set_mask
+mono_trace_set_mask_string
+mono_tracev
+mono_trace_is_traced
+mono_trace_enable
+mono_trace_is_enabled
+mono_type_create_from_typespec_full
+mono_type_create_from_typespec
+mono_type_full_name
+mono_type_get_array_type
+mono_type_get_class
+mono_type_get_desc
+mono_type_get_full_name
+mono_type_get_modifiers
+mono_type_get_name
+mono_type_get_signature
+mono_type_get_type
+mono_type_get_underlying_type
+mono_type_initialization_init
+mono_type_is_byref
+mono_type_native_stack_size
+mono_type_size
+mono_type_stack_size
+mono_type_to_ldind
+mono_type_to_stind
+mono_type_to_unmanaged
+mono_type_get_name_full
+mono_type_generic_inst_is_valuetype
+mono_get_object_class
+mono_get_int16_class
+mono_get_int32_class
+mono_get_int64_class
+mono_get_double_class
+mono_get_enum_class
+mono_get_intptr_class
+mono_get_sbyte_class
+mono_get_single_class
+mono_get_string_class
+mono_get_thread_class
+mono_get_uint16_class
+mono_get_uint32_class
+mono_get_uint64_class
+mono_get_uintptr_class
+mono_get_void_class
+mono_get_array_class
+mono_get_boolean_class
+mono_get_byte_class
+mono_get_char_class
+mono_get_dbnull_object
+mini_compile_generic_method
+mono_alloc_special_static_data
+mono_bounded_array_class_get
+mono_check_corlib_version
+mono_compile_method
+mono_config_for_assembly
+mono_create_icall_signature
+mono_create_jit_trampoline
+mono_create_jump_table
+mono_create_jump_trampoline
+mono_dllmap_insert
+mono_environment_exitcode_get
+mono_environment_exitcode_set
+mono_find_method_by_name
+mono_free_method
+mono_free_verify_list
+mono_get_config_dir
+mono_get_constant_value_from_blob
+mono_get_corlib
+mono_get_delegate_invoke
+mono_get_framework_version
+mono_get_method_full
+mono_get_method
+mono_get_root_domain
+mono_get_runtime_version
+mono_get_special_static_data
+mono_init_from_assembly
+mono_init
+mono_init_version
+mono_invoke_delegate
+mono_jit_exec
+mono_lookup_internal_call
+mono_lookup_pinvoke_call
+mono_main
+mono_message_init
+mono_message_invoke
+mono_parse_default_optimizations
+mono_perform_abc_removal
+mono_ptr_class_get
+mono_register_bundled_assemblies
+mono_release_type_locks
+mono_remote_class
+mono_remote_class_vtable
+mono_runtime_class_init
+mono_runtime_cleanup
+mono_runtime_free_method
+mono_runtime_get_main_args
+mono_runtime_init
+mono_runtime_is_shutting_down
+mono_runtime_object_init
+mono_runtime_quit
+mono_runtime_run_main
+mono_table_info_get_rows
+mono_upgrade_remote_class
+mono_upgrade_remote_class_wrapper
+mono_verify_corlib
+mono_vtable_get_static_field_data
+mono_wait_handle_new
+mono_bitset_alloc_size
+mono_bitset_clear
+mono_bitset_clear_all
+mono_bitset_clone
+mono_bitset_copyto
+mono_bitset_count
+mono_bitset_equal
+mono_bitset_find_first
+mono_bitset_find_last
+mono_bitset_find_start
+mono_bitset_foreach
+mono_bitset_free
+mono_bitset_intersection
+mono_bitset_invert
+mono_bitset_mem_new
+mono_bitset_new
+mono_bitset_set
+mono_bitset_set_all
+mono_bitset_size
+mono_bitset_sub
+mono_bitset_test
+mono_bitset_test_bulk
+mono_bitset_union
+mono_bitset_find_first_unset
+mono_bitset_intersection_2
+mono_g_hash_table_destroy
+mono_g_hash_table_foreach
+mono_g_hash_table_foreach_remove
+mono_g_hash_table_foreach_steal
+mono_g_hash_table_insert
+mono_g_hash_table_lookup
+mono_g_hash_table_lookup_extended
+mono_g_hash_table_new
+mono_g_hash_table_new_full
+mono_g_hash_table_remap
+mono_g_hash_table_remove
+mono_g_hash_table_replace
+mono_g_hash_table_size
+mono_g_hash_table_steal
+mono_raw_buffer_load
+mono_raw_buffer_update
+mono_raw_buffer_free
+mono_sha1_init
+mono_sha1_update
+mono_sha1_get_digest_from_file
+mono_sha1_get_digest
+mono_sha1_final
+mono_md5_init
+mono_md5_update
+mono_md5_get_digest_from_file
+mono_md5_get_digest
+mono_md5_final
+mono_digest_get_public_token
+mono_mempool_alloc0
+mono_mempool_alloc
+mono_mempool_destroy
+mono_mempool_empty
+mono_mempool_invalidate
+mono_mempool_new
+mono_mempool_stats
+mono_mempool_contains_addr
+mono_is_power_of_two
+mono_signbit_double
+mono_signbit_float
+mono_disasm_code
+mono_disasm_code_one
+mono_disassemble_code
+mono_walk_stack
+mono_stack_walk_no_il
+mono_escape_uri_string
+mono_guid_to_string
+GetThreadContext
+DeleteCriticalSection
+EnterCriticalSection
+InitializeCriticalSection
+InitializeCriticalSectionAndSpinCount
+LeaveCriticalSection
+SetCriticalSectionSpinCount
+TryEnterCriticalSection
+errno_to_WSA
+GetLastError
+SetLastError
+CreateEvent
+PulseEvent
+ResetEvent
+SetEvent
+CloseHandle
+CopyFile
+CreateDirectory
+CreateFile
+CreatePipe
+DeleteFile
+FileTimeToSystemTime
+FindClose
+FindFirstFile
+FindNextFile
+FlushFileBuffers
+GetCurrentDirectory
+GetFileAttributes
+GetFileAttributesEx
+GetFileSize
+GetFileTime
+GetFileType
+GetLogicalDriveStrings
+GetStdHandle
+GetTempPath
+LockFile
+MoveFile
+ReadFile
+RemoveDirectory
+SetCurrentDirectory
+SetEndOfFile
+SetFileAttributes
+SetFilePointer
+SetFileTime
+UnlockFile
+WriteFile
+mono_once
+CreateMutex
+ReleaseMutex
+CreateProcess
+EnumProcesses
+EnumProcessModules
+GetCurrentProcess
+GetCurrentProcessId
+GetExitCodeProcess
+GetModuleBaseName
+GetProcessTimes
+GetProcessWorkingSetSize
+OpenProcess
+SetProcessWorkingSetSize
+TerminateProcess
+ImpersonateLoggedOnUser
+RevertToSelf
+CreateSemaphore
+ReleaseSemaphore
+closesocket
+ioctlsocket
+WSACleanup
+WSAGetLastError
+WSAIoctl
+WSASetLastError
+WSAStartup
+GetSystemInfo
+BindIoCompletionCallback
+CreateThread
+ExitThread
+GetCurrentThread
+GetCurrentThreadId
+GetExitCodeThread
+OpenThread
+QueueUserAPC
+ResumeThread
+Sleep
+SleepEx
+SuspendThread
+TlsAlloc
+TlsFree
+TlsGetValue
+TlsSetValue
+GetTickCount
+QueryPerformanceCounter
+QueryPerformanceFrequency
+SignalObjectAndWait
+WaitForMultipleObjects
+WaitForMultipleObjectsEx
+WaitForSingleObject
+WaitForSingleObjectEx
+OpenEvent
+OpenMutex
+GetProcessId
+ShellExecuteEx
+OpenSemaphore
diff --git a/docs/exdoc b/docs/exdoc
new file mode 100644
index 0000000000..e161a0c3d4
--- /dev/null
+++ b/docs/exdoc
@@ -0,0 +1,293 @@
+#!/usr/bin/perl
+
+if ($ARGV[0] eq "-h"){
+ $dir = $ARGV[1];
+ $html = 1;
+ shift @ARGV;
+ shift @ARGV;
+}
+
+if ($html){
+ opendir (D, "$dir/sources/") || die "Can not open $dir";
+ while ($n = readdir (D)){
+ if ($n =~ /mono-api-.*\.html$/){
+ open (IN, "$dir/sources/$n") || die "Can not open $n";
+ $files[$filecount] = $n;
+ while (<IN>){
+ @files_content[$filecount] .= $_;
+ if (/name="api:(.*?)"/){
+ $_ =~ s/.*name="api:(\w+?)".*/\1/;
+ $apis[$filecount] .= "$_";
+ }
+ }
+ $filecount++;
+ close IN;
+ }
+ }
+}
+
+while (<ARGV>){
+ if (/\/\*\* *\n/){
+ &process_doc;
+ } else {
+ #print "IGNORING: $_";
+ }
+}
+
+if ($html){
+ for ($f = 0; $f < $filecount; $f++){
+ $name = $files[$f];
+ open (OUT, "> $dir/html/$name") || die "Can not create $dir/html/$name";
+ print "Merging: $name\n";
+ print OUT<<EOF;
+<?xml version="1.0" encoding="utf-8"?>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>$name</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>
+EOF
+ @a = split (/\n/, $files_content[$f]);
+
+ for ($ai = 0; $ai < $#a; $ai++){
+ $line = $a[$ai];
+
+ ($api,$caption) = $line =~ /<h4><a name=\"api:(\w+)\">(\w+)<\/a><\/h4>/;
+ if ($api ne ""){
+ if ($api_shown == 1){
+ print OUT "</div>";
+ }
+ $api_shown = 1;
+ $proto = $prototype{$api};
+ if ($proto eq ""){
+ $proto = "Prototype: $api";
+ }
+
+print OUT<<EOF;
+ <a name="api:$api"></a>
+ <div class="api">
+ <div class="api-entry">$api</div>
+
+ <div class="prototype">$proto</div>
+<p>
+EOF
+ &opt_print ("Parameters", $arguments{$api}, 1);
+ &opt_print ("Returns", $returns{$api}, 1);
+ &opt_print ("Remarks", $bodies{$api}, 0);
+ print OUT "\n";
+ } else {
+ if ($line =~ /@API_IDX@/){
+ $apis_toc = &create_toc ($apis[$f]);
+ $line =~ s/\@API_IDX\@/$apis_toc/;
+ }
+ if ($line =~ /^<h/){
+ print OUT "</div>";
+ $api_shown = 0;
+ }
+
+ print OUT "$line\n";
+ }
+ }
+ print OUT<<EOF;
+</body>
+</html>
+EOF
+ close OUT;
+ system ("$ENV{runtimedir}/mono-wrapper convert.exe $dir/html/$name $dir/html/x-$name");
+
+ # clean up the mess that AgilityPack does, it CDATAs our CSS
+ open HACK, "$dir/html/x-$name" || die "Could not open $dir/html/x-$name";
+ open HACKOUT, ">$dir/deploy/$name" || die "Could not open output";
+
+ while (<HACK>){
+ s/^\/\/<!\[CDATA\[//;
+ s/^\/\/\]\]>\/\///;
+ print HACKOUT $_;
+ }
+ #system ("cp.exe $dir/html/$name $dir/deploy/$name");
+ }
+}
+
+sub process_doc {
+ $doc = "";
+ $func = <>;
+ chop $func;
+ $func =~ s/^ \* //;
+ $func =~ s/:$//;
+ print "Function: $func\n" if (!$html);
+ $args = "";
+ $inbody = 0;
+ $returns = "";
+ $body = "";
+ $functions[$fn++] = $func;
+
+ # Process arguments
+ while (<>){
+ if (/^ \*\*?\//){
+ $body =~ s/[@#](\w+)/<i>\1<\/i>/g;
+ $returns =~ s/[@#](\w+)/<i>\1<\/i>/g;
+
+ $args =~ s/@(\w+)/<i>\1<\/i>/g;
+ $body =~ s/\n/ /;
+ $bodies{$func} = $body;
+ $arguments{$func} = $args;
+ $returns{$func} = $returns;
+ $proto = "";
+ while (<>){
+ $proto .= $_;
+ last if (/\{/);
+ }
+ $proto =~ s/{//;
+ # clean it up a little, remove newlines, empty space at end
+ $proto =~ s/ +$//;
+ # Turn "Type * xxx" into "Type* xxx"
+ $proto =~ s/^(\w+)\W+\*/\1\*/;
+ $prototype{$func} = $proto;
+ return;
+ }
+ chop;
+ s/^\ \*//;
+ $_ = "\n<p>" if (/^\s+$/);
+
+ if ($inbody == 0){
+ if (/\s*(\w+):(.*)/){
+ $args .= "<dt><i>$1:</i></dt><dd>$2</dd>";
+ } else {
+
+ $body = "\t$_\n";
+ $inbody = 1;
+ }
+ } elsif ($inbody == 1) {
+ if (/Returns?:/){
+ s/Returns?://;
+ $returns = "\t$_\n";
+ $inbody = 2;
+ } else {
+ $body .= "\n\t$_";
+ }
+ } else {
+ $returns .= "\n\t$_";
+ }
+
+ }
+}
+
+sub create_toc {
+ my ($apis_listed) = @_;
+ my $type_size = 0;
+ my $name_size = 0;
+ my $ret, $xname, $args, $line;
+ $apis_toc = "";
+
+
+ # Try to align things, so compute type size, method size, and arguments
+ foreach $line (split /\n/, $apis_listed){
+ $p = $prototype{$line};
+ ($ret, $xname, $args) = $p =~ /(.*)\n(\w+)[ \t](.*)/;
+ $tl = length ($ret);
+ $pl = length ($xname);
+
+ $type_size = $tl if ($tl > $type_size);
+ $name_size = $pl if ($pl > $name_size);
+ }
+
+ $type_size++;
+ $name_size++;
+
+ foreach $line (split /\n/, $apis_listed){
+ chop;
+ $p = $prototype{$line};
+ ($ret, $xname, $args) = $p =~ /(.*)\n(\w+)[ \t](.*)/;
+
+ $rspace = " " x ($type_size - length ($ret));
+ $nspace = " " x ($name_size - length ($xname));
+ $args = &format ($args, length ($ret . $rspace . $xname . $nspace), 60);
+ $apis_toc .= "$ret$rspace<a href=\"\#api:$line\">$xname</a>$nspace$args\n";
+ }
+ return $apis_toc;
+}
+
+#
+# Formats the rest of the arguments in a way that will fit in N columns
+#
+sub format {
+ my ($args, $size, $limit) = @_;
+ my $sret = "";
+
+# return $args if ((length (args) + size) < $limit);
+
+ $remain = $limit - $size;
+ @sa = split /,/, $args;
+ $linelen = $size;
+ foreach $arg (@sa){
+ if ($sret eq ""){
+ $sret = $arg . ", ";
+ $linelen += length ($sret);
+ } else {
+ if ($linelen + length ($arg) < $limit){
+ $sret .= "FITS" . $arg . ", ";
+ } else {
+ $newline = " " x ($size) . $arg . ", ";
+ $linelen = length ($newline);
+ $sret .= "\n" . $newline;
+ }
+ }
+ }
+ $sret =~ s/, $/;/;
+ return $sret;
+}
+
+sub opt_print {
+ my ($caption, $opttext, $quote) = @_;
+
+ if ($opttext ne "" && (!($opttext =~ /^[ \t]+$/))){
+ print OUT "<b>$caption</b>\n";
+ if ($quote == 1){
+ print OUT "<blockquote>$opttext</blockquote>\n";
+ } else {
+ print OUT "<p>$opttext\n";
+ }
+ }
+}
diff --git a/docs/ignore b/docs/ignore
new file mode 100644
index 0000000000..d48dbbd371
--- /dev/null
+++ b/docs/ignore
@@ -0,0 +1,477 @@
+stackval_to_data
+stackval_from_data
+ves_exec_method
+string_marshal_test0
+string_marshal_test1
+string_marshal_test2
+string_marshal_test3
+test_lpwstr_marshal
+return_self
+BugGetVersionEx
+callFunction
+class_marshal_test0
+class_marshal_test1
+class_marshal_test2
+class_marshal_test4
+GetVersionEx
+HexDump
+HexDump1W
+HexDumpA
+marshal_test_bool_struct
+marshal_test_ref_bool
+TestVectorList
+__bsd_dtoa
+bsd_strtod
+TestBlittableClass
+#
+# Produced by the tests
+#
+mono_test_asany
+mono_test_byvalstr_check
+mono_test_byvalstr_gen
+mono_test_delegate_struct
+mono_test_empty_pinvoke
+mono_test_empty_struct
+mono_test_last_error
+mono_test_many_byte_arguments
+mono_test_many_double_arguments
+mono_test_many_float_arguments
+mono_test_many_int_arguments
+mono_test_many_short_arguments
+mono_test_marshal_amd64_pass_return_struct1
+mono_test_marshal_amd64_pass_return_struct2
+mono_test_marshal_amd64_pass_return_struct3
+mono_test_marshal_amd64_pass_return_struct4
+mono_test_marshal_array
+mono_test_marshal_bool_byref
+mono_test_marshal_byref_class
+mono_test_marshal_byref_string_array
+mono_test_marshal_char
+mono_test_marshal_char_array
+mono_test_marshal_class
+mono_test_marshal_delegate
+mono_test_marshal_delegate10
+mono_test_marshal_delegate2
+mono_test_marshal_delegate4
+mono_test_marshal_delegate5
+mono_test_marshal_delegate6
+mono_test_marshal_delegate7
+mono_test_marshal_delegate8
+mono_test_marshal_delegate9
+mono_test_marshal_delegate_struct
+mono_test_marshal_empty_string_array
+mono_test_marshal_inout_array
+mono_test_marshal_inout_nonblittable_array
+mono_test_marshal_long_align_struct_array
+mono_test_marshal_mixed_point
+mono_test_marshal_mixed_point_2
+mono_test_marshal_out_struct
+mono_test_marshal_pass_return_custom
+mono_test_marshal_pass_return_custom_in_delegate
+mono_test_marshal_point
+mono_test_marshal_primitive_byref_delegate
+mono_test_marshal_return_delegate
+mono_test_marshal_return_delegate_delegate
+mono_test_marshal_string_array
+mono_test_marshal_stringbuilder
+mono_test_marshal_stringbuilder_array
+mono_test_marshal_stringbuilder_unicode
+mono_test_marshal_struct
+mono_test_marshal_struct2
+mono_test_marshal_struct2_2
+mono_test_marshal_struct_array
+mono_test_marshal_unicode_string_array
+mono_test_marshal_asany_inout
+mono_test_marshal_byref_struct
+mono_test_marshal_cdecl_delegate
+mono_test_marshal_ia64_pass_return_struct5
+mono_test_marshal_ia64_pass_return_struct6
+mono_test_marshal_out_array
+mono_test_marshal_out_array_delegate
+mono_test_marshal_out_string_array_delegate
+mono_test_marshal_pass_byref_custom
+mono_test_marshal_pass_out_custom
+mono_test_marshal_return_string_array_delegate
+mono_test_marshal_small_struct_delegate1
+mono_test_marshal_small_struct_delegate10
+mono_test_marshal_small_struct_delegate11
+mono_test_marshal_small_struct_delegate2
+mono_test_marshal_small_struct_delegate3
+mono_test_marshal_small_struct_delegate4
+mono_test_marshal_small_struct_delegate5
+mono_test_marshal_small_struct_delegate6
+mono_test_marshal_small_struct_delegate7
+mono_test_marshal_small_struct_delegate8
+mono_test_marshal_small_struct_delegate9
+mono_test_puts_static
+mono_test_ref_vtype
+mono_test_return_string
+mono_test_marshal_blittable_struct_delegate
+mono_test_marshal_return_enum_delegate
+mono_test_return_vtype
+mono_test_split_double_arguments
+mono_test_stdcall_name_mangling
+mono_union_test_1
+NameManglingAnsi
+NameManglingAnsi2A
+NameManglingAnsi2W
+NameManglingAnsiA
+NameManglingAnsiW
+NameManglingAuto
+NameManglingAutoW
+NameManglingUnicode
+NameManglingUnicode2
+NameManglingUnicodeW
+reliable_delegate
+#
+# Some internals
+#
+mini_emit_castclass_iface_class
+mini_emit_castclass_iface
+mini_emit_castclass
+mini_emit_isninst_cast
+mini_emit_isninst_iface_cast
+mini_emit_isninst_iface_class_cast
+mini_emit_memcpy
+mini_emit_memset
+mini_emit_virtual_call
+ldind_to_load_membase
+mono_return_int
+mono_return_int_ss
+mono_return_int_su
+mono_return_sc1
+mono_return_sc3
+mono_return_sc5
+mono_return_ss
+#
+# The following are internal calls that are exposed because of cross
+# library dependencies but could be private
+#
+mono_assembly_load_corlib
+mono_assembly_load_from
+mono_jit_walk_stack
+mono_init_icall
+mono_eval_cond_branch
+mini_emit_aotconst
+mono_add_ins_to_end
+mono_type_from_stack_type
+mono_perform_ssapre">mono_perform_ssapre
+mono_get_shared_generic_class
+mono_dynamic_stream_reset">mono_dynamic_stream_reset
+mono_allocate_stack_slots
+mono_get_inflated_method
+mono_debug_read_method
+mono_domain_get_tls_offset
+mono_thread_get_tls_offset
+mono_class_init_trampoline
+mono_classes_init
+mono_class_inflate_generic_method_full
+mono_class_setup_interface_offsets
+mono_class_get_overrides_full
+mono_class_has_special_static_fields
+mono_class_bind_generic_parameters
+mono_config_parse_publisher_policy
+mono_get_trampoline_code
+mono_helper_compile_generic_method
+mono_helper_ldstr
+mono_helper_ldstr_mscorlib
+mono_helper_newobj_mscorlib
+mono_helper_stelem_ref
+mono_helper_stelem_ref_check
+mono_metadata_get_generic_param_row
+mono_metadata_signature_deep_dup
+mono_metadata_get_param_attrs
+mono_metadata_load_generic_param_constraints
+mono_find_jit_opcode_emulation
+mono_marshal_get_ldflda_wrapper
+mono_debug_free_method_jit_info
+mono_jit_info_table_add
+mono_jit_info_table_remove
+mono_jit_info_add_aot_module
+mono_install_jit_info_find_in_aot
+mono_reflection_get_dynamic_overrides
+mono_poll
+mono_dynamic_stream_reset
+mono_domain_get_tls_offset
+mono_domain_add_class_static_data
+mono_handle_native_sigsegv
+mono_set_config_dir
+mono_profiler_coverage_alloc
+mono_profiler_coverage_free
+mini_method_compile
+mono_destroy_compile
+mono_get_method_constrained
+mono_constant_fold_inst
+mono_is_power_of_two
+mono_blockset_print
+mono_print_tree
+mono_print_tree_nl
+mono_resolve_patch_target
+mono_get_lmf_addr
+mono_draw_graph
+mono_icall_get_wrapper
+mono_find_class_init_trampoline_by_addr
+mono_class_init_trampoline
+mono_regname_full
+mono_codegen
+mono_free_loop_info
+mono_varlist_sort
+mono_varlist_insert_sorted
+mono_metadata_generic_method_hash
+mono_metadata_lookup_generic_inst
+mono_metadata_lookup_generic_class
+mono_config_parse_publisher_policy
+mono_unload_interface_ids
+mono_metadata_type_dup_mp
+mono_array_new_va
+mono_ldtoken_wrapper
+mono_jump_info_token_new
+#
+# declarative security
+#
+mono_method_has_declsec
+mono_declsec_cache_stack_modifiers
+mono_declsec_create_frame
+mono_declsec_linkdemand
+#
+# Bundles, internal:
+#
+mono_register_config_for_assembly
+#
+# Optimizations methods, exposed because they are used across files
+#
+mono_analyze_liveness
+mono_perform_ssapre
+mono_local_cprop
+mono_local_regalloc
+mono_aliasing_deadce
+mono_aliasing_get_affected_variables_for_inst
+mono_aliasing_get_affected_variables_for_inst_in_bb
+mono_aliasing_get_affected_variables_for_inst_traversing_code
+mono_aliasing_initialize_code_traversal
+mono_branch_optimize_exception_target
+mono_destroy_aliasing_information
+mono_build_aliasing_information
+mono_unlink_bblock
+mono_ssa_compute
+mono_ssa_remove
+mono_ssa_cprop
+mono_ssa_deadce
+mono_find_spvar_for_region
+mono_add_varcopy_to_end
+mono_image_build_metadata
+#
+# JIT code genreation internals
+#
+mono_bblock_add_inst
+mono_constant_fold
+mono_delegate_trampoline
+mono_magic_trampoline
+mono_call_inst_add_outarg_reg
+mono_compile_create_var
+mono_compile_make_var_load
+mono_compile_create_var_load
+mono_compile_create_var_store
+mono_compile_assembly
+mono_compile_dominator_info
+mono_compute_natural_loops
+mono_compile_iterated_dfrontier
+mono_create_jump_table
+mono_create_ftnptr
+mono_create_class_init_trampoline
+mono_class_init_trampoline
+mono_create_jit_trampoline
+mono_create_jit_trampoline_from_token
+mono_find_jit_icall_by_name
+mono_find_jit_icall_by_addr
+mono_register_jit_icall
+mono_running_on_valgrind
+mono_global_codeman_reserve
+mono_linear_scan
+#
+# Most init/cleanup routines are internally called, so they do not need to be
+# documented
+#
+mono_thread_init
+mono_assemblies_init
+mono_assembly_load_corlib
+mono_get_runtime_info
+mono_aligned_addr_hash
+mono_meta_table_name
+mono_ldtoken_wrapper
+mini_init
+mini_cleanup
+mono_metadata_compute_table_bases
+mono_image_basic_init
+mono_image_create_method_token
+mono_image_create_pefile
+mono_image_insert_strings
+mono_image_load_module
+mono_image_add_to_name_cache
+mono_image_verify_tables
+mono_debug_init_1
+mono_debug_init_2
+mono_debug_init
+mono_aot_init
+mono_init_debugger
+mono_debugger_initialize
+mono_debug_init_method
+mono_image_init
+mono_images_init
+mono_burg_init
+mono_burg_kids
+mono_burg_label
+mono_interp_cleanup
+mono_marshal_init
+mono_loader_init
+mono_metadata_init
+mono_thread_pool_init
+mono_network_init
+mono_network_cleanup
+mono_raw_buffer_init
+mono_debugger_cleanup
+mono_thread_pool_cleanup
+mono_gc_cleanup
+mono_interp_init
+mono_context_init
+mono_gc_init
+mono_debug_cleanup
+mono_image_module_basic_init
+mono_thread_pool_cleanup
+mono_icall_cleanup
+mono_icall_init
+mono_monitor_init
+mono_install_init_vtable
+mono_x86_tramp_init
+mono_install_get_cached_class_info
+mono_debugger_init
+#
+# Internal JIT icalls
+#
+mono_lldiv
+mono_lldiv_un
+mono_llmult
+mono_llmult_ovf
+mono_llmult_ovf_un
+mono_llrem
+mono_llrem_un
+mono_fconv_ovf_i8
+mono_fconv_ovf_u8
+mono_fconv_u4
+mono_fconv_u8
+mono_ldftn
+mono_ldftn_nosync
+mono_ldtoken_wrapper
+mono_ldvirtfn
+mono_class_static_field_address
+ves_array_element_address
+mono_runtime_set_shutting_down
+mono_set_rootdir
+mono_object_hash
+mono_thread_pool_remove_socket
+mono_thread_free_local_slot_values
+mono_get_jit_tls_key
+mono_get_lmf_tls_offset
+mono_jit_thread_attach
+#
+# Internally used
+#
+mono_assembly_load_from_full
+mono_assembly_load_module
+mono_assembly_load_reference
+mono_assembly_load_references
+mono_assembly_load_with_partial_name
+mono_assembly_fill_assembly_name
+mono_assembly_foreach
+mono_assembly_invoke_load_hook
+mono_assembly_invoke_search_hook
+mono_assembly_name_parse_full
+mono_assembly_set_main
+mono_assembly_get_assemblyref
+mono_assembly_setrootdir
+mono_trace_enable
+mono_trace_is_enabled
+mono_trace_set_assembly
+mono_trace_eval
+mono_patch_info_dup_mp
+mono_patch_info_hash
+mono_patch_info_equal
+mono_remove_patch_info
+mono_add_patch_info
+mono_disassemble_code
+mono_inst_foreach
+mono_print_code
+mono_method_same_domain
+mono_register_opcode_emulation
+#
+# I believe these are internal, but I should check with the JIT guys
+#
+mono_assembly_open_full
+#
+# These are internal rawbuffer structures that we use to explore the
+# access to the metadata.
+#
+mono_raw_buffer_get_n_pagefaults
+mono_raw_buffer_handle_pagefault
+mono_raw_buffer_is_pagefault
+mono_raw_buffer_set_make_unreadable
+#
+# AOT: I believe that the AOT API is completely internal, so am listing it
+# here for now, unless we decide there are pieces that should be documneted
+#
+mono_precompile_assemblies
+mono_aot_get_class_from_name
+mono_aot_find_jit_info
+mono_aot_get_method_from_token
+mono_aot_get_n_pagefaults
+mono_aot_handle_pagefault
+mono_aot_is_pagefault
+mono_aot_set_make_unreadable
+mono_aot_find_jit_info
+mono_aot_get_method_from_token
+mono_aot_get_n_pagefaults
+mono_aot_get_plt_entry
+mono_aot_handle_pagefault
+mono_aot_is_pagefault
+mono_aot_plt_resolve
+mono_aot_set_make_unreadable
+mono_aot_plt_trampoline
+mono_aot_trampoline
+mono_aot_get_cached_class_info
+mono_aot_get_method
+mono_aot_is_got_entry
+mono_aot_get_class_from_name
+#
+# These should be static, but require some ugly changes
+#
+alu_reg_to_alu_imm
+alu_reg_to_alu_membase_imm
+#
+# Internal security manager
+#
+mono_secman_inheritancedemand_method
+mono_secman_inheritancedemand_class
+#
+# Produced by matching against the MONO_INTERNAL macro
+#
+mono_regstate_free
+mono_regstate_free_float
+mono_regstate_free_int
+mono_regstate_alloc_float
+mono_regstate_alloc_int
+mono_regstate_assign
+mono_regstate_new
+mono_regstate_next_long
+mono_regstate_reset
+mono_debug_open_method
+mono_debug_close_method
+mono_debug_open_block
+mono_debug_record_line_number
+mono_debug_serialize_debug_info
+mono_debug_add_icall_wrapper
+__i686.get_pc_thunk
+mono_trace_enable
+mono_trace_is_enabled
+mono_trace_eval
+mono_trace_leave_method
+mono_trace_enter_method \ No newline at end of file
diff --git a/docs/jit-trampolines b/docs/jit-trampolines
index dba6a7062d..82eac67fe0 100644
--- a/docs/jit-trampolines
+++ b/docs/jit-trampolines
@@ -103,6 +103,30 @@ In the cases above, the number of generated trampolines goes from
5400 for the IronPython case and from 800 to 150 for the hello world
case.
+Kinds of Trampolines and Thunks
+===============================
+
+This is a list of the trampolines and thunks used in Mono:
+
+- create_fnptr
+- load_aot_method
+- imt thunk
+
+ Interface Method Table, this is used to dispatch calls to
+ interface methods.
+
+- jump table
+- debugger code
+- exception call filter
+- trampoline (various types)
+- throw corlib exception
+- restore context
+- throw exception by name
+- handle stack overflow
+- throw exception
+- delegate invoke implementation
+- cpuid code
+
Implementation for x86/x86-64
=============================
diff --git a/docs/mini-porting.txt b/docs/mini-porting.txt
index cdb967d3d9..e629aff8df 100644
--- a/docs/mini-porting.txt
+++ b/docs/mini-porting.txt
@@ -417,12 +417,19 @@
* Testing the port
- The JIT has a set of regression tests in *.cs files inside the mini directory.
- The usual method of testing a port is by compiling these tests on another machine
- with a working runtime by typing 'make rcheck', then copying TestDriver.dll and
- *.exe to the mini directory. The tests can be run by typing:
+ The JIT has a set of regression tests in *.cs files inside the
+ mini directory.
+
+ The usual method of testing a port is by compiling these tests on
+ another machine with a working runtime by typing 'make rcheck',
+ then copying TestDriver.dll and *.exe to the mini directory. The
+ tests can be run by typing:
+
./mono --regression <exe file name>
- The suggested order for working through these tests is the following:
+
+ The suggested order for working through these tests is the
+ following:
+
- basic.exe
- basic-long.exe
- basic-float.exe
@@ -473,6 +480,52 @@
at this point, so the only parts which require changing are
the arch dependent files.
-
-
-
+* Function descriptors
+
+ Some ABIs, like those for IA64 and PPC64, don't use direct
+ function pointers, but so called function descriptors. A
+ function descriptor is a short data structure which contains
+ at least a pointer to the code of the function and a pointer
+ to a GOT/TOC, which needs to be loaded into a specific
+ register prior to jumping to the function. Global variables
+ and large constants are accessed through that register.
+
+ Mono does not need function descriptors for the JITted code,
+ but we need to handle them when calling unmanaged code and we
+ need to create them when passing managed code to unmanaged
+ code.
+
+ mono_create_ftnptr() creates a function descriptor for a piece
+ of generated code within a specific domain.
+
+ mono_get_addr_from_ftnptr() returns the pointer to the native
+ code in a function descriptor. Never use this function to
+ generate a jump to a function without loading the GOT/TOC
+ register unless the function descriptor was created by
+ mono_create_ftnptr().
+
+ See the sources for IA64 and PPC64 on when to create and when
+ to dereference function descriptors. On PPC64 function
+ descriptors for various generated helper functions (in
+ exceptions-ppc.c and tramp-ppc.c) are generated in front of
+ the code they refer to (see ppc_create_pre_code_ftnptr()). On
+ IA64 they are created separately.
+
+* Emulated opcodes
+
+ Mini has code for emulating quite a few opcodes, most notably
+ operations on longs, int/float conversions and atomic
+ operations. If an architecture wishes such an opcode to be
+ emulated, mini produces icalls instead of those opcodes. This
+ should only be considered when the operation cannot be
+ implemented efficiently and thus the overhead occured by the
+ icall is not relatively large. Emulation of operations is
+ controlled by #defines in the arch header, but the naming is
+ not consistent. They usually start with MONO_ARCH_EMULATE_,
+ MONO_ARCH_NO_EMULATE_ and MONO_ARCH_HAVE_.
+
+* Generic code sharing
+
+ Generic code sharing is optional. See the file
+ "generic-sharing" for information on how to support it on an
+ architecture.
diff --git a/docs/mono-api-metadata.html b/docs/mono-api-metadata.html
new file mode 100644
index 0000000000..ff60ca2b6d
--- /dev/null
+++ b/docs/mono-api-metadata.html
@@ -0,0 +1,103 @@
+<h3>Metadata Loader Locking</h3>
+
+ <p>The locking functions here are used by code in class.c and
+ metadata.c to lock access to the shared hashtables inside the
+ MonoImage
+
+<h4><a name="api:mono_loader_lock">mono_loader_lock</a></h4>
+<h4><a name="api:mono_loader_unlock">mono_loader_unlock</a></h4>
+
+<h3>Metadata access API</h3>
+
+ <p>This is the low-level API for accessing the metadata
+ images.
+
+<h4><a name="api:mono_cli_rva_image_map">mono_cli_rva_image_map</a></h4>
+<h4><a name="api:mono_meta_table_name">mono_meta_table_name</a></h4>
+<h4><a name="api:mono_metadata_blob_heap">mono_metadata_blob_heap</a></h4>
+<h4><a name="api:mono_metadata_compute_size">mono_metadata_compute_size</a></h4>
+<h4><a name="api:mono_metadata_compute_table_bases">mono_metadata_compute_table_bases</a></h4>
+<h4><a name="api:mono_metadata_custom_attrs_from_index">mono_metadata_custom_attrs_from_index</a></h4>
+<h4><a name="api:mono_metadata_decode_blob_size">mono_metadata_decode_blob_size</a></h4>
+<h4><a name="api:mono_metadata_decode_row_col">mono_metadata_decode_row_col</a></h4>
+<h4><a name="api:mono_metadata_decode_row">mono_metadata_decode_row</a></h4>
+<h4><a name="api:mono_metadata_decode_value">mono_metadata_decode_value</a></h4>
+<h4><a name="api:mono_metadata_encode_value">mono_metadata_encode_value</a></h4>
+<h4><a name="api:mono_metadata_events_from_typedef">mono_metadata_events_from_typedef</a></h4>
+<h4><a name="api:mono_metadata_field_info">mono_metadata_field_info</a></h4>
+<h4><a name="api:mono_metadata_free_array">mono_metadata_free_array</a></h4>
+<h4><a name="api:mono_metadata_free_marshal_spec">mono_metadata_free_marshal_spec</a></h4>
+<h4><a name="api:mono_metadata_free_method_signature">mono_metadata_free_method_signature</a></h4>
+<h4><a name="api:mono_metadata_free_mh">mono_metadata_free_mh</a></h4>
+<h4><a name="api:mono_metadata_free_type">mono_metadata_free_type</a></h4>
+<h4><a name="api:mono_metadata_generic_inst_equal">mono_metadata_generic_inst_equal</a></h4>
+<h4><a name="api:mono_metadata_generic_inst_hash">mono_metadata_generic_inst_hash</a></h4>
+<h4><a name="api:mono_metadata_generic_inst_is_valuetype">mono_metadata_generic_inst_is_valuetype</a></h4>
+<h4><a name="api:mono_metadata_generic_method_equal">mono_metadata_generic_method_equal</a></h4>
+<h4><a name="api:mono_metadata_generic_method_hash">mono_metadata_generic_method_hash</a></h4>
+<h4><a name="api:mono_metadata_get_constant_index">mono_metadata_get_constant_index</a></h4>
+<h4><a name="api:mono_metadata_get_marshal_info">mono_metadata_get_marshal_info</a></h4>
+<h4><a name="api:mono_metadata_get_table">mono_metadata_get_table</a></h4>
+<h4><a name="api:mono_metadata_guid_heap">mono_metadata_guid_heap</a></h4>
+<h4><a name="api:mono_metadata_implmap_from_method">mono_metadata_implmap_from_method</a></h4>
+<h4><a name="api:mono_metadata_interfaces_from_typedef_full">mono_metadata_interfaces_from_typedef_full</a></h4>
+<h4><a name="api:mono_metadata_interfaces_from_typedef">mono_metadata_interfaces_from_typedef</a></h4>
+<h4><a name="api:mono_metadata_load_generic_params">mono_metadata_load_generic_params</a></h4>
+<h4><a name="api:mono_metadata_locate">mono_metadata_locate</a></h4>
+<h4><a name="api:mono_metadata_locate_token">mono_metadata_locate_token</a></h4>
+<h4><a name="api:mono_metadata_methods_from_event">mono_metadata_methods_from_event</a></h4>
+<h4><a name="api:mono_metadata_methods_from_property">mono_metadata_methods_from_property</a></h4>
+<h4><a name="api:mono_metadata_nested_in_typedef">mono_metadata_nested_in_typedef</a></h4>
+<h4><a name="api:mono_metadata_nesting_typedef">mono_metadata_nesting_typedef</a></h4>
+<h4><a name="api:mono_metadata_packing_from_typedef">mono_metadata_packing_from_typedef</a></h4>
+<h4><a name="api:mono_metadata_parse_array_full">mono_metadata_parse_array_full</a></h4>
+<h4><a name="api:mono_metadata_parse_array">mono_metadata_parse_array</a></h4>
+<h4><a name="api:mono_metadata_parse_custom_mod">mono_metadata_parse_custom_mod</a></h4>
+<h4><a name="api:mono_metadata_parse_field_type">mono_metadata_parse_field_type</a></h4>
+<h4><a name="api:mono_metadata_parse_marshal_spec">mono_metadata_parse_marshal_spec</a></h4>
+<h4><a name="api:mono_metadata_parse_method_signature_full">mono_metadata_parse_method_signature_full</a></h4>
+<h4><a name="api:mono_metadata_parse_method_signature">mono_metadata_parse_method_signature</a></h4>
+<h4><a name="api:mono_metadata_parse_mh_full">mono_metadata_parse_mh_full</a></h4>
+<h4><a name="api:mono_metadata_parse_mh">mono_metadata_parse_mh</a></h4>
+<h4><a name="api:mono_metadata_parse_param">mono_metadata_parse_param</a></h4>
+<h4><a name="api:mono_metadata_parse_signature_full">mono_metadata_parse_signature_full</a></h4>
+<h4><a name="api:mono_metadata_parse_signature">mono_metadata_parse_signature</a></h4>
+<h4><a name="api:mono_metadata_parse_typedef_or_ref">mono_metadata_parse_typedef_or_ref</a></h4>
+<h4><a name="api:mono_metadata_parse_type_full">mono_metadata_parse_type_full</a></h4>
+<h4><a name="api:mono_metadata_parse_type">mono_metadata_parse_type</a></h4>
+<h4><a name="api:mono_metadata_properties_from_typedef">mono_metadata_properties_from_typedef</a></h4>
+<h4><a name="api:mono_metadata_signature_alloc">mono_metadata_signature_alloc</a></h4>
+<h4><a name="api:mono_metadata_signature_dup">mono_metadata_signature_dup</a></h4>
+<h4><a name="api:mono_metadata_signature_equal">mono_metadata_signature_equal</a></h4>
+<h4><a name="api:mono_metadata_string_heap">mono_metadata_string_heap</a></h4>
+<h4><a name="api:mono_metadata_token_from_dor">mono_metadata_token_from_dor</a></h4>
+<h4><a name="api:mono_metadata_typedef_from_field">mono_metadata_typedef_from_field</a></h4>
+<h4><a name="api:mono_metadata_typedef_from_method">mono_metadata_typedef_from_method</a></h4>
+<h4><a name="api:mono_metadata_type_equal">mono_metadata_type_equal</a></h4>
+<h4><a name="api:mono_metadata_type_hash">mono_metadata_type_hash</a></h4>
+<h4><a name="api:mono_metadata_user_string">mono_metadata_user_string</a></h4>
+
+<h3>Tokens</h3>
+
+<h4><a name="api:mono_ldtoken">mono_ldtoken</a></h4>
+<h4><a name="api:mono_lookup_dynamic_token">mono_lookup_dynamic_token</a></h4>
+<h4><a name="api:mono_ldstr">mono_ldstr</a></h4>
+
+<h3>Working with signatures</h3>
+
+<h4><a name="api:mono_signature_explicit_this">mono_signature_explicit_this</a></h4>
+<h4><a name="api:mono_signature_get_call_conv">mono_signature_get_call_conv</a></h4>
+<h4><a name="api:mono_signature_get_desc">mono_signature_get_desc</a></h4>
+<h4><a name="api:mono_signature_get_param_count">mono_signature_get_param_count</a></h4>
+<h4><a name="api:mono_signature_get_params">mono_signature_get_params</a></h4>
+<h4><a name="api:mono_signature_get_return_type">mono_signature_get_return_type</a></h4>
+<h4><a name="api:mono_signature_hash">mono_signature_hash</a></h4>
+<h4><a name="api:mono_signature_is_instance">mono_signature_is_instance</a></h4>
+<h4><a name="api:mono_signature_vararg_start">mono_signature_vararg_start</a></h4>
+
+
+<h3>OpCodes</h3>
+
+<h4><a name="api:mono_opcode_name">mono_opcode_name</a></h4>
+<h4><a name="api:mono_opcode_value">mono_opcode_value</a></h4>
+
diff --git a/docs/mono-file-formats.config b/docs/mono-file-formats.config
new file mode 100644
index 0000000000..da74d04260
--- /dev/null
+++ b/docs/mono-file-formats.config
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<manpages>
+ <manpage name="mdoc(5)" page="../man/mdoc.5" />
+ <manpage name="mono-config(5)" page="../man/mono-config.5" />
+</manpages>
diff --git a/docs/mono-file-formats.source b/docs/mono-file-formats.source
new file mode 100644
index 0000000000..83b8cac08d
--- /dev/null
+++ b/docs/mono-file-formats.source
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<monodoc>
+ <source provider="man" basefile="mono-file-formats" path="man"/>
+</monodoc>
diff --git a/docs/mono-tools.config b/docs/mono-tools.config
new file mode 100644
index 0000000000..a5d8863748
--- /dev/null
+++ b/docs/mono-tools.config
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<manpages>
+ <manpage name="al(1)" page="../man/al.1" />
+ <manpage name="caspol(1)" page="../man/caspol.1" />
+ <manpage name="cert2spc(1)" page="../man/cert2spc.1" />
+ <manpage name="certmgr(1)" page="../man/certmgr.1" />
+ <manpage name="chktrust(1)" page="../man/chktrust.1" />
+ <manpage name="cilc(1)" page="../man/cilc.1" />
+ <manpage name="disco(1)" page="../man/disco.1" />
+ <manpage name="dtd2xsd(1)" page="../man/dtd2xsd.1" />
+ <manpage name="gacutil(1)" page="../man/gacutil.1" />
+ <manpage name="genxs(1)" page="../man/genxs.1" />
+ <manpage name="httpcfg(1)" page="../man/httpcfg.1" />
+ <manpage name="ilasm(1)" page="../man/ilasm.1" />
+ <manpage name="macpack(1)" page="../man/macpack.1" />
+ <manpage name="makecert(1)" page="../man/makecert.1" />
+ <manpage name="mconfig(1)" page="../man/mconfig.1" />
+ <manpage name="mcs(1)" page="../man/mcs.1" />
+ <manpage name="mdassembler(1)" page="../man/mdassembler.1" />
+ <manpage name="mdcs2ecma(1)" page="../man/mdcs2ecma.1" />
+ <manpage name="mdnormalizer(1)" page="../man/mdnormalizer.1" />
+ <manpage name="mdoc(1)" page="../man/mdoc.1" />
+ <manpage name="mdoc-assemble(1)" page="../man/mdoc-assemble.1" />
+ <manpage name="mdoc-export-html(1)" page="../man/mdoc-export-html.1" />
+ <manpage name="mdoc-export-msxdoc(1)" page="../man/mdoc-export-msxdoc.1" />
+ <manpage name="mdoc-update(1)" page="../man/mdoc-update.1" />
+ <manpage name="mdoc-validate(1)" page="../man/mdoc-validate.1" />
+ <manpage name="mdvalidator(1)" page="../man/mdvalidator.1" />
+ <manpage name="mkbundle(1)" page="../man/mkbundle.1" />
+ <manpage name="mono(1)" page="../man/mono.1" />
+ <manpage name="mono-service(1)" page="../man/mono-service.1" />
+ <manpage name="mono-shlib-cop(1)" page="../man/mono-shlib-cop.1" />
+ <manpage name="monodocer(1)" page="../man/monodocer.1" />
+ <manpage name="monodocs2html(1)" page="../man/monodocs2html.1" />
+ <manpage name="monolinker(1)" page="../man/monolinker.1" />
+ <manpage name="monop(1)" page="../man/monop.1" />
+ <manpage name="monostyle(1)" page="../man/monostyle.1" />
+ <manpage name="mono-xmltool(1)" page="../man/mono-xmltool.1" />
+ <manpage name="mozroots(1)" page="../man/mozroots.1" />
+ <manpage name="oldmono(1)" page="../man/oldmono.1" />
+ <manpage name="permview(1)" page="../man/permview.1" />
+ <manpage name="prj2make(1)" page="../man/prj2make.1" />
+ <manpage name="resgen(1)" page="../man/resgen.1" />
+ <manpage name="secutil(1)" page="../man/secutil.1" />
+ <manpage name="setreg(1)" page="../man/setreg.1" />
+ <manpage name="sgen(1)" page="../man/sgen.1" />
+ <manpage name="signcode(1)" page="../man/signcode.1" />
+ <manpage name="sn(1)" page="../man/sn.1" />
+ <manpage name="soapsuds(1)" page="../man/soapsuds.1" />
+ <manpage name="sqlsharp(1)" page="../man/sqlsharp.1" />
+ <manpage name="vbnc(1)" page="../man/vbnc.1" />
+ <manpage name="wsdl(1)" page="../man/wsdl.1" />
+ <manpage name="wsdl2(1)" page="../man/wsdl2.1" />
+ <manpage name="xsd(1)" page="../man/xsd.1" />
+</manpages>
diff --git a/docs/mono-tools.source b/docs/mono-tools.source
new file mode 100644
index 0000000000..37f4b44ca4
--- /dev/null
+++ b/docs/mono-tools.source
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<monodoc>
+ <source provider="man" basefile="mono-tools" path="man"/>
+</monodoc>
diff --git a/docs/monoapi.source b/docs/monoapi.source
new file mode 100644
index 0000000000..3f25f3201a
--- /dev/null
+++ b/docs/monoapi.source
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<monodoc>
+ <node label="Mono Embedding" name="embed" parent="libraries"/>
+ <source provider="xhtml" basefile="monoapi" path="embed"/>
+</monodoc>
diff --git a/docs/produce-lists b/docs/produce-lists
new file mode 100644
index 0000000000..43770131ac
--- /dev/null
+++ b/docs/produce-lists
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# Produces two lists in docscripts:
+# public-api with the public API except the Wapi
+# wapi the public WAPI API
+#
+
+dir=`dirname $0`
+add_h4()
+{
+ sed -e 's/^\t<h4>//' -e 's/$/<\/h4>/'
+}
+
+ignore_known()
+{
+ egrep -v -f $dir/ignore
+}
+
+clean_nm ()
+{
+ grep ' T ' | sed 's/.* T //'
+}
+
+ignore_wapi ()
+{
+ grep -v _wapi | fgrep -v -f $dir/wapi
+}
+
+if grep ^$ ignore >/dev/null; then
+ echo The ignore file contains empty lines, which breaks this script, please remove
+ echo the empty lines.
+ exit 1
+fi
+
+nm $dir/../io-layer/.libs/*.o | clean_nm | grep -v _wapi | ignore_known > $dir/wapi
+nm $dir/../*/.libs/*.o | clean_nm | ignore_known | ignore_wapi | grep -v ^ves_icall | grep -v ^mono_arch_ > $dir/public-api
diff --git a/docs/public b/docs/public
new file mode 100644
index 0000000000..1defaf0f68
--- /dev/null
+++ b/docs/public
@@ -0,0 +1,79 @@
+mono_array_clone
+mono_array_clone_in_domain
+mono_array_full_copy
+mono_array_new
+mono_array_new_full
+mono_array_new_specific
+mono_async_result_new
+mono_class_get_allocation_ftn
+mono_class_vtable
+mono_compile_method
+mono_delegate_ctor
+mono_field_get_value
+mono_field_get_value_object
+mono_field_set_value
+mono_field_static_get_value
+mono_field_static_set_value
+mono_get_constant_value_from_blob
+mono_get_delegate_invoke
+mono_install_compile_method
+mono_install_free_method
+mono_install_handler
+mono_install_remoting_trampoline
+mono_install_runtime_invoke
+mono_install_trampoline
+mono_ldstr
+mono_load_remote_field
+mono_load_remote_field_new
+mono_message_init
+mono_message_invoke
+mono_method_call_message_new
+mono_method_return_message_restore
+mono_object_castclass_mbyref
+mono_object_clone
+mono_object_get_class
+mono_object_get_domain
+mono_object_get_virtual_method
+mono_object_isinst
+mono_object_isinst_mbyref
+mono_object_new
+mono_object_new_alloc_specific
+mono_object_new_fast
+mono_object_new_from_token
+mono_object_new_specific
+mono_object_unbox
+mono_print_unhandled_exception
+mono_property_get_value
+mono_property_set_value
+mono_raise_exception
+mono_release_type_locks
+mono_remote_class
+mono_remote_class_vtable
+mono_remoting_invoke
+mono_runtime_class_init
+mono_runtime_delegate_invoke
+mono_runtime_exec_main
+mono_runtime_exec_managed_code
+mono_runtime_free_method
+mono_runtime_get_main_args
+mono_runtime_invoke
+mono_runtime_invoke_array
+mono_runtime_object_init
+mono_runtime_run_main
+mono_store_remote_field
+mono_store_remote_field_new
+mono_string_from_utf16
+mono_string_intern
+mono_string_is_interned
+mono_string_new
+mono_string_new_len
+mono_string_new_size
+mono_string_new_utf16
+mono_string_new_wrapper
+mono_string_to_utf16
+mono_string_to_utf8
+mono_type_initialization_init
+mono_unhandled_exception
+mono_upgrade_remote_class
+mono_value_box
+mono_wait_handle_new
diff --git a/docs/public-api b/docs/public-api
new file mode 100644
index 0000000000..3a56f5810c
--- /dev/null
+++ b/docs/public-api
@@ -0,0 +1,929 @@
+mono_check_corlib_version
+mono_domain_has_type_resolve
+mono_domain_is_unloading
+mono_domain_owns_vtable_slot
+mono_domain_set
+mono_domain_try_type_resolve
+mono_install_runtime_cleanup
+mono_runtime_cleanup
+mono_runtime_init
+mono_runtime_is_shutting_down
+mono_runtime_quit
+mono_assemblies_cleanup
+mono_assembly_addref
+mono_assembly_close
+mono_assembly_get_image
+mono_assembly_get_main
+mono_assembly_getrootdir
+mono_assembly_load
+mono_assembly_loaded
+mono_assembly_loaded_full
+mono_assembly_load_from
+mono_assembly_load_full
+mono_assembly_name_free
+mono_assembly_name_parse
+mono_assembly_names_equal
+mono_assembly_open
+mono_install_assembly_load_hook
+mono_install_assembly_postload_refonly_search_hook
+mono_install_assembly_postload_search_hook
+mono_install_assembly_preload_hook
+mono_install_assembly_refonly_preload_hook
+mono_install_assembly_refonly_search_hook
+mono_install_assembly_search_hook
+mono_register_bundled_assemblies
+mono_set_dirs
+mono_stringify_assembly_name
+mono_gc_alloc_fixed
+mono_gc_base_init
+mono_gc_collect
+mono_gc_disable
+mono_gc_enable
+mono_gc_enable_events
+mono_gc_free_fixed
+mono_gc_get_heap_size
+mono_gc_get_used_size
+mono_gc_invoke_finalizers
+mono_gc_is_gc_thread
+mono_gc_make_descr_from_bitmap
+mono_gc_max_generation
+mono_gc_pending_finalizers
+mono_gc_register_thread
+mono_gc_wbarrier_arrayref_copy
+mono_gc_wbarrier_generic_store
+mono_gc_wbarrier_set_arrayref
+mono_gc_wbarrier_set_field
+mono_gc_wbarrier_value_copy
+mono_gc_weak_link_add
+mono_gc_weak_link_get
+mono_gc_weak_link_remove
+mono_object_is_alive
+mono_array_class_get
+mono_array_element_size
+mono_bounded_array_class_get
+mono_class_array_element_size
+mono_class_data_size
+mono_class_enum_basetype
+mono_classes_cleanup
+mono_class_from_generic_parameter
+mono_class_from_mono_type
+mono_class_from_name
+mono_class_from_name_case
+mono_class_from_typeref
+mono_class_get
+mono_class_get_byref_type
+mono_class_get_cctor
+mono_class_get_element_class
+mono_class_get_events
+mono_class_get_event_token
+mono_class_get_exception_for_failure
+mono_class_get_field
+mono_class_get_field_from_name
+mono_class_get_fields
+mono_class_get_field_token
+mono_class_get_finalizer
+mono_class_get_flags
+mono_class_get_full
+mono_class_get_image
+mono_class_get_implemented_interfaces
+mono_class_get_interfaces
+mono_class_get_method_from_name
+mono_class_get_method_from_name_flags
+mono_class_get_methods
+mono_class_get_name
+mono_class_get_namespace
+mono_class_get_nested_types
+mono_class_get_nesting_type
+mono_class_get_nullable_param
+mono_class_get_parent
+mono_class_get_properties
+mono_class_get_property_from_name
+mono_class_get_property_token
+mono_class_get_rank
+mono_class_get_type
+mono_class_get_type_token
+mono_class_inflate_generic_method
+mono_class_inflate_generic_type
+mono_class_init
+mono_class_instance_size
+mono_class_is_assignable_from
+mono_class_is_enum
+mono_class_is_nullable
+mono_class_is_open_constructed_type
+mono_class_is_subclass_of
+mono_class_is_valuetype
+mono_class_layout_fields
+mono_class_min_align
+mono_class_name_from_token
+mono_class_needs_cctor_run
+mono_class_num_events
+mono_class_num_fields
+mono_class_num_methods
+mono_class_num_properties
+mono_class_set_failure
+mono_class_setup_methods
+mono_class_setup_mono_type
+mono_class_setup_parent
+mono_class_setup_supertypes
+mono_class_setup_vtable
+mono_class_setup_vtable_general
+mono_class_value_size
+mono_dup_array_type
+mono_event_get_add_method
+mono_event_get_flags
+mono_event_get_name
+mono_event_get_parent
+mono_event_get_raise_method
+mono_event_get_remove_method
+mono_field_get_data
+mono_field_get_flags
+mono_field_get_name
+mono_field_get_parent
+mono_field_get_type
+mono_get_inflated_generic_class
+mono_get_shared_generic_inst
+mono_image_add_to_name_cache
+mono_install_get_class_from_name
+mono_install_lookup_dynamic_token
+mono_ldtoken
+mono_lookup_dynamic_token
+mono_lookup_dynamic_token_class
+mono_property_get_flags
+mono_property_get_get_method
+mono_property_get_name
+mono_property_get_parent
+mono_property_get_set_method
+mono_ptr_class_get
+mono_type_get_full_name
+mono_type_get_name
+mono_type_get_name_full
+mono_type_get_underlying_type
+mono_class_describe_statics
+mono_disasm_code
+mono_disasm_code_one
+mono_method_desc_free
+mono_method_desc_from_method
+mono_method_desc_full_match
+mono_method_desc_match
+mono_method_desc_new
+mono_method_desc_search_in_class
+mono_method_desc_search_in_image
+mono_method_full_name
+mono_object_describe
+mono_object_describe_fields
+mono_signature_get_desc
+mono_type_full_name
+mono_type_get_desc
+mono_value_describe_fields
+_mono_debug_address_from_il_offset
+mono_debug_close_mono_symbol_file
+mono_debug_open_mono_symbols
+mono_debug_symfile_lookup_location
+mono_debug_symfile_lookup_method
+mono_decimal2double
+mono_decimal2Int64
+mono_decimal2string
+mono_decimal2UInt64
+mono_decimalCompare
+mono_decimalDiv
+mono_decimalFloorAndTrunc
+mono_decimalIncr
+mono_decimalIntDiv
+mono_decimalMult
+mono_decimalRound
+mono_decimalSetExponent
+mono_double2decimal
+mono_string2decimal
+mono_cleanup
+mono_context_get
+mono_context_set
+mono_debugger_check_runtime_version
+mono_domain_assembly_open
+mono_domain_create
+mono_domain_foreach
+mono_domain_free
+mono_domain_get
+mono_domain_get_by_id
+mono_domain_get_id
+mono_domain_get_tls_key
+mono_domain_set_internal
+mono_get_array_class
+mono_get_boolean_class
+mono_get_byte_class
+mono_get_char_class
+mono_get_corlib
+mono_get_double_class
+mono_get_enum_class
+mono_get_exception_class
+mono_get_int16_class
+mono_get_int32_class
+mono_get_int64_class
+mono_get_intptr_class
+mono_get_object_class
+mono_get_root_domain
+mono_get_sbyte_class
+mono_get_single_class
+mono_get_string_class
+mono_get_thread_class
+mono_get_uint16_class
+mono_get_uint32_class
+mono_get_uint64_class
+mono_get_uintptr_class
+mono_get_void_class
+mono_init
+mono_init_from_assembly
+mono_init_version
+mono_jit_info_get_code_size
+mono_jit_info_get_code_start
+mono_jit_info_get_method
+mono_jit_info_table_find
+mono_string_equal
+mono_string_hash
+mono_environment_exitcode_get
+mono_environment_exitcode_set
+mono_exception_from_name
+mono_exception_from_name_domain
+mono_exception_from_name_msg
+mono_exception_from_name_two_strings
+mono_exception_from_token
+mono_get_exception_appdomain_unloaded
+mono_get_exception_argument
+mono_get_exception_argument_null
+mono_get_exception_argument_out_of_range
+mono_get_exception_arithmetic
+mono_get_exception_array_type_mismatch
+mono_get_exception_bad_image_format
+mono_get_exception_cannot_unload_appdomain
+mono_get_exception_divide_by_zero
+mono_get_exception_execution_engine
+mono_get_exception_file_not_found
+mono_get_exception_file_not_found2
+mono_get_exception_index_out_of_range
+mono_get_exception_invalid_cast
+mono_get_exception_invalid_operation
+mono_get_exception_io
+mono_get_exception_missing_field
+mono_get_exception_missing_method
+mono_get_exception_not_implemented
+mono_get_exception_not_supported
+mono_get_exception_null_reference
+mono_get_exception_overflow
+mono_get_exception_reflection_type_load
+mono_get_exception_security
+mono_get_exception_serialization
+mono_get_exception_stack_overflow
+mono_get_exception_synchronization_lock
+mono_get_exception_thread_abort
+mono_get_exception_thread_state
+mono_get_exception_type_initialization
+mono_get_exception_type_load
+mono_domain_finalize
+mono_gc_finalize_notify
+mono_gchandle_free
+mono_gchandle_free_domain
+mono_gchandle_get_target
+mono_gchandle_is_in_domain
+mono_gchandle_new
+mono_gchandle_new_weakref
+mono_gc_is_finalizer_thread
+mono_gc_out_of_memory
+mono_object_register_finalizer
+mono_add_internal_call
+mono_create_icall_signature
+mono_lookup_internal_call
+mono_cli_rva_image_map
+mono_image_addref
+mono_image_close
+mono_image_ensure_section
+mono_image_ensure_section_idx
+mono_image_get_assembly
+mono_image_get_entry_point
+mono_image_get_filename
+mono_image_get_guid
+mono_image_get_name
+mono_image_get_public_key
+mono_image_get_resource
+mono_image_get_strong_name
+mono_image_get_table_info
+mono_image_get_table_rows
+mono_image_has_authenticode_entry
+mono_image_is_dynamic
+mono_image_loaded
+mono_image_loaded_by_guid
+mono_image_loaded_by_guid_full
+mono_image_loaded_full
+mono_image_load_file_for_image
+mono_image_lookup_resource
+mono_image_open
+mono_image_open_from_data
+mono_image_open_from_data_full
+mono_image_open_full
+mono_image_rva_map
+mono_images_cleanup
+mono_image_strerror
+mono_image_strong_name_position
+mono_pe_file_open
+mono_table_info_get_rows
+mono_dllmap_insert
+mono_field_from_token
+mono_free_method
+mono_get_method
+mono_get_method_full
+mono_get_shared_generic_method
+mono_install_stack_walk
+mono_loader_cleanup
+mono_loader_clear_error
+mono_loader_error_prepare_exception
+mono_loader_get_last_error
+mono_loader_lock
+mono_loader_set_error_assembly_load
+mono_loader_set_error_field_load
+mono_loader_set_error_method_load
+mono_loader_set_error_type_load
+mono_loader_unlock
+mono_lookup_pinvoke_call
+mono_method_get_class
+mono_method_get_flags
+mono_method_get_header
+mono_method_get_index
+mono_method_get_last_managed
+mono_method_get_marshal_info
+mono_method_get_name
+mono_method_get_param_names
+mono_method_get_param_token
+mono_method_get_signature
+mono_method_get_signature_full
+mono_method_get_token
+mono_method_get_wrapper_data
+mono_method_has_marshal_info
+mono_method_signature
+mono_stack_walk
+mono_stack_walk_no_il
+load_normalization_resource
+mono_array_to_lparray
+mono_array_to_savearray
+mono_class_native_size
+mono_delegate_free_ftnptr
+mono_delegate_to_ftnptr
+mono_ftnptr_to_delegate
+mono_marshal_alloc
+mono_marshal_asany
+mono_marshal_cleanup
+mono_marshal_free
+mono_marshal_free_array
+mono_marshal_free_asany
+mono_marshal_get_castclass
+mono_marshal_get_delegate_begin_invoke
+mono_marshal_get_delegate_end_invoke
+mono_marshal_get_delegate_invoke
+mono_marshal_get_generic_array_helper
+mono_marshal_get_icall_wrapper
+mono_marshal_get_isinst
+mono_marshal_get_ldfld_remote_wrapper
+mono_marshal_get_ldfld_wrapper
+mono_marshal_get_managed_wrapper
+mono_marshal_get_native_func_wrapper
+mono_marshal_get_native_wrapper
+mono_marshal_get_proxy_cancast
+mono_marshal_get_ptr_to_struct
+mono_marshal_get_remoting_invoke
+mono_marshal_get_remoting_invoke_for_target
+mono_marshal_get_remoting_invoke_with_check
+mono_marshal_get_runtime_invoke
+mono_marshal_get_stelemref
+mono_marshal_get_stfld_remote_wrapper
+mono_marshal_get_stfld_wrapper
+mono_marshal_get_struct_to_ptr
+mono_marshal_get_synchronized_wrapper
+mono_marshal_get_unbox_wrapper
+mono_marshal_get_write_barrier
+mono_marshal_get_xappdomain_invoke
+mono_marshal_load_type_info
+mono_marshal_method_from_wrapper
+mono_marshal_realloc
+mono_marshal_set_last_error
+mono_marshal_string_to_utf16
+mono_marshal_type_size
+mono_mb_add_data
+mono_mb_add_local
+mono_mb_create_method
+mono_mb_emit_add_to_local
+mono_mb_emit_branch
+mono_mb_emit_byte
+mono_mb_emit_exception
+mono_mb_emit_i2
+mono_mb_emit_i4
+mono_mb_emit_icon
+mono_mb_emit_ldarg
+mono_mb_emit_ldarg_addr
+mono_mb_emit_ldflda
+mono_mb_emit_ldloc
+mono_mb_emit_ldloc_addr
+mono_mb_emit_ldstr
+mono_mb_emit_managed_call
+mono_mb_emit_native_call
+mono_mb_emit_short_branch
+mono_mb_emit_stloc
+mono_mb_free
+mono_mb_new
+mono_mb_patch_addr
+mono_mb_patch_addr_s
+mono_string_builder_to_utf16
+mono_string_builder_to_utf8
+mono_string_to_ansibstr
+mono_string_to_bstr
+mono_string_to_byvalstr
+mono_string_to_byvalwstr
+mono_string_utf16_to_builder
+mono_string_utf8_to_builder
+mono_type_native_stack_size
+mono_type_to_ldind
+mono_type_to_stind
+mono_upgrade_remote_class_wrapper
+mono_mempool_alloc
+mono_mempool_alloc0
+mono_mempool_contains_addr
+mono_mempool_destroy
+mono_mempool_empty
+mono_mempool_get_allocated
+mono_mempool_invalidate
+mono_mempool_new
+mono_mempool_stats
+mono_mempool_strdup
+mono_guid_to_string
+mono_metadata_blob_heap
+mono_metadata_cleanup
+mono_metadata_compute_size
+mono_metadata_custom_attrs_from_index
+mono_metadata_declsec_from_index
+mono_metadata_decode_blob_size
+mono_metadata_decode_row
+mono_metadata_decode_row_col
+mono_metadata_decode_signed_value
+mono_metadata_decode_table_row
+mono_metadata_decode_table_row_col
+mono_metadata_decode_value
+mono_metadata_encode_value
+mono_metadata_events_from_typedef
+mono_metadata_field_info
+mono_metadata_free_array
+mono_metadata_free_marshal_spec
+mono_metadata_free_method_signature
+mono_metadata_free_mh
+mono_metadata_free_type
+mono_metadata_generic_class_is_valuetype
+mono_metadata_generic_method_equal
+mono_metadata_get_constant_index
+mono_metadata_get_marshal_info
+mono_metadata_guid_heap
+mono_metadata_has_generic_params
+mono_metadata_implmap_from_method
+mono_metadata_inflate_generic_inst
+mono_metadata_interfaces_from_typedef
+mono_metadata_interfaces_from_typedef_full
+mono_metadata_load_generic_params
+mono_metadata_locate
+mono_metadata_locate_token
+mono_metadata_methods_from_event
+mono_metadata_methods_from_property
+mono_metadata_nested_in_typedef
+mono_metadata_nesting_typedef
+mono_metadata_packing_from_typedef
+mono_metadata_parse_array
+mono_metadata_parse_array_full
+mono_metadata_parse_custom_mod
+mono_metadata_parse_field_type
+mono_metadata_parse_generic_inst
+mono_metadata_parse_marshal_spec
+mono_metadata_parse_method_signature
+mono_metadata_parse_method_signature_full
+mono_metadata_parse_mh
+mono_metadata_parse_mh_full
+mono_metadata_parse_param
+mono_metadata_parse_signature
+mono_metadata_parse_signature_full
+mono_metadata_parse_type
+mono_metadata_parse_typedef_or_ref
+mono_metadata_parse_type_full
+mono_metadata_properties_from_typedef
+mono_metadata_signature_alloc
+mono_metadata_signature_dup
+mono_metadata_signature_equal
+mono_metadata_string_heap
+mono_metadata_token_from_dor
+mono_metadata_translate_token_index
+mono_metadata_typedef_from_field
+mono_metadata_typedef_from_method
+mono_metadata_type_equal
+mono_metadata_type_hash
+mono_metadata_user_string
+mono_method_header_get_clauses
+mono_method_header_get_code
+mono_method_header_get_locals
+mono_method_header_get_num_clauses
+mono_signature_explicit_this
+mono_signature_get_call_conv
+mono_signature_get_param_count
+mono_signature_get_params
+mono_signature_get_return_type
+mono_signature_hash
+mono_signature_is_instance
+mono_signature_vararg_start
+mono_type_create_from_typespec
+mono_type_generic_inst_is_valuetype
+mono_type_get_array_type
+mono_type_get_class
+mono_type_get_modifiers
+mono_type_get_ptr_type
+mono_type_get_signature
+mono_type_get_type
+mono_type_is_byref
+mono_type_size
+mono_type_stack_size
+mono_type_to_unmanaged
+mono_monitor_cleanup
+mono_monitor_enter
+mono_monitor_exit
+mono_monitor_try_enter
+mono_config_for_assembly
+mono_config_parse
+mono_config_parse_memory
+mono_get_config_dir
+mono_debugger_add_symbol_file
+mono_debugger_breakpoint_callback
+mono_debugger_event
+mono_debugger_handle_exception
+mono_debugger_insert_breakpoint
+mono_debugger_insert_breakpoint_full
+mono_debugger_lock
+mono_debugger_lookup_assembly
+mono_debugger_lookup_type
+mono_debugger_method_has_breakpoint
+mono_debugger_remove_breakpoint
+mono_debugger_runtime_invoke
+mono_debugger_start_add_type
+mono_debugger_throw_exception
+mono_debugger_unhandled_exception
+mono_debugger_unlock
+mono_debug_add_method
+mono_debug_find_method
+mono_debug_free_source_location
+mono_debug_lookup_method
+mono_debug_lookup_source_location
+mono_debug_print_stack_frame
+mono_debug_using_mono_debugger
+mono_array_clone
+mono_array_clone_in_domain
+mono_array_full_copy
+mono_array_new
+mono_array_new_full
+mono_array_new_specific
+mono_async_result_new
+mono_class_get_allocation_ftn
+mono_class_vtable
+mono_compile_method
+mono_delegate_ctor
+mono_field_get_value
+mono_field_get_value_object
+mono_field_set_value
+mono_field_static_get_value
+mono_field_static_set_value
+mono_get_addr_from_ftnptr
+mono_get_constant_value_from_blob
+mono_get_delegate_invoke
+mono_install_compile_method
+mono_install_delegate_trampoline
+mono_install_free_method
+mono_install_handler
+mono_install_remoting_trampoline
+mono_install_runtime_invoke
+mono_install_trampoline
+mono_ldstr
+mono_load_remote_field
+mono_load_remote_field_new
+mono_message_init
+mono_message_invoke
+mono_method_call_message_new
+mono_method_return_message_restore
+mono_nullable_box
+mono_nullable_init
+mono_object_castclass_mbyref
+mono_object_clone
+mono_object_get_class
+mono_object_get_domain
+mono_object_get_size
+mono_object_get_virtual_method
+mono_object_isinst
+mono_object_isinst_mbyref
+mono_object_new
+mono_object_new_alloc_specific
+mono_object_new_fast
+mono_object_new_from_token
+mono_object_new_specific
+mono_object_unbox
+mono_print_unhandled_exception
+mono_property_get_value
+mono_property_set_value
+mono_raise_exception
+mono_release_type_locks
+mono_remote_class
+mono_remote_class_vtable
+mono_remoting_invoke
+mono_runtime_class_init
+mono_runtime_delegate_invoke
+mono_runtime_exec_main
+mono_runtime_exec_managed_code
+mono_runtime_free_method
+mono_runtime_get_main_args
+mono_runtime_invoke
+mono_runtime_invoke_array
+mono_runtime_object_init
+mono_runtime_run_main
+mono_store_remote_field
+mono_store_remote_field_new
+mono_string_from_utf16
+mono_string_intern
+mono_string_is_interned
+mono_string_new
+mono_string_new_len
+mono_string_new_size
+mono_string_new_utf16
+mono_string_new_wrapper
+mono_string_to_utf16
+mono_string_to_utf8
+mono_string_to_utf8_mp
+mono_thread_get_main
+mono_thread_set_main
+mono_type_initialization_cleanup
+mono_type_initialization_init
+mono_unhandled_exception
+mono_upgrade_remote_class
+mono_value_box
+mono_value_copy
+mono_value_copy_array
+mono_vtable_get_static_field_data
+mono_wait_handle_new
+mono_opcode_name
+mono_opcode_value
+mono_profiler_allocation
+mono_profiler_appdomain_event
+mono_profiler_appdomain_loaded
+mono_profiler_assembly_event
+mono_profiler_assembly_loaded
+mono_profiler_class_event
+mono_profiler_class_loaded
+mono_profiler_code_transition
+mono_profiler_coverage_get
+mono_profiler_gc_event
+mono_profiler_gc_heap_resize
+mono_profiler_get_events
+mono_profiler_install
+mono_profiler_install_allocation
+mono_profiler_install_appdomain
+mono_profiler_install_assembly
+mono_profiler_install_class
+mono_profiler_install_coverage_filter
+mono_profiler_install_enter_leave
+mono_profiler_install_gc
+mono_profiler_install_jit_compile
+mono_profiler_install_jit_end
+mono_profiler_install_module
+mono_profiler_install_statistical
+mono_profiler_install_thread
+mono_profiler_install_transition
+mono_profiler_load
+mono_profiler_method_end_jit
+mono_profiler_method_enter
+mono_profiler_method_jit
+mono_profiler_method_leave
+mono_profiler_module_event
+mono_profiler_module_loaded
+mono_profiler_set_events
+mono_profiler_shutdown
+mono_profiler_stat_hit
+mono_profiler_thread_end
+mono_profiler_thread_start
+mono_raw_buffer_cleanup
+mono_raw_buffer_free
+mono_raw_buffer_load
+mono_raw_buffer_update
+mono_assembly_get_object
+mono_custom_attrs_construct
+mono_custom_attrs_free
+mono_custom_attrs_from_assembly
+mono_custom_attrs_from_class
+mono_custom_attrs_from_event
+mono_custom_attrs_from_field
+mono_custom_attrs_from_index
+mono_custom_attrs_from_method
+mono_custom_attrs_from_param
+mono_custom_attrs_from_property
+mono_custom_attrs_get_attr
+mono_custom_attrs_has_attr
+mono_declsec_flags_from_assembly
+mono_declsec_flags_from_class
+mono_declsec_flags_from_method
+mono_declsec_get_assembly_action
+mono_declsec_get_class_action
+mono_declsec_get_demands
+mono_declsec_get_inheritdemands_class
+mono_declsec_get_inheritdemands_method
+mono_declsec_get_linkdemands
+mono_declsec_get_method_action
+mono_event_get_object
+mono_field_get_object
+mono_get_dbnull_object
+mono_image_basic_init
+mono_image_build_metadata
+mono_image_create_method_token
+mono_image_create_pefile
+mono_image_create_token
+mono_image_insert_string
+mono_image_load_module
+mono_method_body_get_object
+mono_method_get_object
+mono_module_file_get_object
+mono_module_get_object
+mono_param_get_objects
+mono_property_get_object
+mono_reflection_bind_generic_method_parameters
+mono_reflection_bind_generic_parameters
+mono_reflection_call_is_assignable_to
+mono_reflection_create_dynamic_method
+mono_reflection_create_generic_class
+mono_reflection_create_internal_class
+mono_reflection_create_runtime_class
+mono_reflection_event_builder_get_event_info
+mono_reflection_generic_class_initialize
+mono_reflection_get_custom_attrs
+mono_reflection_get_custom_attrs_blob
+mono_reflection_get_custom_attrs_by_type
+mono_reflection_get_custom_attrs_data
+mono_reflection_get_custom_attrs_info
+mono_reflection_get_token
+mono_reflection_get_type
+mono_reflection_initialize_generic_parameter
+mono_reflection_lookup_dynamic_token
+mono_reflection_marshal_from_marshal_spec
+mono_reflection_parse_type
+mono_reflection_setup_generic_class
+mono_reflection_setup_internal_class
+mono_reflection_sighelper_get_signature_field
+mono_reflection_sighelper_get_signature_local
+mono_reflection_type_from_name
+mono_type_get_object
+mono_activate_security_manager
+mono_get_context_capture_method
+mono_is_ecma_key
+mono_is_security_manager_active
+mono_security_manager_get_methods
+mono_thread_pool_add
+mono_thread_pool_finish
+mono_alloc_special_static_data
+mono_get_special_static_data
+mono_thread_abort_all_other_threads
+mono_thread_attach
+mono_thread_cleanup
+mono_thread_create
+mono_thread_current
+mono_thread_detach
+mono_thread_exit
+mono_thread_force_interruption_checkpoint
+mono_thread_get_abort_signal
+mono_thread_get_pending_exception
+mono_thread_get_tls_key
+mono_thread_has_appdomain_ref
+mono_thread_interruption_checkpoint
+mono_thread_interruption_requested
+mono_thread_interruption_request_flag
+mono_thread_manage
+mono_thread_new_init
+mono_thread_pop_appdomain_ref
+mono_thread_push_appdomain_ref
+mono_thread_request_interruption
+mono_threads_abort_appdomain_threads
+mono_threads_clear_cached_culture
+mono_threads_get_default_stacksize
+mono_threads_install_cleanup
+mono_threads_request_thread_dump
+mono_threads_set_default_stacksize
+mono_thread_stop
+mono_thread_suspend_all_other_threads
+mono_free_verify_list
+mono_image_verify_tables
+mono_method_verify
+mono_verify_corlib
+mono_perform_abc_removal
+mono_debugger_main
+mono_debug_add_aot_method
+mono_debug_print_vars
+mono_jit_cleanup
+mono_jit_exec
+mono_jit_init
+mono_main
+mono_parse_default_optimizations
+mono_inst_name
+mono_burg_emit
+mono_burg_kids
+mono_burg_label
+mono_burg_rule
+mono_debugger_run_finally
+mono_handle_exception
+mono_print_thread_dump
+mono_walk_stack
+mono_create_jump_trampoline
+mono_pmip
+mono_print_method_from_ip
+mono_set_defaults
+mono_trace_enter_method
+mono_trace_leave_method
+mono_debugger_create_notification_function
+mono_profiler_startup
+mono_profiler_startup
+add_delegate
+mono_invoke_delegate
+mono_test_marshal_inout_byval_class_delegate
+mono_test_marshal_lpstruct
+mono_test_marshal_lpstruct_blittable
+mono_test_marshal_pass_inout_custom
+mono_test_marshal_pass_out_byval_custom
+mono_test_marshal_return_fnptr
+mono_bitset_alloc_size
+mono_bitset_clear
+mono_bitset_clear_all
+mono_bitset_clone
+mono_bitset_copyto
+mono_bitset_count
+mono_bitset_equal
+mono_bitset_find_first
+mono_bitset_find_first_unset
+mono_bitset_find_last
+mono_bitset_find_start
+mono_bitset_foreach
+mono_bitset_free
+mono_bitset_intersection
+mono_bitset_intersection_2
+mono_bitset_invert
+mono_bitset_mem_new
+mono_bitset_new
+mono_bitset_set
+mono_bitset_set_all
+mono_bitset_size
+mono_bitset_sub
+mono_bitset_test
+mono_bitset_test_bulk
+mono_bitset_union
+mono_code_manager_commit
+mono_code_manager_destroy
+mono_code_manager_foreach
+mono_code_manager_invalidate
+mono_code_manager_new
+mono_code_manager_new_dynamic
+mono_code_manager_reserve
+mono_counters_dump
+mono_counters_enable
+mono_counters_register
+mono_g_hash_table_destroy
+mono_g_hash_table_foreach
+mono_g_hash_table_foreach_remove
+mono_g_hash_table_foreach_steal
+mono_g_hash_table_insert
+mono_g_hash_table_lookup
+mono_g_hash_table_lookup_extended
+mono_g_hash_table_new
+mono_g_hash_table_new_full
+mono_g_hash_table_new_type
+mono_g_hash_table_remap
+mono_g_hash_table_remove
+mono_g_hash_table_replace
+mono_g_hash_table_size
+mono_g_hash_table_steal
+mono_trace
+mono_trace_cleanup
+mono_trace_is_traced
+mono_trace_pop
+mono_trace_push
+mono_trace_set_level
+mono_trace_set_level_string
+mono_trace_set_mask
+mono_trace_set_mask_string
+mono_tracev
+mono_signbit_double
+mono_signbit_float
+mono_md5_final
+mono_md5_get_digest
+mono_md5_get_digest_from_file
+mono_md5_init
+mono_md5_update
+mono_path_canonicalize
+mono_path_resolve_symlinks
+mono_digest_get_public_token
+mono_sha1_final
+mono_sha1_get_digest
+mono_sha1_get_digest_from_file
+mono_sha1_init
+mono_sha1_update
+mono_escape_uri_string
+mono_unicode_from_external
+mono_unicode_to_external
+mono_utf8_from_external
diff --git a/docs/sources/mono-api-assembly.html b/docs/sources/mono-api-assembly.html
new file mode 100644
index 0000000000..1403d3f6cc
--- /dev/null
+++ b/docs/sources/mono-api-assembly.html
@@ -0,0 +1,56 @@
+<h2>Assemblies</h2>
+
+<h3>Synopsis</h3>
+
+ <div class="header">
+#include &lt;metadata/assembly.h&gt;
+
+typedef struct _MonoImage MonoImage;
+typedef struct _MonoAssembly MonoAssembly;
+
+typedef struct {
+ const char *name;
+ const char *culture;
+ const char *hash_value;
+ const guint8* public_key;
+ guchar public_key_token [MONO_PUBLIC_KEY_TOKEN_LENGTH];
+ guint32 hash_alg;
+ guint32 hash_len;
+ guint32 flags;
+ guint16 major, minor, build, revision;
+} MonoAssemblyName;
+
+@API_IDX@
+
+ </div>
+
+<a name="cil_assembly_load"/>
+<h3>Assembly Loading</h3>
+
+<h4><a name="api:mono_assembly_open">mono_assembly_open</a></h4>
+<h4><a name="api:mono_assembly_close">mono_assembly_close</a></h4>
+<h4><a name="api:mono_assembly_load">mono_assembly_load</a></h4>
+<h4><a name="api:mono_assembly_load_full">mono_assembly_load_full</a></h4>
+<h4><a name="api:mono_assembly_loaded">mono_assembly_loaded</a></h4>
+
+<h3>Working with Assemblies</h3>
+
+<h4><a name="api:mono_assembly_get_image">mono_assembly_get_image</a></h4>
+<h4><a name="api:mono_assembly_get_main">mono_assembly_get_main</a></h4>
+<h4><a name="api:mono_assembly_getrootdir">mono_assembly_getrootdir</a></h4>
+<h4><a name="api:mono_assembly_addref">mono_assembly_addref</a></h4>
+
+<h3>Assembly Names</h3>
+
+ <p>The MonoAssemblyName contains the full identity of an
+ assembly (name, culture, public key, public key token,
+ version and any other flags).
+
+ <p>These unmanaged objects represent the <a
+ href="http://www.mono-project.com/monodoc/T:System.Reflection.AssemblyName">System.Reflection.AssemblyName</a>
+ managed type.
+
+<h4><a name="api:mono_assembly_name_parse">mono_assembly_name_parse</a></h4>
+<h4><a name="api:mono_assembly_name_free">mono_assembly_name_free</a></h4>
+<h4><a name="api:mono_stringify_assembly_name">mono_stringify_assembly_name</a></h4>
+<h4><a name="api:mono_assembly_names_equal">mono_assembly_names_equal</a></h4>
diff --git a/docs/sources/mono-api-class.html b/docs/sources/mono-api-class.html
new file mode 100644
index 0000000000..1e1bb68f5d
--- /dev/null
+++ b/docs/sources/mono-api-class.html
@@ -0,0 +1,72 @@
+<h2>Class Operations</h2>
+
+<h4><a name="api:mono_class_array_element_size">mono_class_array_element_size</a></h4>
+<h4><a name="api:mono_class_create_generic_2">mono_class_create_generic_2</a></h4>
+<h4><a name="api:mono_class_create_generic">mono_class_create_generic</a></h4>
+<h4><a name="api:mono_class_data_size">mono_class_data_size</a></h4>
+<h4><a name="api:mono_class_enum_basetype">mono_class_enum_basetype</a></h4>
+<h4><a name="api:mono_class_from_generic_parameter">mono_class_from_generic_parameter</a></h4>
+<h4><a name="api:mono_class_from_mono_type">mono_class_from_mono_type</a></h4>
+<h4><a name="api:mono_class_from_name_case">mono_class_from_name_case</a></h4>
+<h4><a name="api:mono_class_from_name">mono_class_from_name</a></h4>
+<h4><a name="api:mono_class_from_typeref">mono_class_from_typeref</a></h4>
+<h4><a name="api:mono_class_get_allocation_ftn">mono_class_get_allocation_ftn</a></h4>
+<h4><a name="api:mono_class_get_byref_type">mono_class_get_byref_type</a></h4>
+<h4><a name="api:mono_class_get_element_class">mono_class_get_element_class</a></h4>
+<h4><a name="api:mono_class_get_events">mono_class_get_events</a></h4>
+<h4><a name="api:mono_class_get_event_token">mono_class_get_event_token</a></h4>
+<h4><a name="api:mono_class_get_field_from_name">mono_class_get_field_from_name</a></h4>
+<h4><a name="api:mono_class_get_field">mono_class_get_field</a></h4>
+<h4><a name="api:mono_class_get_fields">mono_class_get_fields</a></h4>
+<h4><a name="api:mono_class_get_field_token">mono_class_get_field_token</a></h4>
+<h4><a name="api:mono_class_get_flags">mono_class_get_flags</a></h4>
+<h4><a name="api:mono_class_get_full">mono_class_get_full</a></h4>
+<h4><a name="api:mono_class_get_image">mono_class_get_image</a></h4>
+<h4><a name="api:mono_class_get_implemented_interfaces">mono_class_get_implemented_interfaces</a></h4>
+<h4><a name="api:mono_class_get_interfaces">mono_class_get_interfaces</a></h4>
+<h4><a name="api:mono_class_get_method_from_name">mono_class_get_method_from_name</a></h4>
+<h4><a name="api:mono_class_get_methods">mono_class_get_methods</a></h4>
+<h4><a name="api:mono_class_get">mono_class_get</a></h4>
+<h4><a name="api:mono_class_get_name">mono_class_get_name</a></h4>
+<h4><a name="api:mono_class_get_namespace">mono_class_get_namespace</a></h4>
+<h4><a name="api:mono_class_get_nested_types">mono_class_get_nested_types</a></h4>
+<h4><a name="api:mono_class_get_nesting_type">mono_class_get_nesting_type</a></h4>
+<h4><a name="api:mono_class_get_overrides">mono_class_get_overrides</a></h4>
+<h4><a name="api:mono_class_get_parent">mono_class_get_parent</a></h4>
+<h4><a name="api:mono_class_get_properties">mono_class_get_properties</a></h4>
+<h4><a name="api:mono_class_get_property_from_name">mono_class_get_property_from_name</a></h4>
+<h4><a name="api:mono_class_get_property_token">mono_class_get_property_token</a></h4>
+<h4><a name="api:mono_class_get_rank">mono_class_get_rank</a></h4>
+<h4><a name="api:mono_class_get_type">mono_class_get_type</a></h4>
+<h4><a name="api:mono_class_inflate_generic_method">mono_class_inflate_generic_method</a></h4>
+<h4><a name="api:mono_class_inflate_generic_type">mono_class_inflate_generic_type</a></h4>
+<h4><a name="api:mono_class_init">mono_class_init</a></h4>
+<h4><a name="api:mono_class_instance_size">mono_class_instance_size</a></h4>
+<h4><a name="api:mono_class_is_assignable_from">mono_class_is_assignable_from</a></h4>
+<h4><a name="api:mono_class_is_enum">mono_class_is_enum</a></h4>
+<h4><a name="api:mono_class_is_open_constructed_type">mono_class_is_open_constructed_type</a></h4>
+<h4><a name="api:mono_class_is_subclass_of">mono_class_is_subclass_of</a></h4>
+<h4><a name="api:mono_class_is_valuetype">mono_class_is_valuetype</a></h4>
+<h4><a name="api:mono_class_layout_fields">mono_class_layout_fields</a></h4>
+<h4><a name="api:mono_class_min_align">mono_class_min_align</a></h4>
+<h4><a name="api:mono_class_native_size">mono_class_native_size</a></h4>
+<h4><a name="api:mono_class_needs_cctor_run">mono_class_needs_cctor_run</a></h4>
+<h4><a name="api:mono_class_num_events">mono_class_num_events</a></h4>
+<h4><a name="api:mono_class_num_fields">mono_class_num_fields</a></h4>
+<h4><a name="api:mono_class_num_methods">mono_class_num_methods</a></h4>
+<h4><a name="api:mono_class_num_properties">mono_class_num_properties</a></h4>
+<h4><a name="api:mono_class_setup_mono_type">mono_class_setup_mono_type</a></h4>
+<h4><a name="api:mono_class_setup_parent">mono_class_setup_parent</a></h4>
+<h4><a name="api:mono_class_setup_supertypes">mono_class_setup_supertypes</a></h4>
+<h4><a name="api:mono_class_setup_vtable">mono_class_setup_vtable</a></h4>
+<h4><a name="api:mono_class_value_size">mono_class_value_size</a></h4>
+<h4><a name="api:mono_class_vtable">mono_class_vtable</a></h4>
+<h4><a name="api:mono_class_get_cctor">mono_class_get_cctor</a></h4>
+<h4><a name="api:mono_class_get_finalizer">mono_class_get_finalizer</a></h4>
+<h4><a name="api:mono_class_get_method_from_name_flags">mono_class_get_method_from_name_flags</a></h4>
+<h4><a name="api:mono_class_inflate_generic_signature">mono_class_inflate_generic_signature</a></h4>
+<h4><a name="api:mono_class_name_from_token">mono_class_name_from_token</a></h4>
+<h4><a name="api:mono_class_setup_methods">mono_class_setup_methods</a></h4>
+<h4><a name="api:mono_class_setup_vtable_general">mono_class_setup_vtable_general</a></h4>
+<h4><a name="api:mono_class_get_exception_for_failure">mono_class_get_exception_for_failure</a></h4>
+<h4><a name="api:mono_class_is_nullable">mono_class_is_nullable</a></h4>
diff --git a/docs/sources/mono-api-codegen.html b/docs/sources/mono-api-codegen.html
new file mode 100644
index 0000000000..36273fd5a3
--- /dev/null
+++ b/docs/sources/mono-api-codegen.html
@@ -0,0 +1,40 @@
+<h3>Code manager</h3>
+
+<h4><a name="api:mono_code_manager_commit">mono_code_manager_commit</a></h4>
+<h4><a name="api:mono_code_manager_destroy">mono_code_manager_destroy</a></h4>
+<h4><a name="api:mono_code_manager_foreach">mono_code_manager_foreach</a></h4>
+<h4><a name="api:mono_code_manager_invalidate">mono_code_manager_invalidate</a></h4>
+<h4><a name="api:mono_code_manager_new_dynamic">mono_code_manager_new_dynamic</a></h4>
+<h4><a name="api:mono_code_manager_new">mono_code_manager_new</a></h4>
+<h4><a name="api:mono_code_manager_reserve">mono_code_manager_reserve</a></h4>
+
+<h3>Registration services</h3>
+
+ <p>The core services of Mono are independent of the execution
+ system. The interpreter and the native code generator both
+ use the functions in the following section to register
+ handlers to execute code with the execution system.
+
+ <p>These APIs would allow a different execution engine (code
+ generator or interpreter) to be hooked to the rest of the Mono
+ VM.
+
+<h4><a name="api:mono_install_assembly_load_hook">mono_install_assembly_load_hook</a></h4>
+<h4><a name="api:mono_install_assembly_preload_hook">mono_install_assembly_preload_hook</a></h4>
+<h4><a name="api:mono_install_assembly_search_hook">mono_install_assembly_search_hook</a></h4>
+<h4><a name="api:mono_install_compile_method">mono_install_compile_method</a></h4>
+<h4><a name="api:mono_install_free_method">mono_install_free_method</a></h4>
+<h4><a name="api:mono_install_handler">mono_install_handler</a></h4>
+<h4><a name="api:mono_install_lookup_dynamic_token">mono_install_lookup_dynamic_token</a></h4>
+<h4><a name="api:mono_install_remoting_trampoline">mono_install_remoting_trampoline</a></h4>
+<h4><a name="api:mono_install_runtime_invoke">mono_install_runtime_invoke</a></h4>
+<h4><a name="api:mono_install_stack_walk">mono_install_stack_walk</a></h4>
+<h4><a name="api:mono_install_thread_callbacks">mono_install_thread_callbacks</a></h4>
+<h4><a name="api:mono_install_trampoline">mono_install_trampoline</a></h4>
+<h4><a name="api:mono_install_runtime_cleanup">mono_install_runtime_cleanup</a></h4>
+<h4><a name="api:mono_install_assembly_postload_refonly_search_hook">mono_install_assembly_postload_refonly_search_hook</a></h4>
+<h4><a name="api:mono_install_assembly_postload_search_hook">mono_install_assembly_postload_search_hook</a></h4>
+<h4><a name="api:mono_install_assembly_refonly_preload_hook">mono_install_assembly_refonly_preload_hook</a></h4>
+<h4><a name="api:mono_install_assembly_refonly_search_hook">mono_install_assembly_refonly_search_hook</a></h4>
+<h4><a name="api:mono_install_delegate_trampoline">mono_install_delegate_trampoline</a></h4>
+
diff --git a/docs/sources/mono-api-counters.html b/docs/sources/mono-api-counters.html
new file mode 100644
index 0000000000..b8ca9f4a0d
--- /dev/null
+++ b/docs/sources/mono-api-counters.html
@@ -0,0 +1,44 @@
+<h2>Counters</h2>
+
+ <p>Counters is a Mono API for flexible statistics collection
+ and is used to track different events inside the JIT.
+
+ <p>You would typically register an address with the
+ <tt>mono_counters_register</tt> routine and increment the
+ counters from your application as you go. At the end of the
+ program you would call mono_counters_dump which will display
+ all the registered counters.
+
+ <p>If you need more complicated counter computation, a
+ function can be provided instead of an address. In that case
+ the <tt>MONO_COUNTER_CALLBACK</tt> flag must be ored in the
+ type request.
+
+ <p>The types that can be rendered are:
+
+<pre>
+ MONO_COUNTER_INT
+ MONO_COUNTER_UINT
+ MONO_COUNTER_WORD
+ MONO_COUNTER_LONG
+ MONO_COUNTER_ULONG
+ MONO_COUNTER_DOUBLE
+ MONO_COUNTER_STRING
+</pre>
+
+ <p>To organize the output, you register also a section where
+ the counter will be displayed, or one of the following values
+ when you register your counter:
+
+<pre>
+
+ MONO_COUNTER_JIT
+ MONO_COUNTER_GC
+ MONO_COUNTER_METADATA
+ MONO_COUNTER_GENERICS
+ MONO_COUNTER_SECURITY
+</pre>
+
+<h4><a name="api:mono_counters_dump">mono_counters_dump</a></h4>
+<h4><a name="api:mono_counters_enable">mono_counters_enable</a></h4>
+<h4><a name="api:mono_counters_register">mono_counters_register</a></h4>
diff --git a/docs/sources/mono-api-debug.html b/docs/sources/mono-api-debug.html
new file mode 100644
index 0000000000..3642e85245
--- /dev/null
+++ b/docs/sources/mono-api-debug.html
@@ -0,0 +1,45 @@
+<h4><a name="api:mono_debug_il_offset_from_address">mono_debug_il_offset_from_address</a></h4>
+<h4><a name="api:mono_debug_open_mono_symbol_file">mono_debug_open_mono_symbol_file</a></h4>
+<h4><a name="api:mono_debug_source_location_from_address">mono_debug_source_location_from_address</a></h4>
+<h4><a name="api:mono_debug_source_location_from_il_offset">mono_debug_source_location_from_il_offset</a></h4>
+<h4><a name="api:mono_debug_add_aot_method">mono_debug_add_aot_method</a></h4>
+<h4><a name="api:mono_debug_add_method">mono_debug_add_method</a></h4>
+<h4><a name="api:_mono_debug_address_from_il_offset">_mono_debug_address_from_il_offset</a></h4>
+<h4><a name="api:mono_debug_address_from_il_offset">mono_debug_address_from_il_offset</a></h4>
+<h4><a name="api:mono_debug_add_wrapper">mono_debug_add_wrapper</a></h4>
+<h4><a name="api:mono_debug_close_mono_symbol_file">mono_debug_close_mono_symbol_file</a></h4>
+<h4><a name="api:mono_debug_find_method">mono_debug_find_method</a></h4>
+<h4><a name="api:mono_debug_find_source_location">mono_debug_find_source_location</a></h4>
+<h4><a name="api:mono_debug_using_mono_debugger">mono_debug_using_mono_debugger</a></h4>
+
+<h3>Mono Debugger Interface</h3>
+
+ <p>These are methods that are invoked by the debugger at
+ runtime.
+
+<h4><a name="api:mono_debugger_add_builtin_types">mono_debugger_add_builtin_types</a></h4>
+<h4><a name="api:mono_debugger_add_method">mono_debugger_add_method</a></h4>
+<h4><a name="api:mono_debugger_add_symbol_file">mono_debugger_add_symbol_file</a></h4>
+<h4><a name="api:mono_debugger_add_type">mono_debugger_add_type</a></h4>
+<h4><a name="api:mono_debugger_add_wrapper">mono_debugger_add_wrapper</a></h4>
+<h4><a name="api:mono_debugger_breakpoint_callback">mono_debugger_breakpoint_callback</a></h4>
+<h4><a name="api:mono_debugger_check_runtime_version">mono_debugger_check_runtime_version</a></h4>
+<h4><a name="api:mono_debugger_create_notification_function">mono_debugger_create_notification_function</a></h4>
+<h4><a name="api:mono_debugger_event">mono_debugger_event</a></h4>
+<h4><a name="api:_mono_debugger_get_symfile">_mono_debugger_get_symfile</a></h4>
+<h4><a name="api:mono_debugger_handle_exception">mono_debugger_handle_exception</a></h4>
+<h4><a name="api:mono_debugger_insert_breakpoint_full">mono_debugger_insert_breakpoint_full</a></h4>
+<h4><a name="api:mono_debugger_insert_breakpoint">mono_debugger_insert_breakpoint</a></h4>
+<h4><a name="api:mono_debugger_lock">mono_debugger_lock</a></h4>
+<h4><a name="api:mono_debugger_lookup_assembly">mono_debugger_lookup_assembly</a></h4>
+<h4><a name="api:mono_debugger_lookup_type">mono_debugger_lookup_type</a></h4>
+<h4><a name="api:mono_debugger_method_has_breakpoint">mono_debugger_method_has_breakpoint</a></h4>
+<h4><a name="api:mono_debugger_remove_breakpoint">mono_debugger_remove_breakpoint</a></h4>
+<h4><a name="api:mono_debugger_runtime_invoke">mono_debugger_runtime_invoke</a></h4>
+<h4><a name="api:mono_debugger_start_add_type">mono_debugger_start_add_type</a></h4>
+<h4><a name="api:mono_debugger_throw_exception">mono_debugger_throw_exception</a></h4>
+<h4><a name="api:mono_debugger_unhandled_exception">mono_debugger_unhandled_exception</a></h4>
+<h4><a name="api:mono_debugger_unlock">mono_debugger_unlock</a></h4>
+<h4><a name="api:mono_debugger_finalize_threads">mono_debugger_finalize_threads</a></h4>
+<h4><a name="api:mono_debugger_main">mono_debugger_main</a></h4>
+<h4><a name="api:mono_debugger_run_finally">mono_debugger_run_finally</a></h4> \ No newline at end of file
diff --git a/docs/sources/mono-api-decimal.html b/docs/sources/mono-api-decimal.html
new file mode 100644
index 0000000000..41c9347811
--- /dev/null
+++ b/docs/sources/mono-api-decimal.html
@@ -0,0 +1,19 @@
+<h1>Decimal Support</h1>
+
+ <p>You can use the mono_decimal functions to access and
+ manipulate <tt>System.Decimal</tt> types from C.
+
+<h4><a name="api:mono_decimal2double">mono_decimal2double</a></h4>
+<h4><a name="api:mono_decimal2Int64">mono_decimal2Int64</a></h4>
+<h4><a name="api:mono_decimal2string">mono_decimal2string</a></h4>
+<h4><a name="api:mono_decimal2UInt64">mono_decimal2UInt64</a></h4>
+<h4><a name="api:mono_decimalCompare">mono_decimalCompare</a></h4>
+<h4><a name="api:mono_decimalDiv">mono_decimalDiv</a></h4>
+<h4><a name="api:mono_decimalFloorAndTrunc">mono_decimalFloorAndTrunc</a></h4>
+<h4><a name="api:mono_decimalIncr">mono_decimalIncr</a></h4>
+<h4><a name="api:mono_decimalIntDiv">mono_decimalIntDiv</a></h4>
+<h4><a name="api:mono_decimalMult">mono_decimalMult</a></h4>
+<h4><a name="api:mono_decimalRound">mono_decimalRound</a></h4>
+<h4><a name="api:mono_decimalSetExponent">mono_decimalSetExponent</a></h4>
+<h4><a name="api:mono_double2decimal">mono_double2decimal</a></h4>
+<h4><a name="api:mono_string2decimal">mono_string2decimal</a></h4>
diff --git a/docs/sources/mono-api-domains.html b/docs/sources/mono-api-domains.html
new file mode 100644
index 0000000000..bbcfd57908
--- /dev/null
+++ b/docs/sources/mono-api-domains.html
@@ -0,0 +1,55 @@
+<h2>Application Domains</h2>
+
+<h3>Synopsis</h3>
+
+<div class="header">
+#include &lt;metadata/appdomain.h&gt;
+
+/* Managed AppDomain */
+typedef struct _MonoAppDomain MonoAppDomain;
+
+/* Unmanaged representation */
+typedef struct _MonoDomain MonoDomain;
+
+/* Represents System.Runtime.Remoting.Contexts.Context */
+typedef struct _MonoAppContext MonoAppContext
+@API_IDX@
+</div>
+
+ <p>Application domains are used to isolate multiple
+ applications on a single Mono virtual machine. They are
+ conceptually similiar to processes, the difference is that
+ processes are managed by the operating system, while
+ application domains are managed by the Mono virtual machine.
+
+ <p>For more information on applications domains see the <a
+ href="http://www.gotdotnet.com/team/clr/AppdomainFAQ.aspx">AppDomain FAQ</a>.
+
+ <p>The <tt>MonoDomain</tt> is the unmanaged representation of
+ the <a
+ href="http://www.mono-project.com/monodoc/T:System.AppDomain">System.AppDomain</a>
+ managed type, while the <tt>MonoAppDomain</tt> type represents
+ the managed version (<tt>MonoAppDomain</tt> has a pointer to
+ a <tt>MonoDomain</tt>).
+
+<h4><a name="api:mono_domain_assembly_open">mono_domain_assembly_open</a></h4>
+<h4><a name="api:mono_domain_create">mono_domain_create</a></h4>
+<h4><a name="api:mono_domain_finalize">mono_domain_finalize</a></h4>
+<h4><a name="api:mono_domain_foreach">mono_domain_foreach</a></h4>
+<h4><a name="api:mono_domain_free">mono_domain_free</a></h4>
+<h4><a name="api:mono_domain_get_by_id">mono_domain_get_by_id</a></h4>
+<h4><a name="api:mono_domain_get_id">mono_domain_get_id</a></h4>
+<h4><a name="api:mono_domain_get">mono_domain_get</a></h4>
+<h4><a name="api:mono_domain_has_type_resolve">mono_domain_has_type_resolve</a></h4>
+<h4><a name="api:mono_domain_is_unloading">mono_domain_is_unloading</a></h4>
+<h4><a name="api:mono_domain_set_internal">mono_domain_set_internal</a></h4>
+<h4><a name="api:mono_domain_set">mono_domain_set</a></h4>
+<h4><a name="api:mono_domain_try_type_resolve">mono_domain_try_type_resolve</a></h4>
+<h4><a name="api:mono_domain_get_tls_key">mono_domain_get_tls_key</a></h4>
+<h4><a name="api:mono_domain_owns_vtable_slot">mono_domain_owns_vtable_slot</a></h4>
+
+<h3>Contexts</h3>
+
+<h4><a name="api:mono_context_get">mono_context_get</a></h4>
+<h4><a name="api:mono_context_set">mono_context_set</a></h4>
+
diff --git a/docs/sources/mono-api-dynamic-codegen.html b/docs/sources/mono-api-dynamic-codegen.html
new file mode 100644
index 0000000000..eba41a13be
--- /dev/null
+++ b/docs/sources/mono-api-dynamic-codegen.html
@@ -0,0 +1,141 @@
+<h2>Dynamic Code Generation</h2>
+
+ <p>The dynamic code generation interface inside the Mono
+ runtime is similar to the API exposed by
+ System.Reflection.Emit.
+
+ <p>This interface is used by Mono internally to generate code
+ on the flight in a cross-platform fashion. For example,
+ P/Invoke marshalling in Mono is implemented in terms of this
+ interface, but it is also used in various other parts of the
+ runtime.
+
+ <p>Unlike Reflection.Emit, the dynamic code generation
+ interface does not start with an assembly builder. The code
+ generation interface starts directly at the method level,
+ which is represented by a pointer to the MonoMethodBuilder
+ structure.
+
+ <p>To JIT this method, the process is this:
+
+ <ul>
+ <li>Create a <tt>MonoMethodBuilder</tt> object using
+ the <tt>mono_mb_new</tt> method. The method's class
+ is specified as the first argument.
+
+ <li>Create the method signature, using
+ <tt>mono_metadata_signature_alloc</tt>. The call
+ takes the number of arguments that the method takes.
+ Then you must initialize the types for each one of the
+ parameters.
+
+ <li>Emit the CIL code, using one of the
+ <tt>mono_mb_emit_*</tt> functions. There are some
+ helper routines that you can use.
+
+ <li>Create the <tt>MonoMethod</tt> from the
+ <tt>MethodBuilder</tt> using
+ <tt>mono_mb_create_method</tt>.
+
+ <li>Release the <tt>MonoMethodBuilder</tt> resources
+ using mono_mb_free.
+ </ul>
+
+ <p>The result of this process is a <tt>MonoMethod</tt> which
+ can be called using <tt><a
+ href="api:mono_create_jit_trampoline">mono_create_jit_trampoline</a></tt>
+ routine or can be passed to any other functions that require
+ the MonoMethod.
+
+ <p>Example:
+
+ <pre>
+MonoMethod *adder ()
+{
+ MonoMethodBuilder *mb;
+ MonoMethodSignature *sig;
+ MonoMethod *method;
+
+ mb = mono_mb_new (mono_defaults.object_class, "adder", MONO_WRAPPER_NONE);
+
+ /* Setup method signature */
+ sig = mono_metadata_signature_alloc (2);
+ sig->ret = &amp;mono_get_int32_class ()->byval_arg;
+ sig->params [0] = &amp;mono_get_int32_class ()->byval_arg;
+ sig->params [1] = &amp;mono_defaults.int32_class->byval_arg;
+
+ /* Emit CIL code */
+ mono_mb_emit_ldarg (mb, 0);
+ mono_mb_emit_ldarg (mb, 1);
+ mono_mb_emit_byte (mb, CEE_ADD);
+ mono_mb_emit_byte (mb, CEE_RET);
+
+ /* Get the method */
+ method = mono_mb_create_method (mb, sig, max_stack);
+
+ /* Cleanup */
+ mono_mb-free (mb);
+ return method;
+}
+ </pre>
+
+<h4><a name="api:mono_mb_new">mono_mb_new</a></h4>
+
+ <p>The possible values for the <i>type</i> argument are:
+
+<pre>
+ MONO_WRAPPER_NONE
+ MONO_WRAPPER_DELEGATE_INVOKE
+ MONO_WRAPPER_DELEGATE_BEGIN_INVOKE
+ MONO_WRAPPER_DELEGATE_END_INVOKE
+ MONO_WRAPPER_RUNTIME_INVOKE
+ MONO_WRAPPER_NATIVE_TO_MANAGED
+ MONO_WRAPPER_MANAGED_TO_NATIVE
+ MONO_WRAPPER_REMOTING_INVOKE
+ MONO_WRAPPER_REMOTING_INVOKE_WITH_CHECK
+ MONO_WRAPPER_XDOMAIN_INVOKE
+ MONO_WRAPPER_XDOMAIN_DISPATCH
+ MONO_WRAPPER_LDFLD
+ MONO_WRAPPER_STFLD
+ MONO_WRAPPER_LDFLD_REMOTE
+ MONO_WRAPPER_STFLD_REMOTE
+ MONO_WRAPPER_SYNCHRONIZED
+ MONO_WRAPPER_DYNAMIC_METHOD
+ MONO_WRAPPER_ISINST
+ MONO_WRAPPER_CASTCLASS
+ MONO_WRAPPER_PROXY_ISINST
+ MONO_WRAPPER_STELEMREF
+ MONO_WRAPPER_UNBOX
+ MONO_WRAPPER_LDFLDA
+ MONO_WRAPPER_UNKNOWN
+</pre>
+
+<h4><a name="api:mono_mb_add_data">mono_mb_add_data</a></h4>
+<h4><a name="api:mono_mb_add_local">mono_mb_add_local</a></h4>
+<h4><a name="api:mono_mb_create_method">mono_mb_create_method</a></h4>
+<h4><a name="api:mono_mb_emit_add_to_local">mono_mb_emit_add_to_local</a></h4>
+<h4><a name="api:mono_mb_emit_branch">mono_mb_emit_branch</a></h4>
+<h4><a name="api:mono_mb_emit_byte">mono_mb_emit_byte</a></h4>
+<h4><a name="api:mono_mb_emit_exception">mono_mb_emit_exception</a></h4>
+<h4><a name="api:mono_mb_emit_i2">mono_mb_emit_i2</a></h4>
+<h4><a name="api:mono_mb_emit_i4">mono_mb_emit_i4</a></h4>
+<h4><a name="api:mono_mb_emit_icon">mono_mb_emit_icon</a></h4>
+<h4><a name="api:mono_mb_emit_ldarg_addr">mono_mb_emit_ldarg_addr</a></h4>
+<h4><a name="api:mono_mb_emit_ldarg">mono_mb_emit_ldarg</a></h4>
+<h4><a name="api:mono_mb_emit_ldflda">mono_mb_emit_ldflda</a></h4>
+<h4><a name="api:mono_mb_emit_ldloc_addr">mono_mb_emit_ldloc_addr</a></h4>
+<h4><a name="api:mono_mb_emit_ldloc">mono_mb_emit_ldloc</a></h4>
+<h4><a name="api:mono_mb_emit_ldstr">mono_mb_emit_ldstr</a></h4>
+<h4><a name="api:mono_mb_emit_managed_call">mono_mb_emit_managed_call</a></h4>
+<h4><a name="api:mono_mb_emit_native_call">mono_mb_emit_native_call</a></h4>
+<h4><a name="api:mono_mb_emit_stloc">mono_mb_emit_stloc</a></h4>
+<h4><a name="api:mono_mb_free">mono_mb_free</a></h4>
+
+<h4><a name="api:mono_mb_patch_addr">mono_mb_patch_addr</a></h4>
+<h4><a name="api:mono_mb_patch_addr_s">mono_mb_patch_addr_s</a></h4>
+
+<h4><a name="api:mono_metadata_signature_alloc">mono_metadata_signature_alloc</a></h4>
+<h4><a name="api:mono_metadata_signature_dup">mono_metadata_signature_dup</a></h4>
+<h4><a name="api:mono_metadata_signature_equal">mono_metadata_signature_equal</a></h4>
+
+
diff --git a/docs/sources/mono-api-embedding.html b/docs/sources/mono-api-embedding.html
new file mode 100644
index 0000000000..71038a5987
--- /dev/null
+++ b/docs/sources/mono-api-embedding.html
@@ -0,0 +1,78 @@
+<h2>Embedding Mono</h2>
+
+<h4><a name="api:mono_jit_init">mono_jit_init</a></h4>
+<h4><a name="api:mono_set_dirs">mono_set_dirs</a></h4>
+<h4><a name="api:mono_runtime_exec_main">mono_runtime_exec_main</a></h4>
+<h4><a name="api:mono_runtime_exec_managed_code">mono_runtime_exec_managed_code</a></h4>
+
+<h4><a name="api:mono_jit_cleanup">mono_jit_cleanup</a></h4>
+<h4><a name="api:mono_set_defaults">mono_set_defaults</a></h4>
+
+<h3>Internal Calls</h3>
+
+ <p>The Mono runtime provides two mechanisms to expose C code
+ to the CIL universe: internal calls and native C
+ code. Internal calls are tightly integrated with the runtime,
+ and have the least overhead, as they use the same data types
+ that the runtime uses.
+
+ <p>The other option is to use the Platform Invoke (P/Invoke)
+ to call C code from the CIL universe, using the standard
+ P/Invoke mechanisms.
+
+ <p>To register an internal call, use this call you use the
+ <tt>mono_add_internal_call</tt> routine.
+
+<h4>Data Marshalling</h4>
+
+ <p>Managed objects are represented as <tt>MonoObject*</tt>
+ types. Those objects that the runtime consumes directly have
+ more specific C definitions (for example strings are of type
+ <tt>MonoString *</tt>, delegates are of type
+ <tt>MonoDelegate*</tt> but they are still <tt>MonoObject
+ *</tt>s).
+
+ <p>As of Mono 1.2.x types defined in mscorlib.dll do not have
+ their fields reordered in any way. But other libraries might
+ have their fields reordered. In these cases, Managed
+ structures and objects have the same layout in the C# code as
+ they do in the unmanaged world.
+
+ <p>Structures defined outside corlib must have a specific
+ StructLayout definition, and have it set as sequential if you
+ plan on accessing these fields directly from C code.
+
+ <p><b>Important</B> Internal calls do not provide support for
+ marshalling structures. This means that any API calls that
+ take a structure (excluding the system types like int32,
+ int64, etc) must be passed as a pointer, in C# this means
+ passing the value as a "ref" or "out" parameter.
+
+<h4><a name="api:mono_add_internal_call">mono_add_internal_call</a></h4>
+
+<h3>Mono Runtime Configuration</h3>
+
+ <p>Certain features of the Mono runtime, like DLL mapping, are
+ available through a configuration file that is loaded at
+ runtime. The default Mono implementation loads the
+ configuration file from <tt>$sysconfig/mono/config</tt>
+ (typically this is <tt>/etc/mono/config</tt>).
+
+ <p>See the <tt>mono-config(5)</tt> man page for more details
+ on what goes in this file.
+
+ <p>The following APIs expose this functionality:
+
+<h4><a name="api:mono_config_parse">mono_config_parse</a></h4>
+<h4><a name="api:mono_config_parse_memory">mono_config_parse_memory</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>
+
diff --git a/docs/sources/mono-api-exc.html b/docs/sources/mono-api-exc.html
new file mode 100644
index 0000000000..13d97ca7a8
--- /dev/null
+++ b/docs/sources/mono-api-exc.html
@@ -0,0 +1,59 @@
+<h2>Exception Handling</h2>
+
+<div class="header">
+@API_IDX@
+</div>
+
+<h3>Raising and Catching exceptions</h3>
+
+<h4><a name="api:mono_raise_exception">mono_raise_exception</a></h4>
+<h4><a name="api:mono_unhandled_exception">mono_unhandled_exception</a></h4>
+<h4><a name="api:mono_print_unhandled_exception">mono_print_unhandled_exception</a></h4>
+<h4><a name="api:mono_handle_exception">mono_handle_exception</a></h4>
+
+
+<h3>Exception Types: General API</h3>
+
+<h4><a name="api:mono_exception_from_name_domain">mono_exception_from_name_domain</a></h4>
+<h4><a name="api:mono_exception_from_name">mono_exception_from_name</a></h4>
+<h4><a name="api:mono_exception_from_name_msg">mono_exception_from_name_msg</a></h4>
+<h4><a name="api:mono_exception_from_name_two_strings">mono_exception_from_name_two_strings</a></h4>
+
+<h3>Obtaining Common Exceptions</h3>
+
+ <p>There are a number of common exceptions that are used by
+ the runtime, use the routines in this section to get a copy of
+ those exceptions.
+
+<h4><a name="api:mono_get_exception_appdomain_unloaded">mono_get_exception_appdomain_unloaded</a></h4>
+<h4><a name="api:mono_get_exception_argument">mono_get_exception_argument</a></h4>
+<h4><a name="api:mono_get_exception_argument_null">mono_get_exception_argument_null</a></h4>
+<h4><a name="api:mono_get_exception_argument_out_of_range">mono_get_exception_argument_out_of_range</a></h4>
+<h4><a name="api:mono_get_exception_arithmetic">mono_get_exception_arithmetic</a></h4>
+<h4><a name="api:mono_get_exception_array_type_mismatch">mono_get_exception_array_type_mismatch</a></h4>
+<h4><a name="api:mono_get_exception_bad_image_format">mono_get_exception_bad_image_format</a></h4>
+<h4><a name="api:mono_get_exception_cannot_unload_appdomain">mono_get_exception_cannot_unload_appdomain</a></h4>
+<h4><a name="api:mono_get_exception_class">mono_get_exception_class</a></h4>
+<h4><a name="api:mono_get_exception_divide_by_zero">mono_get_exception_divide_by_zero</a></h4>
+<h4><a name="api:mono_get_exception_execution_engine">mono_get_exception_execution_engine</a></h4>
+<h4><a name="api:mono_get_exception_file_not_found2">mono_get_exception_file_not_found2</a></h4>
+<h4><a name="api:mono_get_exception_file_not_found">mono_get_exception_file_not_found</a></h4>
+<h4><a name="api:mono_get_exception_index_out_of_range">mono_get_exception_index_out_of_range</a></h4>
+<h4><a name="api:mono_get_exception_invalid_cast">mono_get_exception_invalid_cast</a></h4>
+<h4><a name="api:mono_get_exception_io">mono_get_exception_io</a></h4>
+<h4><a name="api:mono_get_exception_missing_method">mono_get_exception_missing_method</a></h4>
+<h4><a name="api:mono_get_exception_not_implemented">mono_get_exception_not_implemented</a></h4>
+<h4><a name="api:mono_get_exception_null_reference">mono_get_exception_null_reference</a></h4>
+<h4><a name="api:mono_get_exception_overflow">mono_get_exception_overflow</a></h4>
+<h4><a name="api:mono_get_exception_security">mono_get_exception_security</a></h4>
+<h4><a name="api:mono_get_exception_serialization">mono_get_exception_serialization</a></h4>
+<h4><a name="api:mono_get_exception_stack_overflow">mono_get_exception_stack_overflow</a></h4>
+<h4><a name="api:mono_get_exception_synchronization_lock">mono_get_exception_synchronization_lock</a></h4>
+<h4><a name="api:mono_get_exception_thread_abort">mono_get_exception_thread_abort</a></h4>
+<h4><a name="api:mono_get_exception_thread_state">mono_get_exception_thread_state</a></h4>
+<h4><a name="api:mono_get_exception_type_initialization">mono_get_exception_type_initialization</a></h4>
+<h4><a name="api:mono_get_exception_type_load">mono_get_exception_type_load</a></h4>
+<h4><a name="api:mono_get_exception_invalid_operation">mono_get_exception_invalid_operation</a></h4>
+<h4><a name="api:mono_get_exception_missing_field">mono_get_exception_missing_field</a></h4>
+<h4><a name="api:mono_get_exception_not_supported">mono_get_exception_not_supported</a></h4>
+<h4><a name="api:mono_get_exception_reflection_type_load">mono_get_exception_reflection_type_load</a></h4>
diff --git a/docs/sources/mono-api-gc.html b/docs/sources/mono-api-gc.html
new file mode 100644
index 0000000000..7f73304c68
--- /dev/null
+++ b/docs/sources/mono-api-gc.html
@@ -0,0 +1,42 @@
+<h1>Garbage Collector Interface</h1>
+
+<h1>Public Interface</h1>
+
+ <p>The public interface of the Mono GC is fairly limited, and
+ its the only one that embedders should be using:
+
+<h4><a name="api:mono_gc_collect">mono_gc_collect</a></h4>
+<h4><a name="api:mono_gc_max_generation">mono_gc_max_generation</a></h4>
+<h4><a name="api:mono_gc_get_heap_size">mono_gc_get_heap_size</a></h4>
+<h4><a name="api:mono_gc_get_used_size">mono_gc_get_used_size</a></h4>
+
+<h3>Weak Links</h3>
+
+<h4><a name="api:mono_gc_weak_link_add">mono_gc_weak_link_add</a></h4>
+<h4><a name="api:mono_gc_weak_link_get">mono_gc_weak_link_get</a></h4>
+<h4><a name="api:mono_gc_weak_link_remove">mono_gc_weak_link_remove</a></h4>
+
+<h2>Internal Interface</h2>
+
+ <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_is_finalizer_thread">mono_gc_is_finalizer_thread</a></h4>
+<h4><a name="api:mono_gc_out_of_memory">mono_gc_out_of_memory</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_enable_events">mono_gc_enable_events</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>
+
+
+<h4><a name="api:mono_gc_base_init">mono_gc_base_init</a></h4>
+<h4><a name="api:mono_gc_invoke_finalizers">mono_gc_invoke_finalizers</a></h4>
+<h4><a name="api:mono_gc_is_gc_thread">mono_gc_is_gc_thread</a></h4>
+<h4><a name="api:mono_gc_pending_finalizers">mono_gc_pending_finalizers</a></h4>
+<h4><a name="api:mono_gc_register_thread">mono_gc_register_thread</a></h4>
+<h4><a name="api:mono_gc_finalize_notify">mono_gc_finalize_notify</a></h4>
+
diff --git a/docs/sources/mono-api-gchandle.html b/docs/sources/mono-api-gchandle.html
new file mode 100644
index 0000000000..2f090b7773
--- /dev/null
+++ b/docs/sources/mono-api-gchandle.html
@@ -0,0 +1,95 @@
+<h1>GC Handles</h1>
+
+<h3>Synopsys</h3>
+
+ <div class="header">
+@API_IDX@
+ </div>
+
+ <p>GC handles are wrappers that are used to keep references to
+ managed objects in the unmanaged space and preventing the
+ object from being disposed.
+
+ <p>These are the C equivalents of the <tt>System.GCHandle</tt>
+ structure.
+
+ <p>There are two kinds of GCHandles that can be created:
+
+ <ul>
+ <li>Handles to objects (use <tt><a
+ href="#api:mono_gchandle_new">mono_gchandle_new</a></tt>).
+
+ <li>Weak handles to objects (use <tt><a
+ href="#api:mono_gchandle_new_weakref">mono_gchandle_new_weakref</a></tt>).
+ Weak handles can have the objects reclaimed by the
+ garbage collector.
+
+ </ul>
+
+ <p>To retrieve the target address of an object pointed to by a
+ <tt>GCHandle</tt> you should use
+ <tt>mono_gchandle_get_target</tt>.
+
+ <p>For example, consider the following C code:
+<div class="code">
+static MonoObject* o = NULL;
+</div>
+
+ <p>The object in `o' will *NOT* be scanned.
+
+ <p>If you need to store an object in a C variable and prevent
+ it from being collected, you need to acquire a GC handle for
+ it.
+
+<div class="code">
+ guint32 handle = mono_gchandle_new (my_object, TRUE);
+</div>
+
+ <p>TRUE means the object will be pinned, so it won't move in
+ memory when we'll use a moving GC. You can access the
+ MonoObject* referenced by a handle with:
+
+<div class="code">
+ MonoObject* obj = mono_gchandle_get_target (handle);
+</div>
+
+ <p>When you don't need the handle anymore you need to call:
+
+<div class="code">
+ mono_gchandle_free (handle);
+</div>
+
+ <p>Note that if you assign a new object to the C var, you need
+ to get a new handle, it's not enough to store a new object in
+ the C var.
+
+ <p>So code that looked like this:
+
+<div class="code">
+ static MonoObject* o = NULL;
+ ...
+ o = mono_object_new (...);
+ /* use o */
+ ...
+ /* when done to allow the GC to collect o */
+ o = NULL;
+</div>
+
+ <p>should now be changed to:
+
+<div class="code">
+ static guint32 o_handle;
+ ...
+ MonoObject *o = mono_object_new (...);
+ o_handle = mono_gchandle_new (o, TRUE);
+ /* use o or mono_gchandle_get_target (o_handle) */
+ ...
+ /* when done to allow the GC to collect o */
+ mono_gchandle_free (o_handle);
+</div>
+
+<h4><a name="api:mono_gchandle_new">mono_gchandle_new</a></h4>
+<h4><a name="api:mono_gchandle_new_weakref">mono_gchandle_new_weakref</a></h4>
+<h4><a name="api:mono_gchandle_get_target">mono_gchandle_get_target</a></h4>
+<h4><a name="api:mono_gchandle_is_in_domain">mono_gchandle_is_in_domain</a></h4>
+<h4><a name="api:mono_gchandle_free">mono_gchandle_free</a></h4>
diff --git a/docs/sources/mono-api-image.html b/docs/sources/mono-api-image.html
new file mode 100644
index 0000000000..93e6e6d014
--- /dev/null
+++ b/docs/sources/mono-api-image.html
@@ -0,0 +1,66 @@
+<h2>Image Manipulation</h2>
+
+ <p>Images are the component of assemblies that actually hold
+ the CIL code and <a href="mono-api-metadata.html">metadata</a>
+ in the extended PE/COFF file.
+
+<h3>Synopsis</h3>
+
+ <div class="header">
+#include &lt;metadata/image.h&gt;
+
+typedef struct _MonoImage MonoImage;
+typedef enum {
+ MONO_IMAGE_OK,
+ MONO_IMAGE_ERROR_ERRNO,
+ MONO_IMAGE_MISSING_ASSEMBLYREF,
+ MONO_IMAGE_IMAGE_INVALID
+} MonoImageOpenStatus;
+
+@API_IDX@
+ </div>
+
+<h3>Image APIs</h3>
+
+ <p>Images are the actual elements in the runtime that contain
+ the actual code being executed.
+
+<a name="cil_image_open"/>
+<h3>Opening and closing MonoImages</h3>
+
+<h4><a name="api:mono_image_open">mono_image_open</a></h4>
+<h4><a name="api:mono_image_open_full">mono_image_open_full</a></h4>
+<h4><a name="api:mono_image_open_from_data">mono_image_open_from_data</a></h4>
+<h4><a name="api:mono_image_open_from_data_full">mono_image_open_from_data_full</a></h4>
+<h4><a name="api:mono_image_close">mono_image_close</a></h4>
+<h4><a name="api:mono_image_addref">mono_image_addref</a></h4>
+<h4><a name="api:mono_image_load_file_for_image">mono_image_load_file_for_image</a></h4>
+
+<h3>Image Information</h3>
+
+<h4><a name="api:mono_image_get_guid">mono_image_get_guid</a></h4>
+<h4><a name="api:mono_image_get_assembly">mono_image_get_assembly</a></h4>
+<h4><a name="api:mono_image_get_entry_point">mono_image_get_entry_point</a></h4>
+<h4><a name="api:mono_image_get_filename">mono_image_get_filename</a></h4>
+<h4><a name="api:mono_image_get_name">mono_image_get_name</a></h4>
+<h4><a name="api:mono_image_get_resource">mono_image_get_resource</a></h4>
+<h4><a name="api:mono_image_get_table_info">mono_image_get_table_info</a></h4>
+<h4><a name="api:mono_image_get_table_rows">mono_image_get_table_rows</a></h4>
+<h4><a name="api:mono_image_is_dynamic">mono_image_is_dynamic</a></h4>
+<h4><a name="api:mono_image_loaded_by_guid">mono_image_loaded_by_guid</a></h4>
+<h4><a name="api:mono_image_loaded">mono_image_loaded</a></h4>
+<h4><a name="api:mono_image_lookup_resource">mono_image_lookup_resource</a></h4>
+<h4><a name="api:mono_image_strerror">mono_image_strerror</a></h4>
+
+<h3>Public Keys, Strong Names and Certificates</h3>
+
+<h4><a name="api:mono_image_strong_name_position">mono_image_strong_name_position</a></h4>
+<h4><a name="api:mono_image_get_public_key">mono_image_get_public_key</a></h4>
+<h4><a name="api:mono_image_get_strong_name">mono_image_get_strong_name</a></h4>
+<h4><a name="api:mono_image_has_authenticode_entry">mono_image_has_authenticode_entry</a></h4>
+
+<h3>Low-level features</h3>
+
+<h4><a name="api:mono_image_rva_map">mono_image_rva_map</a></h4>
+<h4><a name="api:mono_image_ensure_section_idx">mono_image_ensure_section_idx</a></h4>
+<h4><a name="api:mono_image_ensure_section">mono_image_ensure_section</a></h4>
diff --git a/docs/sources/mono-api-internal.html b/docs/sources/mono-api-internal.html
new file mode 100644
index 0000000000..1d292ce0de
--- /dev/null
+++ b/docs/sources/mono-api-internal.html
@@ -0,0 +1,14 @@
+<h1>Code Generator Internals</h1>
+
+ <p>The functions in this document are internal to the JIT,
+ they are here for completeness, but you should refer to the
+ source code for more details.
+
+<h3>BURG public API</h3>
+
+<h4><a name="api:mono_burg_kids">mono_burg_kids</a></h4>
+<h4><a name="api:mono_burg_label">mono_burg_label</a></h4>
+<h4><a name="api:mono_burg_rule">mono_burg_rule</a></h4>
+
+
+
diff --git a/docs/sources/mono-api-interpreter.html b/docs/sources/mono-api-interpreter.html
new file mode 100644
index 0000000000..4a36104e7e
--- /dev/null
+++ b/docs/sources/mono-api-interpreter.html
@@ -0,0 +1,11 @@
+<h3>Interpreter API</h3>
+
+ <p>This describes the API exposed by the interpreter, but it
+ is for the most part an internal to the interpreter.
+
+<h4><a name="api:mono_interp_dis_mintop">mono_interp_dis_mintop</a></h4>
+<h4><a name="api:mono_interp_exec">mono_interp_exec</a></h4>
+<h4><a name="api:mono_interp_ftnptr_to_delegate">mono_interp_ftnptr_to_delegate</a></h4>
+<h4><a name="api:mono_interp_get_runtime_method">mono_interp_get_runtime_method</a></h4>
+<h4><a name="api:mono_interp_transform_init">mono_interp_transform_init</a></h4>
+<h4><a name="api:mono_interp_transform_method">mono_interp_transform_method</a></h4>
diff --git a/docs/sources/mono-api-jit.html b/docs/sources/mono-api-jit.html
new file mode 100644
index 0000000000..0618d0c5a6
--- /dev/null
+++ b/docs/sources/mono-api-jit.html
@@ -0,0 +1,20 @@
+<h2>Synopsis</h2>
+
+<div class="header">
+@API_IDX@
+</div>
+
+<h3>Useful Debugging Functions</h3>
+
+ <p>These functions are useful when running the Mono VM inside
+ a debugger.
+
+<h4><a name="api:mono_pmip">mono_pmip</a></h4>
+<h4><a name="api:mono_print_method_from_ip">mono_print_method_from_ip</a></h4>
+<h4><a name="api:mono_print_thread_dump">mono_print_thread_dump</a></h4>
+<h4><a name="api:mono_threads_request_thread_dump">mono_threads_request_thread_dump</a></h4>
+
+<h3>Helper Tools For Native Ports</h3>
+
+<h4><a name="api:mono_inst_name">mono_inst_name</a></h4>
+
diff --git a/docs/sources/mono-api-jitinternal.html b/docs/sources/mono-api-jitinternal.html
new file mode 100644
index 0000000000..25dd46cb5f
--- /dev/null
+++ b/docs/sources/mono-api-jitinternal.html
@@ -0,0 +1,38 @@
+<h1>Notification Interface</h1>
+
+ <p>Am not sure that we want to document this; This seems like
+ an internal interface that third parties would not likely
+ use, and if they do, they probably are reading the JIT's
+ source code.
+
+ <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_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>
diff --git a/docs/sources/mono-api-marshal.html b/docs/sources/mono-api-marshal.html
new file mode 100644
index 0000000000..605896db85
--- /dev/null
+++ b/docs/sources/mono-api-marshal.html
@@ -0,0 +1,39 @@
+
+
+<h4><a name="api:mono_delegate_free_ftnptr">mono_delegate_free_ftnptr</a></h4>
+<h4><a name="api:mono_delegate_to_ftnptr">mono_delegate_to_ftnptr</a></h4>
+<h4><a name="api:mono_ftnptr_to_delegate">mono_ftnptr_to_delegate</a></h4>
+<h4><a name="api:mono_marshal_alloc">mono_marshal_alloc</a></h4>
+<h4><a name="api:mono_marshal_asany">mono_marshal_asany</a></h4>
+<h4><a name="api:mono_marshal_free_array">mono_marshal_free_array</a></h4>
+<h4><a name="api:mono_marshal_free_asany">mono_marshal_free_asany</a></h4>
+<h4><a name="api:mono_marshal_free">mono_marshal_free</a></h4>
+<h4><a name="api:mono_marshal_get_castclass">mono_marshal_get_castclass</a></h4>
+<h4><a name="api:mono_marshal_get_delegate_begin_invoke">mono_marshal_get_delegate_begin_invoke</a></h4>
+<h4><a name="api:mono_marshal_get_delegate_end_invoke">mono_marshal_get_delegate_end_invoke</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_proxy_cancast">mono_marshal_get_proxy_cancast</a></h4>
+<h4><a name="api:mono_marshal_get_ptr_to_struct">mono_marshal_get_ptr_to_struct</a></h4>
+<h4><a name="api:mono_marshal_get_remoting_invoke_for_target">mono_marshal_get_remoting_invoke_for_target</a></h4>
+<h4><a name="api:mono_marshal_get_remoting_invoke">mono_marshal_get_remoting_invoke</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_unbox_wrapper">mono_marshal_get_unbox_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_string_to_utf16">mono_marshal_string_to_utf16</a></h4>
+<h4><a name="api:mono_marshal_type_size">mono_marshal_type_size</a></h4>
diff --git a/docs/sources/mono-api-metadata.html b/docs/sources/mono-api-metadata.html
new file mode 100644
index 0000000000..299f4c7b59
--- /dev/null
+++ b/docs/sources/mono-api-metadata.html
@@ -0,0 +1,749 @@
+<h1>Metadata Reading</h1>
+
+ <p>The Metadata API gives developers low-level access to the
+ information encoded in CLI modules: type and
+ methods definitions encoded in metadata as well as access to
+ the CIL code and embedded resources.
+
+ <p>Managed developers access this information using either the
+ System.Reflection API or a library
+ like <a href="http://www.mono-project.com/Cecil">Cecil</a>.
+
+ <p>To start using the Metadata API it is necessary
+ to <a href="mono-api-assembly.html#cil_assembly_load">open an
+ assembly</a> or a CIL image (a .dll or .exe file) using one of
+ the
+ <a href="mono-api-image.html#cil_image_open">CIL image
+ opening</a> API calls.
+
+<h2>Metadata Heaps</h2>
+
+ <p>ECMA CLI images contain four heaps that store different
+ kinds of information, these are:
+
+ <ul>
+ <li>GUID heap (called #GUID) contains 128-bit GUIDs,
+ you can get pointer to a GUID value by
+ calling <a href="#api:mono_metadata_guid_heap">mono_metadata_guid_heap</a>.
+
+ <li>User string heap (called #US), it contains user
+ visible strings, you can fetch a string from this heap
+ by calling
+ <a href="#api:mono_metadata_user_string">mono_metadata_user_string</a>.
+
+ <li>Blob heap (called #blob), it contains binary
+ blobs of data, you can get a blob
+ by <a href="#api:mono_metadata_blob_heap">mono_metadata_blob_heap</a>.
+ You can determine the size of the blob using
+ the <a href="#api:mono_metadata_decode_blob_size">mono_metadata_decode_blob_size</a>.
+
+ </ul>
+
+ <p>The ECMA file format also has an extra section called the
+ "#~" stream, this stream is the one that holds the metadata
+ tables. There is a high-level API to get access to the
+ contents of this API, described in the
+ section <a href="#metadata-tables">Metadata Tables</a>.
+
+<h4><a name="api:mono_metadata_guid_heap">mono_metadata_guid_heap</a></h4>
+<h4><a name="api:mono_metadata_string_heap">mono_metadata_string_heap</a></h4>
+<h4><a name="api:mono_metadata_blob_heap">mono_metadata_blob_heap</a></h4>
+<h4><a name="api:mono_metadata_user_string">mono_metadata_user_string</a></h4>
+<h4><a name="api:mono_metadata_decode_blob_size">mono_metadata_decode_blob_size</a></h4>
+
+<a name="metadata-tables"/>
+<h2>Metadata Tables</h2>
+
+ <p>Metadata is encoded in a number of tables included on every
+ CIL image. These tables contain type definitions, member
+ definitions and so on, these constants are defined in the ECMA 335
+ specification Partition II section 22. The following table
+ shows the C constants defined in the Mono runtime and how they
+ map to the equivalent ECMA CLI metadata table:
+
+ <center>
+ <table border=1>
+ <thead>
+ <td>
+ <b>ECMA CLI Table Name</b>
+ </td>
+ <td>
+ <b>C Constant Name</b>
+ </td>
+ <td>
+ <b>Table Schema (Array Size + Columns Constants)</b>
+ </td>
+ </thead>
+<td>Assembly</td><td>MONO_TABLE_ASSEMBLY</td><td>
+Array size:
+MONO_ASSEMBLY_SIZE
+<ul>
+ <li>MONO_ASSEMBLY_HASH_ALG
+ <li>MONO_ASSEMBLY_MAJOR_VERSION
+ <li>MONO_ASSEMBLY_MINOR_VERSION
+ <li>MONO_ASSEMBLY_BUILD_NUMBER
+ <li>MONO_ASSEMBLY_REV_NUMBER
+ <li>MONO_ASSEMBLY_FLAGS
+ <li>MONO_ASSEMBLY_PUBLIC_KEY
+ <li>MONO_ASSEMBLY_NAME
+ <li>MONO_ASSEMBLY_CULTURE
+</ul>
+</td>
+</tr>
+
+<td>AssemblyOS</td><td>MONO_TABLE_ASSEMBLYOS</td><td>
+Array size:
+MONO_ASSEMBLYOS_SIZE
+<ul>
+ <li>MONO_ASSEMBLYOS_PLATFORM
+ <li>MONO_ASSEMBLYOS_MAJOR_VERSION
+ <li>MONO_ASSEMBLYOS_MINOR_VERSION
+</ul>
+</td>
+</tr>
+
+<td>AssemblyProcessor</td><td>MONO_TABLE_ASSEMBLYPROCESSOR</td><td>Array
+size: MONO_ASSEMBLYPROCESSOR_SIZE
+<ul>
+ <li>MONO_ASSEMBLY_PROCESSOR
+</ul>
+</td>
+</tr>
+
+<td>AssemblyRef</td><td>MONO_TABLE_ASSEMBLYREF</td><td>
+Array size:
+MONO_ASSEMBLYREF_SIZE
+<ul>
+ <li>MONO_ASSEMBLYREF_MAJOR_VERSION
+ <li>MONO_ASSEMBLYREF_MINOR_VERSION
+ <li>MONO_ASSEMBLYREF_BUILD_NUMBER
+ <li>MONO_ASSEMBLYREF_REV_NUMBER
+ <li>MONO_ASSEMBLYREF_FLAGS
+ <li>MONO_ASSEMBLYREF_PUBLIC_KEY
+ <li>MONO_ASSEMBLYREF_NAME
+ <li>MONO_ASSEMBLYREF_CULTURE
+ <li>MONO_ASSEMBLYREF_HASH_VALUE
+</ul>
+</td>
+</tr>
+
+<td>AssemblyRefProcessor</td><td>MONO_TABLE_ASSEMBLYREFPROCESSOR</td><td>Array
+size: MONO_ASSEMBLYREFPROC_SIZE
+<ul>
+ <li>MONO_ASSEMBLYREFPROC_PROCESSOR
+ <li>MONO_ASSEMBLYREFPROC_ASSEMBLYREF
+</ul>
+</td>
+</tr>
+
+<td>AssemblyRefOS</td><td>MONO_TABLE_ASSEMBLYREFOS</td><td>
+Array size:
+ <li>MONO_ASSEMBLYREFOS_SIZE
+<ul>
+ <li>MONO_ASSEMBLYREFOS_PLATFORM
+ <li>MONO_ASSEMBLYREFOS_MAJOR_VERSION
+ <li>MONO_ASSEMBLYREFOS_MINOR_VERSION
+ <li>MONO_ASSEMBLYREFOS_ASSEMBLYREF
+</ul>
+</td>
+</tr>
+
+<td>ClassLayout</td><td>MONO_TABLE_CLASSLAYOUT</td><td>
+Array size:
+MONO_CLASSLAYOUT_SIZE
+<ul>
+ <li>MONO_CLASS_LAYOUT_PACKING_SIZE
+ <li>MONO_CLASS_LAYOUT_CLASS_SIZE
+ <li>MONO_CLASS_LAYOUT_PARENT
+</ul>
+</td>
+</tr>
+
+<td>Constant</td><td>MONO_TABLE_CONSTANT</td><td>
+Array size:
+MONO_CONSTANT_SIZE
+<ul>
+ <li>MONO_CONSTANT_TYPE
+ <li>MONO_CONSTANT_PADDING
+ <li>MONO_CONSTANT_PARENT
+ <li>MONO_CONSTANT_VALUE
+</ul>
+</td>
+</tr>
+
+<td>CustomAttribute</td><td>MONO_TABLE_CUSTOMATTRIBUTE</td><td>
+Array size:
+MONO_CUSTOM_ATTR_SIZE
+<ul>
+ <li>MONO_CUSTOM_ATTR_PARENT
+ <li>MONO_CUSTOM_ATTR_TYPE
+ <li>MONO_CUSTOM_ATTR_VALUE
+</ul>
+</td>
+</tr>
+
+<td>DeclSecurity</td><td>MONO_TABLE_DECLSECURITY</td><td>
+Array size:
+MONO_DECL_SECURITY_SIZE
+<ul>
+ <li>MONO_DECL_SECURITY_ACTION
+ <li>MONO_DECL_SECURITY_PARENT
+ <li>MONO_DECL_SECURITY_PERMISSIONSET
+</ul>
+</td>
+</tr>
+
+<td>EventMap</td><td>MONO_TABLE_EVENTMAP</td><td>
+Array size:
+MONO_EVENT_MAP_SIZE
+<ul>
+ <li>MONO_EVENT_MAP_PARENT
+ <li>MONO_EVENT_MAP_EVENTLIST
+</ul>
+</td>
+</tr>
+
+<td>EventPtr</td><td>MONO_TABLE_EVENT_POINTER</td><td>
+Array size:
+MONO_EVENT_POINTER_SIZE
+<ul>
+ <li>MONO_EVENT_POINTER_EVENT
+</ul>
+</td>
+</tr>
+
+<td>Event</td><td>MONO_TABLE_EVENT</td><td>
+Array size: MONO_EVENT_SIZE
+<ul>
+ <li>MONO_EVENT_FLAGS
+ <li>MONO_EVENT_NAME
+ <li>MONO_EVENT_TYPE
+</ul>
+</td>
+</tr>
+
+<td>ExportedType</td><td>MONO_TABLE_EXPORTEDTYPE</td><td>
+Array size:
+MONO_EXPORTEDTYPE_SIZE
+<ul>
+ <li>MONO_EXP_TYPE_FLAGS
+ <li>MONO_EXP_TYPE_TYPEDEF
+ <li>MONO_EXP_TYPE_NAME
+ <li>MONO_EXP_TYPE_NAMESPACE
+ <li>MONO_EXP_TYPE_IMPLEMENTATION
+</ul>
+</td>
+</tr>
+
+<td>Field</td><td>MONO_TABLE_FIELD</td><td>
+Array size: MONO_FIELD_SIZE
+<ul>
+ <li>MONO_FIELD_FLAGS
+ <li>MONO_FIELD_NAME
+ <li>MONO_FIELD_SIGNATURE
+</ul>
+</td>
+</tr>
+
+<td>FieldLayoutt</td><td>MONO_TABLE_FIELDLAYOUT</td><td>
+Array size:
+MONO_FIELDLAYOUT_SIZE
+<ul>
+ <li>MONO_FIELD_LAYOUT_OFFSET
+ <li>MONO_FIELD_LAYOUT_FIELD
+</ul>
+</td>
+</tr>
+
+<td>FieldMarshal</td><td>MONO_TABLE_FIELDMARSHAL</td><td>
+Array size:
+MONO_FIELD_MARSHAL_SIZE
+<ul>
+ <li>MONO_FIELD_MARSHAL_PARENT
+ <li>MONO_FIELD_MARSHAL_NATIVE_TYPE
+</ul>
+</td>
+</tr>
+
+<td>FieldPtr</td><td>MONO_TABLE_FIELD_POINTER</td><td>
+Array size:
+MONO_FIELD_POINTER_SIZE
+<ul>
+ <li>MONO_FIELD_POINTER_FIELD
+</ul>
+</td>
+</tr>
+
+<td>FieldRVA</td><td>MONO_TABLE_FIELDRVA</td><td>
+Array size:
+MONO_FIELDRVA_SIZE
+<ul>
+ <li>MONO_FIELD_RVA_RVA
+ <li>MONO_FIELD_RVA_FIELD
+</ul>
+</td>
+</tr>
+
+<td>File</td><td>MONO_TABLE_FILE</td><td>
+Array size: MONO_FILE_SIZE
+<ul>
+ <li>MONO_FILE_FLAGS
+ <li>MONO_FILE_NAME
+ <li>MONO_FILE_HASH_VALUE
+</ul>
+</td>
+</tr>
+
+<td>GenericParam</td><td>MONO_TABLE_GENERICPARAM</td><td>
+Array size:
+MONO_GENERICPARAM_SIZE
+<ul>
+ <li>MONO_GENERICPARAM_NUMBER
+ <li>MONO_GENERICPARAM_FLAGS
+ <li>MONO_GENERICPARAM_OWNER
+ <li>MONO_GENERICPARAM_NAME
+</ul>
+</td>
+</tr>
+
+<td>GenericParamConstraint</td><td>MONO_TABLE_GENERICPARAMCONSTRAINT</td><td>Array
+size: MONO_GENERICPARAMCONSTRAINT_SIZE
+<ul>
+ <li>MONO_GENPARCONSTRAINT_GENERICPAR
+ <li>MONO_GENPARCONSTRAINT_CONSTRAINT
+</ul>
+</td>
+
+<tr>
+<td>ImplMap</td><td>MONO_TABLE_IMPLMAP</td><td>
+Array size:
+MONO_IMPLMAP_SIZE
+<ul>
+ <li>MONO_IMPLMAP_FLAGS
+ <li>MONO_IMPLMAP_MEMBER
+ <li>MONO_IMPLMAP_NAME
+ <li>MONO_IMPLMAP_SCOPE
+</ul>
+</td>
+</tr>
+
+
+<td>InterfaceImpl</td><td>MONO_TABLE_INTERFACEIMPL</td><td>
+Array size:
+ <li>MONO_INTERFACEIMPL_SIZE
+<ul>
+ <li>MONO_INTERFACEIMPL_CLASS
+ <li>MONO_INTERFACEIMPL_INTERFACE
+</ul>
+</td>
+</tr>
+
+
+<td>ManifestResource</td><td>MONO_TABLE_MANIFESTRESOURCE</td><td>Array
+size: MONO_MANIFESTRESOURCE_SIZE
+<ul>
+ <li>MONO_MANIFEST_OFFSET
+ <li>MONO_MANIFEST_FLAGS
+ <li>MONO_MANIFEST_NAME
+ <li>MONO_MANIFEST_IMPLEMENTATION
+</ul>
+</td>
+</tr>
+
+<tr>
+<td>MemberRef</td><td>MONO_TABLE_MEMBERREF</td><td>
+Array size:
+MONO_MEMBERREF_SIZE
+<ul>
+ <li>MONO_MEMBERREF_CLASS
+ <li>MONO_MEMBERREF_NAME
+ <li>MONO_MEMBERREF_SIGNATURE
+</ul>
+</td>
+</tr>
+
+<td>MethodImpl</td><td>MONO_TABLE_METHODIMPL</td><td>
+Array size:
+MONO_METHODIMPL_SIZE
+<ul>
+ <li>MONO_METHODIMPL_CLASS
+ <li>MONO_METHODIMPL_BODY
+ <li>MONO_METHODIMPL_DECLARATION
+</ul>
+</td>
+</tr>
+
+
+<td>MethodSpec</td><td>MONO_TABLE_METHODSPEC</td><td>
+Array size:
+MONO_METHODSPEC_SIZE
+<ul>
+ <li>MONO_METHODSPEC_METHOD
+ <li>MONO_METHODSPEC_SIGNATURE
+</ul>
+</td>
+</tr>
+<tr>
+<td>MethodSemantics</td><td>MONO_TABLE_METHODSEMANTICS</td><td>Array
+size: MONO_METHOD_SEMA_SIZE
+<ul>
+ <li>MONO_METHOD_SEMA_SEMANTICS
+ <li>MONO_METHOD_SEMA_METHOD
+ <li>MONO_METHOD_SEMA_ASSOCIATION
+</ul>
+</td>
+</tr>
+
+<td>Moduleref</td><td>MONO_TABLE_MODULEREF</td><td>
+Array size:
+MONO_MODULEREF_SIZE
+<ul>
+ <li>MONO_MODULEREF_NAME
+</ul>
+</td>
+</tr>
+
+<tr>
+<td>Module</td><td>MONO_TABLE_MODULE</td><td>
+Array size:
+MONO_MODULE_SIZE
+<br>
+Columns:
+<ul>
+ <li>MONO_MODULE_GENERATION
+ <li>MONO_MODULE_NAME
+ <li>MONO_MODULE_MVID
+ <li>MONO_MODULE_ENC
+ <li>MONO_MODULE_ENCBASE
+</ul>
+</td>
+</tr>
+
+<td>TypeRef</td><td>MONO_TABLE_TYPEREF</td><td>
+Array size:
+MONO_TYPEREF_SIZE
+<ul>
+ <li>MONO_TYPEREF_SCOPE
+ <li>MONO_TYPEREF_NAME
+ <li>MONO_TYPEREF_NAMESPACE
+</ul>
+</td>
+</tr>
+
+<tr>
+<td>MethodPtr</td><td>MONO_TABLE_METHOD_POINTER</td><td>
+Array size:
+MONO_METHOD_POINTER_SIZE
+<ul>
+ <li>MONO_METHOD_POINTER_METHOD
+</ul>
+</td>
+</tr>
+
+<td>Method</td><td>MONO_TABLE_METHOD</td><td>
+Array size:
+MONO_METHOD_SIZE
+<ul>
+ <li>MONO_METHOD_RVA
+ <li>MONO_METHOD_IMPLFLAGS
+ <li>MONO_METHOD_FLAGS
+ <li>MONO_METHOD_NAME
+ <li>MONO_METHOD_SIGNATURE
+ <li>MONO_METHOD_PARAMLIST
+</ul>
+</td>
+</tr>
+
+<tr>
+<td>NestedClass</td><td>MONO_TABLE_NESTEDCLASS</td><td>
+Array size:
+MONO_NESTEDCLASS_SIZE
+<ul>
+ <li>MONO_NESTED_CLASS_NESTED
+ <li>MONO_NESTED_CLASS_ENCLOSING
+</ul>
+</td>
+</tr>
+
+<tr>
+<td>ParamPtr</td><td>MONO_TABLE_PARAM_POINTER</td><td>
+Array size:
+MONO_PARAM_POINTER_SIZE
+<ul>
+ <li>MONO_PARAM_POINTER_PARAM
+</ul>
+</td>
+</tr>
+
+<td>Param</td><td>MONO_TABLE_PARAM</td><td>
+Array size: MONO_PARAM_SIZE
+<ul>
+ <li>MONO_PARAM_FLAGS
+ <li>MONO_PARAM_SEQUENCE
+ <li>MONO_PARAM_NAME
+</ul>
+</td>
+</tr>
+
+<td>PropertyMap</td><td>MONO_TABLE_PROPERTYMAP</td><td>
+Array size:
+MONO_PROPERTY_MAP_SIZE
+<ul>
+ <li>MONO_PROPERTY_MAP_PARENT
+ <li>MONO_PROPERTY_MAP_PROPERTY_LIST
+</ul>
+</td>
+</tr>
+
+<td>PropertyPtr</td><td>MONO_TABLE_PROPERTY_POINTER</td><td>Array
+size: MONO_PROPERTY_POINTER_SIZE
+<ul>
+ <li>MONO_PROPERTY_POINTER_PROPERTY
+</ul>
+</td>
+</tr>
+
+<td>Property</td><td>MONO_TABLE_PROPERTY</td><td>
+Array size:
+MONO_PROPERTY_SIZE
+<ul>
+ <li>MONO_PROPERTY_FLAGS
+ <li>MONO_PROPERTY_NAME
+ <li>MONO_PROPERTY_TYPE
+</ul>
+</td>
+</tr>
+<tr>
+<td>StandaloneSig</td><td>MONO_TABLE_STANDALONESIG</td><td>
+Array size:
+ <li>MONO_STAND_ALONE_SIGNATURE_SIZE
+<ul>
+ <li>MONO_STAND_ALONE_SIGNATURE
+</ul>
+</td>
+</tr>
+
+<tr>
+<td>TypeDef</td><td>MONO_TABLE_TYPEDEF</td><td>
+Array size:
+MONO_TYPEDEF_SIZE
+<ul>
+ <li>MONO_TYPEDEF_FLAGS
+ <li>MONO_TYPEDEF_NAME
+ <li>MONO_TYPEDEF_NAMESPACE
+ <li>MONO_TYPEDEF_EXTENDS
+ <li>MONO_TYPEDEF_FIELD_LIST
+ <li>MONO_TYPEDEF_METHOD_LIST
+</ul>
+</td>
+</tr>
+
+<tr>
+<td>TypeSpec</td><td>MONO_TABLE_TYPESPEC</td><td>
+Array size:
+MONO_TYPESPEC_SIZE
+<ul>
+ <li>MONO_TYPESPEC_SIGNATURE
+</ul>
+</td>
+</tr>
+
+ </table>
+ </center>
+
+ <p>Each table can contain zero or more rows, you must call the
+ <a href="#api:mono_metadata_table_rows">mono_metadata_table_rows</a>
+ to obtain the number of rows in a table, and then you can
+ extract individual row values by using
+ the <a href="#api:mono_metadata_decode_row">mono_metadata_decode_row</a>
+ or
+ the <a href="#api:mono_metadata_decode_row_col">mono_metadata_decode_row_col</a>.
+ When decoding rows you must provide an guint32 array large
+ enough to hold as many columns as the table contains.
+
+ <p>The metadata tables are stored in the MonoImage, you obtain
+ a pointer to the MonoTableInfo by calling
+ the <a href="#api:mono_image_get_table_info">mono_image_get_table_info</a>
+ and then you can scan those tables, for example:
+
+ <pre class="prettyprint">
+ /*
+ * Dumps a few fields from the AssemblyRef table
+ */
+ void DumpAssemblyRefs (MonoImage *image)
+ {
+ /* Get a pointer to the AssemblyRef metadata table */
+ MonoTableInfo *t = mono_image_get_table_info (image, MONO_TABLE_ASSEMBLYREF);
+
+ /* Fetch the number of rows available in the table */
+ int rows = mono_table_info_get_rows (t);
+ int i;
+
+ /* For each row, print some of its values */
+ for (i = 0; i &lt; rows; i++){
+ /* Space where we extract one row from the metadata table */
+ guint32 cols [MONO_ASSEMBLYREF_SIZE];
+
+ /* Extract the row into the array cols */
+ mono_metadata_decode_row (t, i, cols, MONO_ASSEMBLYREF_SIZE);
+
+ fprintf (output, "%d: Version=%d.%d.%d.%d\n\tName=%s\n", i + 1,
+ cols [MONO_ASSEMBLYREF_MAJOR_VERSION],
+ cols [MONO_ASSEMBLYREF_MINOR_VERSION],
+ cols [MONO_ASSEMBLYREF_BUILD_NUMBER],
+ cols [MONO_ASSEMBLYREF_REV_NUMBER],
+ mono_metadata_string_heap (image, cols [MONO_ASSEMBLYREF_NAME]));
+ }
+ }
+ </pre>
+
+ <p>The above program shows the following output when ran on
+ the C# compiler:
+
+ <pre>
+ 1: Version=1.0.5000.0
+ Name=mscorlib
+ 2: Version=1.0.5000.0
+ Name=System
+ 3: Version=1.0.5000.0
+ Name=System.Xml
+ </pre>
+
+ <p>
+
+<h3>Metadata Tables API</h3>
+
+ <p>These are the APIs for dealing with tables:
+
+<h4><a name="api:mono_image_get_table_info">mono_image_get_table_info</a></h4>
+<h4><a name="api:mono_image_get_table_rows">mono_image_get_table_rows</a></h4>
+<h4><a name="api:mono_metadata_get_table">mono_metadata_get_table</a></h4>
+<h4><a name="api:mono_meta_table_name">mono_meta_table_name</a></h4>
+<h4><a name="api:mono_metadata_decode_row_col">mono_metadata_decode_row_col</a></h4>
+<h4><a name="api:mono_metadata_decode_row">mono_metadata_decode_row</a></h4>
+<h4><a name="api:mono_metadata_compute_size">mono_metadata_compute_size</a></h4>
+<h4><a name="api:mono_metadata_custom_attrs_from_index">mono_metadata_custom_attrs_from_index</a></h4>
+<h4><a name="api:mono_metadata_decode_signed_value">mono_metadata_decode_signed_value</a></h4>
+<h4><a name="api:mono_metadata_decode_value">mono_metadata_decode_value</a></h4>
+<h4><a name="api:mono_metadata_encode_value">mono_metadata_encode_value</a></h4>
+
+<h2>Metadata access API</h2>
+
+ <p>This is the low-level API for accessing the metadata
+ images.
+
+<h4><a name="api:mono_cli_rva_image_map">mono_cli_rva_image_map</a></h4>
+<h4><a name="api:mono_pe_file_open">mono_pe_file_open</a></h4>
+<h4><a name="api:mono_metadata_events_from_typedef">mono_metadata_events_from_typedef</a></h4>
+<h4><a name="api:mono_metadata_field_info">mono_metadata_field_info</a></h4>
+<h4><a name="api:mono_metadata_free_array">mono_metadata_free_array</a></h4>
+<h4><a name="api:mono_metadata_free_marshal_spec">mono_metadata_free_marshal_spec</a></h4>
+<h4><a name="api:mono_metadata_free_mh">mono_metadata_free_mh</a></h4>
+<h4><a name="api:mono_metadata_free_type">mono_metadata_free_type</a></h4>
+<h4><a name="api:mono_metadata_get_constant_index">mono_metadata_get_constant_index</a></h4>
+<h4><a name="api:mono_metadata_get_marshal_info">mono_metadata_get_marshal_info</a></h4>
+<h4><a name="api:mono_metadata_implmap_from_method">mono_metadata_implmap_from_method</a></h4>
+<h4><a name="api:mono_metadata_interfaces_from_typedef_full">mono_metadata_interfaces_from_typedef_full</a></h4>
+<h4><a name="api:mono_metadata_interfaces_from_typedef">mono_metadata_interfaces_from_typedef</a></h4>
+<h4><a name="api:mono_metadata_locate">mono_metadata_locate</a></h4>
+<h4><a name="api:mono_metadata_locate_token">mono_metadata_locate_token</a></h4>
+<h4><a name="api:mono_metadata_methods_from_event">mono_metadata_methods_from_event</a></h4>
+<h4><a name="api:mono_metadata_methods_from_property">mono_metadata_methods_from_property</a></h4>
+<h4><a name="api:mono_metadata_nested_in_typedef">mono_metadata_nested_in_typedef</a></h4>
+<h4><a name="api:mono_metadata_nesting_typedef">mono_metadata_nesting_typedef</a></h4>
+<h4><a name="api:mono_metadata_packing_from_typedef">mono_metadata_packing_from_typedef</a></h4>
+<h4><a name="api:mono_metadata_properties_from_typedef">mono_metadata_properties_from_typedef</a></h4>
+<h4><a name="api:mono_metadata_token_from_dor">mono_metadata_token_from_dor</a></h4>
+<h4><a name="api:mono_metadata_typedef_from_field">mono_metadata_typedef_from_field</a></h4>
+<h4><a name="api:mono_metadata_typedef_from_method">mono_metadata_typedef_from_method</a></h4>
+<h4><a name="api:mono_metadata_type_equal">mono_metadata_type_equal</a></h4>
+<h4><a name="api:mono_metadata_type_hash">mono_metadata_type_hash</a></h4>
+<h4><a name="api:mono_metadata_declsec_from_index">mono_metadata_declsec_from_index</a></h4>
+<h4><a name="api:mono_metadata_free_method_signature">mono_metadata_free_method_signature</a></h4>
+
+<h3>Retrieving Objects from Tokens</h3>
+
+<h4><a name="api:mono_metadata_parse_custom_mod">mono_metadata_parse_custom_mod</a></h4>
+<h4><a name="api:mono_metadata_parse_field_type">mono_metadata_parse_field_type</a></h4>
+<h4><a name="api:mono_metadata_parse_marshal_spec">mono_metadata_parse_marshal_spec</a></h4>
+<h4><a name="api:mono_metadata_parse_method_signature_full">mono_metadata_parse_method_signature_full</a></h4>
+<h4><a name="api:mono_metadata_parse_method_signature">mono_metadata_parse_method_signature</a></h4>
+<h4><a name="api:mono_metadata_parse_mh_full">mono_metadata_parse_mh_full</a></h4>
+<h4><a name="api:mono_metadata_parse_mh">mono_metadata_parse_mh</a></h4>
+<h4><a name="api:mono_metadata_parse_param">mono_metadata_parse_param</a></h4>
+<h4><a name="api:mono_metadata_parse_signature_full">mono_metadata_parse_signature_full</a></h4>
+<h4><a name="api:mono_metadata_parse_signature">mono_metadata_parse_signature</a></h4>
+<h4><a name="api:mono_metadata_parse_typedef_or_ref">mono_metadata_parse_typedef_or_ref</a></h4>
+<h4><a name="api:mono_metadata_parse_type_full">mono_metadata_parse_type_full</a></h4>
+<h4><a name="api:mono_metadata_parse_type">mono_metadata_parse_type</a></h4>
+
+<h2>Metadata Loader Locking</h2>
+
+ <p>The locking functions here are used by code in class.c and
+ metadata.c to lock access to the shared hashtables inside the
+ MonoImage.
+
+<h4><a name="api:mono_loader_lock">mono_loader_lock</a></h4>
+<h4><a name="api:mono_loader_unlock">mono_loader_unlock</a></h4>
+
+<h2>Generics Support</h2>
+
+<h4><a name="api:mono_metadata_generic_class_is_valuetype">mono_metadata_generic_class_is_valuetype</a></h4>
+<h4><a name="api:mono_metadata_has_generic_params">mono_metadata_has_generic_params</a></h4>
+<h4><a name="api:mono_metadata_inflate_generic_inst">mono_metadata_inflate_generic_inst</a></h4>
+<h4><a name="api:mono_metadata_parse_generic_inst">mono_metadata_parse_generic_inst</a></h4>
+<h4><a name="api:mono_metadata_generic_inst_equal">mono_metadata_generic_inst_equal</a></h4>
+<h4><a name="api:mono_metadata_generic_inst_hash">mono_metadata_generic_inst_hash</a></h4>
+<h4><a name="api:mono_metadata_load_generic_params">mono_metadata_load_generic_params</a></h4>
+<h4><a name="api:mono_metadata_generic_inst_is_valuetype">mono_metadata_generic_inst_is_valuetype</a></h4>
+<h4><a name="api:mono_metadata_generic_method_equal">mono_metadata_generic_method_equal</a></h4>
+
+<h2>Tokens</h2>
+
+<h4><a name="api:mono_ldtoken">mono_ldtoken</a></h4>
+<h4><a name="api:mono_lookup_dynamic_token">mono_lookup_dynamic_token</a></h4>
+<h4><a name="api:mono_ldstr">mono_ldstr</a></h4>
+<h4><a name="api:mono_exception_from_token">mono_exception_from_token</a></h4>
+<h4><a name="api:mono_create_jit_trampoline_from_token">mono_create_jit_trampoline_from_token</a></h4>
+
+<h2>OpCodes</h2>
+
+<h4><a name="api:mono_opcode_name">mono_opcode_name</a></h4>
+<h4><a name="api:mono_opcode_value">mono_opcode_value</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>
diff --git a/docs/sources/mono-api-methods.html b/docs/sources/mono-api-methods.html
new file mode 100644
index 0000000000..4f34fcc7e8
--- /dev/null
+++ b/docs/sources/mono-api-methods.html
@@ -0,0 +1,78 @@
+<h3>Methods</h3>
+
+<h3>Invoking Methods</h3>
+
+<h4><a name="api:mono_runtime_invoke">mono_runtime_invoke</a></h4>
+
+If you want to invoke generic methods, you must call the method on the
+"inflated" class, which you can obtain from the
+<tt>mono_object_get_class()</tt>
+
+<div class="code">
+MonoClass *clazz;
+MonoMethod *method;
+
+clazz = mono_object_get_class (obj);
+
+/*
+ * If there are more Add methods declared, you
+ * may use mono_method_desc_search_in_class (clazz, ":Add(T)"),
+ * you must substitute ":Add(T)" with the correct type, for example
+ * for List&lt;int&gt;, you would use ":Add(int)".
+ */
+method = mono_class_get_method_from_name (clazz, "Add", 1);
+mono_runtime_invoke (method, obj, args, &amp;exception);
+</div>
+
+
+<h4><a name="api:mono_runtime_invoke_array">mono_runtime_invoke_array</a></h4>
+<h4><a name="api:mono_remoting_invoke">mono_remoting_invoke</a></h4>
+<h4><a name="api:mono_runtime_delegate_invoke">mono_runtime_delegate_invoke</a></h4>
+
+<h4><a name="api:mono_method_call_message_new">mono_method_call_message_new</a></h4>
+<h4><a name="api:mono_method_desc_free">mono_method_desc_free</a></h4>
+<h4><a name="api:mono_method_desc_from_method">mono_method_desc_from_method</a></h4>
+<h4><a name="api:mono_method_desc_full_match">mono_method_desc_full_match</a></h4>
+<h4><a name="api:mono_method_desc_match">mono_method_desc_match</a></h4>
+<h4><a name="api:mono_method_desc_new">mono_method_desc_new</a></h4>
+<h4><a name="api:mono_method_desc_search_in_class">mono_method_desc_search_in_class</a></h4>
+<h4><a name="api:mono_method_desc_search_in_image">mono_method_desc_search_in_image</a></h4>
+<h4><a name="api:mono_method_full_name">mono_method_full_name</a></h4>
+<h4><a name="api:mono_method_get_class">mono_method_get_class</a></h4>
+<h4><a name="api:mono_method_get_flags">mono_method_get_flags</a></h4>
+<h4><a name="api:mono_method_get_last_managed">mono_method_get_last_managed</a></h4>
+<h4><a name="api:mono_method_get_marshal_info">mono_method_get_marshal_info</a></h4>
+<h4><a name="api:mono_method_get_name">mono_method_get_name</a></h4>
+<h4><a name="api:mono_method_get_object">mono_method_get_object</a></h4>
+<h4><a name="api:mono_method_get_param_names">mono_method_get_param_names</a></h4>
+<h4><a name="api:mono_method_get_param_token">mono_method_get_param_token</a></h4>
+<h4><a name="api:mono_method_get_signature">mono_method_get_signature</a></h4>
+<h4><a name="api:mono_method_get_index">mono_method_get_index</a></h4>
+<h4><a name="api:mono_method_get_signature_full">mono_method_get_signature_full</a></h4>
+<h4><a name="api:mono_method_get_token">mono_method_get_token</a></h4>
+<h4><a name="api:mono_method_get_wrapper_data">mono_method_get_wrapper_data</a></h4>
+<h4><a name="api:mono_method_has_marshal_info">mono_method_has_marshal_info</a></h4>
+<h4><a name="api:mono_method_return_message_restore">mono_method_return_message_restore</a></h4>
+<h4><a name="api:mono_method_same_domain">mono_method_same_domain</a></h4>
+<h4><a name="api:mono_method_verify">mono_method_verify</a></h4>
+
+<h3>Method Signatures</h3>
+
+<h4><a name="api:mono_method_signature">mono_method_signature</a></h4>
+<h4><a name="api:mono_signature_explicit_this">mono_signature_explicit_this</a></h4>
+<h4><a name="api:mono_signature_get_call_conv">mono_signature_get_call_conv</a></h4>
+<h4><a name="api:mono_signature_get_desc">mono_signature_get_desc</a></h4>
+<h4><a name="api:mono_signature_get_param_count">mono_signature_get_param_count</a></h4>
+<h4><a name="api:mono_signature_get_params">mono_signature_get_params</a></h4>
+<h4><a name="api:mono_signature_get_return_type">mono_signature_get_return_type</a></h4>
+<h4><a name="api:mono_signature_hash">mono_signature_hash</a></h4>
+<h4><a name="api:mono_signature_is_instance">mono_signature_is_instance</a></h4>
+<h4><a name="api:mono_signature_vararg_start">mono_signature_vararg_start</a></h4>
+
+<h3>Methods Header Operations</h3>
+
+<h4><a name="api:mono_method_get_header">mono_method_get_header</a></h4>
+<h4><a name="api:mono_method_header_get_clauses">mono_method_header_get_clauses</a></h4>
+<h4><a name="api:mono_method_header_get_code">mono_method_header_get_code</a></h4>
+<h4><a name="api:mono_method_header_get_locals">mono_method_header_get_locals</a></h4>
+<h4><a name="api:mono_method_header_get_num_clauses">mono_method_header_get_num_clauses</a></h4>
diff --git a/docs/sources/mono-api-object.html b/docs/sources/mono-api-object.html
new file mode 100644
index 0000000000..2878a5844b
--- /dev/null
+++ b/docs/sources/mono-api-object.html
@@ -0,0 +1,214 @@
+<h1>Object API</h1>
+
+ <p>The object API deals with all the operations shared by
+ <a href="#objects">objects</a>, <a href="#valuetypes">value
+ types</a>, <a href="#arrays">arrays</a> and <a
+ href="#nullable">nullable types</a>.
+
+ <p>The object API has methods for accessing <a
+ href="#fields">fields</a>, <a
+ href="#properties">properties</a>, <a
+ href="#events">events</a>, <a href="#delegates">delegates</a>.
+
+ <p>There are some advanced uses that are useful to document
+ here dealing with <a href="#async">AsyncResults</a> and <a
+ href="#remote">remote fields</a>.
+
+<h2>Synopsis</h2>
+
+<div class="header">
+#include &lt;metadata/object.h&gt;
+
+typedef struct MonoVTable MonoVTable;
+typedef struct _MonoThreadsSync MonoThreadsSync;
+
+typedef struct {
+ MonoVTable *vtable;
+ MonoThreadsSync *synchronisation;
+} MonoObject;
+
+typedef struct {
+ guint32 length;
+ guint32 lower_bound;
+} MonoArrayBounds;
+
+typedef struct {
+ MonoObject obj;
+ /* bounds is NULL for szarrays */
+ MonoArrayBounds *bounds;
+ /* total number of elements of the array */
+ guint32 max_length;
+ /* we use double to ensure proper alignment on platforms that need it */
+ double vector [MONO_ZERO_LEN_ARRAY];
+} MonoArray;
+
+@API_IDX@
+</div>
+
+ <p>MonoObject is the base definition for all managed objects
+ in the Mono runtime, it represents the <a
+ href="http://www.mono-project.com/monodoc/T:System.Object">System.Object</a>
+ managed type.
+
+ <p>All objects that derive from <a
+ href="http://www.mono-project.com/monodoc/T:System.Object">System.Object</a>
+ do have this base definition. Derived objects are declared
+ following the pattern where the parent class is the first
+ field of a structure definition, for example:
+
+ <div class="code">
+ typedef struct {
+ MonoObject parent;
+ int my_new_field;
+ } MyNewObject
+ </div>
+
+<a name="objects"></a>
+<h2>Core Object Methods</h2>
+
+<h4><a name="api:mono_object_new">mono_object_new</a></h4>
+
+ <p>For example, if you wanted to create an object of type
+ System.Version, you would use a piece of code like this:
+
+ <div class="code">
+MonoClass *version_class;
+MonoObject *result;
+
+/* Get the class from mscorlib */
+version_class = mono_class_from_name (mono_get_corlib (),
+ "System", "Version");
+
+/* Create an object of that class */
+result = mono_object_new (mono_domain_get (), version_class);
+ </div>
+
+<h4><a name="api:mono_object_new_alloc_specific">mono_object_new_alloc_specific</a></h4>
+<h4><a name="api:mono_object_new_fast">mono_object_new_fast</a></h4>
+<h4><a name="api:mono_object_new_from_token">mono_object_new_from_token</a></h4>
+<h4><a name="api:mono_object_new_specific">mono_object_new_specific</a></h4>
+<h4><a name="api:mono_object_clone">mono_object_clone</a></h4>
+<h4><a name="api:mono_object_get_class">mono_object_get_class</a></h4>
+<h4><a name="api:mono_object_get_domain">mono_object_get_domain</a></h4>
+<h4><a name="api:mono_object_get_virtual_method">mono_object_get_virtual_method</a></h4>
+<h4><a name="api:mono_object_isinst_mbyref">mono_object_isinst_mbyref</a></h4>
+<h4><a name="api:mono_object_isinst">mono_object_isinst</a></h4>
+<h4><a name="api:mono_object_register_finalizer">mono_object_register_finalizer</a></h4>
+<h4><a name="api:mono_object_unbox">mono_object_unbox</a></h4>
+<h4><a name="api:mono_object_castclass_mbyref">mono_object_castclass_mbyref</a></h4>
+<h4><a name="api:mono_object_is_alive">mono_object_is_alive</a></h4>
+<h4><a name="api:mono_object_get_size">mono_object_get_size</a></h4>
+
+<a name="valuetypes"></a>
+<h2>Value Types</h2>
+
+<h4><a name="api:mono_value_box">mono_value_box</a></h4>
+<h4><a name="api:mono_value_copy">mono_value_copy</a></h4>
+<h4><a name="api:mono_value_copy_array">mono_value_copy_array</a></h4>
+
+<a name="arrays"></a>
+<h2>Array Methods</h2>
+
+ <p>Use the <tt>mono_array_new_*</tt> methods to create arrays
+ of a given type.
+
+ <p>For example, the following code creates an array with two
+ elements of type <tt>System.Byte</tt>, and sets the values
+ 0xca and 0xfe on it:
+
+ <pre class="code">
+
+ MonoArray *CreateByteArray (MonoDomain *domain)
+ {
+ MonoArray *data;
+
+ data = mono_array_new (domain, mono_get_byte_class (), 2);
+ mono_array_set (data, guint8, 0, 0xca);
+ mono_array_set (data, guint8, 0, 0xfe);
+
+ return data;
+ }
+
+ </pre>
+
+<h3>Creating Arrays</h3>
+
+<h4><a name="api:mono_array_new">mono_array_new</a></h4>
+<h4><a name="api:mono_array_new_full">mono_array_new_full</a></h4>
+<h4><a name="api:mono_array_new_specific">mono_array_new_specific</a></h4>
+<h4><a name="api:mono_array_class_get">mono_array_class_get</a></h4>
+<h4><a name="api:mono_array_clone_in_domain">mono_array_clone_in_domain</a></h4>
+<h4><a name="api:mono_array_clone">mono_array_clone</a></h4>
+<h4><a name="api:mono_array_full_copy">mono_array_full_copy</a></h4>
+<h4><a name="api:mono_array_to_lparray">mono_array_to_lparray</a></h4>
+<h4><a name="api:mono_array_to_savearray">mono_array_to_savearray</a></h4>
+<h4><a name="api:mono_dup_array_type">mono_dup_array_type</a></h4>
+
+<h3>Using Arrays</h3>
+
+<h4><a name="api:mono_array_set">mono_array_set</a></h4>
+<h4><a name="api:mono_array_setref">mono_array_setref</a></h4>
+<h4><a name="api:mono_array_length">mono_array_length</a></h4>
+<h4><a name="api:mono_array_addr">mono_array_addr</a></h4>
+<h4><a name="api:mono_array_addr_with_size">mono_array_addr_with_size</a></h4>
+<h4><a name="api:mono_array_get">mono_array_get</a></h4>
+<h4><a name="api:mono_array_element_size">mono_array_element_size</a></h4>
+
+<a name="fields"></a>
+<h2>Fields</h2>
+
+<h4><a name="api:mono_field_from_token">mono_field_from_token</a></h4>
+<h4><a name="api:mono_field_get_flags">mono_field_get_flags</a></h4>
+<h4><a name="api:mono_field_get_name">mono_field_get_name</a></h4>
+<h4><a name="api:mono_field_get_parent">mono_field_get_parent</a></h4>
+<h4><a name="api:mono_field_get_type">mono_field_get_type</a></h4>
+<h4><a name="api:mono_field_get_value">mono_field_get_value</a></h4>
+<h4><a name="api:mono_field_get_value_object">mono_field_get_value_object</a></h4>
+<h4><a name="api:mono_field_set_value">mono_field_set_value</a></h4>
+<h4><a name="api:mono_field_static_get_value">mono_field_static_get_value</a></h4>
+<h4><a name="api:mono_field_static_set_value">mono_field_static_set_value</a></h4>
+
+<a name="properties"></a>
+<h2>Properties</h2>
+
+<h4><a name="api:mono_property_get_flags">mono_property_get_flags</a></h4>
+<h4><a name="api:mono_property_get_get_method">mono_property_get_get_method</a></h4>
+<h4><a name="api:mono_property_get_name">mono_property_get_name</a></h4>
+<h4><a name="api:mono_property_get_parent">mono_property_get_parent</a></h4>
+<h4><a name="api:mono_property_get_set_method">mono_property_get_set_method</a></h4>
+<h4><a name="api:mono_property_get_value">mono_property_get_value</a></h4>
+<h4><a name="api:mono_property_set_value">mono_property_set_value</a></h4>
+
+<a name="events"></a>
+<h2>Events</h2>
+
+<h4><a name="api:mono_event_get_add_method">mono_event_get_add_method</a></h4>
+<h4><a name="api:mono_event_get_flags">mono_event_get_flags</a></h4>
+<h4><a name="api:mono_event_get_name">mono_event_get_name</a></h4>
+<h4><a name="api:mono_event_get_parent">mono_event_get_parent</a></h4>
+<h4><a name="api:mono_event_get_raise_method">mono_event_get_raise_method</a></h4>
+<h4><a name="api:mono_event_get_remove_method">mono_event_get_remove_method</a></h4>
+
+<a name="delegates"></a>
+<h2>Delegates</h2>
+<h4><a name="api:mono_delegate_ctor">mono_delegate_ctor</a></h4>
+
+<a name="async"></a>
+<h2>AsyncResults</h2>
+<h4><a name="api:mono_async_result_new">mono_async_result_new</a></h4>
+
+<a name="remote"></a>
+<h2>Remote Fields</h2>
+<h4><a name="api:mono_load_remote_field">mono_load_remote_field</a></h4>
+<h4><a name="api:mono_load_remote_field_new">mono_load_remote_field_new</a></h4>
+<h4><a name="api:mono_store_remote_field">mono_store_remote_field</a></h4>
+<h4><a name="api:mono_store_remote_field_new">mono_store_remote_field_new</a></h4>
+
+<a name="nullable"></a>
+<h2>Nullable Objects</h2>
+
+ <p>These methods are used to manipulate objects of type
+ System.Nullable&lt;T&gt;
+
+<h4><a name="api:mono_nullable_box">mono_nullable_box</a></h4>
+<h4><a name="api:mono_nullable_init">mono_nullable_init</a></h4>
diff --git a/docs/sources/mono-api-profiler.html b/docs/sources/mono-api-profiler.html
new file mode 100644
index 0000000000..fb51ef2e0f
--- /dev/null
+++ b/docs/sources/mono-api-profiler.html
@@ -0,0 +1,73 @@
+<h1>Profiling Interface</h1>
+
+<h3>Profiler Operation</h3>
+
+ <p>The following methods can be used by dynamic profiler
+ methods to monitor different aspects of the program.
+
+ <p>A custom profiler will have one public method defined in
+ the shared library which is the entry point that Mono calls at
+ startup, it has the following signature:
+
+ <pre>
+ void mono_profiler_startup (const char *desc)
+ </pre>
+
+ <p>Where "desc" is the set of arguments that were passed from
+ the command line. This routine will call
+ <tt>mono_profiler_install</tt> to activate the profiler and
+ will install one or more filters (one of the various
+ <tt>mono_profiler_install_</tt> functions).
+
+ <p>In addition, a profiler developer will typically call
+ <tt>mono_profiler_set_events</tt> to register which kinds of
+ traces should be enabled, these can be an OR-ed combination of
+ the following:
+
+ <pre>
+ MONO_PROFILE_NONE
+ MONO_PROFILE_APPDOMAIN_EVENTS
+ MONO_PROFILE_ASSEMBLY_EVENTS
+ MONO_PROFILE_MODULE_EVENTS
+ MONO_PROFILE_CLASS_EVENTS
+ MONO_PROFILE_JIT_COMPILATION
+ MONO_PROFILE_INLINING
+ MONO_PROFILE_EXCEPTIONS
+ MONO_PROFILE_ALLOCATIONS
+ MONO_PROFILE_GC
+ MONO_PROFILE_THREADS
+ MONO_PROFILE_REMOTING
+ MONO_PROFILE_TRANSITIONS
+ MONO_PROFILE_ENTER_LEAVE
+ MONO_PROFILE_COVERAGE
+ MONO_PROFILE_INS_COVERAGE
+ MONO_PROFILE_STATISTICAL
+ </pre>
+
+ <p>Developers can change the set of monitored events at
+ runtime by calling <tt>mono_profiler_set_events</tt>.
+
+<h4><a name="api:mono_profiler_install">mono_profiler_install</a></h4>
+<h4><a name="api:mono_profiler_install_allocation">mono_profiler_install_allocation</a></h4>
+<h4><a name="api:mono_profiler_install_appdomain">mono_profiler_install_appdomain</a></h4>
+<h4><a name="api:mono_profiler_install_assembly">mono_profiler_install_assembly</a></h4>
+<h4><a name="api:mono_profiler_install_class">mono_profiler_install_class</a></h4>
+<h4><a name="api:mono_profiler_install_coverage_filter">mono_profiler_install_coverage_filter</a></h4>
+<h4><a name="api:mono_profiler_install_enter_leave">mono_profiler_install_enter_leave</a></h4>
+<h4><a name="api:mono_profiler_install_jit_compile">mono_profiler_install_jit_compile</a></h4>
+<h4><a name="api:mono_profiler_install_module">mono_profiler_install_module</a></h4>
+<h4><a name="api:mono_profiler_install_thread">mono_profiler_install_thread</a></h4>
+<h4><a name="api:mono_profiler_install_transition">mono_profiler_install_transition</a></h4>
+<h4><a name="api:mono_profiler_install_gc">mono_profiler_install_gc</a></h4>
+<h4><a name="api:mono_profiler_install_statistical">mono_profiler_install_statistical</a></h4>
+<h4><a name="api:mono_profiler_set_events">mono_profiler_set_events</a></h4>
+<h4><a name="api:mono_profiler_get_events">mono_profiler_get_events</a></h4>
+
+<h3>Coverage</h3>
+
+ <p>To support profiling modules that need to do code coverage
+ analysis, the following routines is provided:
+
+<h4><a name="api:mono_profiler_coverage_get">mono_profiler_coverage_get</a></h4>
+
+
diff --git a/docs/sources/mono-api-reflection.html b/docs/sources/mono-api-reflection.html
new file mode 100644
index 0000000000..896448e4d0
--- /dev/null
+++ b/docs/sources/mono-api-reflection.html
@@ -0,0 +1,46 @@
+<h4><a name="api:mono_reflection_bind_generic_method_parameters">mono_reflection_bind_generic_method_parameters</a></h4>
+<h4><a name="api:mono_reflection_bind_generic_parameters">mono_reflection_bind_generic_parameters</a></h4>
+<h4><a name="api:mono_reflection_create_dynamic_method">mono_reflection_create_dynamic_method</a></h4>
+<h4><a name="api:mono_reflection_create_generic_class">mono_reflection_create_generic_class</a></h4>
+<h4><a name="api:mono_reflection_create_internal_class">mono_reflection_create_internal_class</a></h4>
+<h4><a name="api:mono_reflection_create_runtime_class">mono_reflection_create_runtime_class</a></h4>
+<h4><a name="api:mono_reflection_event_builder_get_event_info">mono_reflection_event_builder_get_event_info</a></h4>
+<h4><a name="api:mono_reflection_generic_inst_initialize">mono_reflection_generic_inst_initialize</a></h4>
+<h4><a name="api:mono_reflection_get_custom_attrs_blob">mono_reflection_get_custom_attrs_blob</a></h4>
+<h4><a name="api:mono_reflection_get_custom_attrs">mono_reflection_get_custom_attrs</a></h4>
+<h4><a name="api:mono_custom_attrs_get_attr">mono_custom_attrs_get_attr</a></h4>
+<h4><a name="api:mono_reflection_get_token">mono_reflection_get_token</a></h4>
+<h4><a name="api:mono_reflection_get_type">mono_reflection_get_type</a></h4>
+<h4><a name="api:mono_reflection_initialize_generic_parameter">mono_reflection_initialize_generic_parameter</a></h4>
+<h4><a name="api:mono_reflection_lookup_dynamic_token">mono_reflection_lookup_dynamic_token</a></h4>
+<h4><a name="api:mono_reflection_marshal_from_marshal_spec">mono_reflection_marshal_from_marshal_spec</a></h4>
+<h4><a name="api:mono_reflection_parse_type">mono_reflection_parse_type</a></h4>
+<h4><a name="api:mono_reflection_setup_generic_class">mono_reflection_setup_generic_class</a></h4>
+<h4><a name="api:mono_reflection_setup_internal_class">mono_reflection_setup_internal_class</a></h4>
+<h4><a name="api:mono_reflection_sighelper_get_signature_field">mono_reflection_sighelper_get_signature_field</a></h4>
+<h4><a name="api:mono_reflection_sighelper_get_signature_local">mono_reflection_sighelper_get_signature_local</a></h4>
+<h4><a name="api:mono_reflection_type_from_name">mono_reflection_type_from_name</a></h4>
+<h4><a name="api:mono_reflection_generic_class_initialize">mono_reflection_generic_class_initialize</a></h4>
+<h4><a name="api:mono_reflection_get_custom_attrs_info">mono_reflection_get_custom_attrs_info</a></h4>
+
+<h4><a name="api:mono_custom_attrs_construct">mono_custom_attrs_construct</a></h4>
+<h4><a name="api:mono_custom_attrs_free">mono_custom_attrs_free</a></h4>
+<h4><a name="api:mono_custom_attrs_from_assembly">mono_custom_attrs_from_assembly</a></h4>
+<h4><a name="api:mono_custom_attrs_from_class">mono_custom_attrs_from_class</a></h4>
+<h4><a name="api:mono_custom_attrs_from_event">mono_custom_attrs_from_event</a></h4>
+<h4><a name="api:mono_custom_attrs_from_field">mono_custom_attrs_from_field</a></h4>
+<h4><a name="api:mono_custom_attrs_from_index">mono_custom_attrs_from_index</a></h4>
+<h4><a name="api:mono_custom_attrs_from_method">mono_custom_attrs_from_method</a></h4>
+<h4><a name="api:mono_custom_attrs_from_param">mono_custom_attrs_from_param</a></h4>
+<h4><a name="api:mono_custom_attrs_from_property">mono_custom_attrs_from_property</a></h4>
+<h4><a name="api:mono_custom_attrs_has_attr">mono_custom_attrs_has_attr</a></h4>
+
+<h4><a name="api:mono_module_file_get_object">mono_module_file_get_object</a></h4>
+<h4><a name="api:mono_module_get_object">mono_module_get_object</a></h4>
+<h4><a name="api:mono_method_body_get_object">mono_method_body_get_object</a></h4>
+<h4><a name="api:mono_event_get_object">mono_event_get_object</a></h4>
+<h4><a name="api:mono_assembly_get_object">mono_assembly_get_object</a></h4>
+<h4><a name="api:mono_param_get_objects">mono_param_get_objects</a></h4>
+<h4><a name="api:mono_field_get_object">mono_field_get_object</a></h4>
+<h4><a name="api:mono_property_get_object">mono_property_get_object</a></h4>
+<h4><a name="api:mono_type_get_object">mono_type_get_object</a></h4>
diff --git a/docs/sources/mono-api-security.html b/docs/sources/mono-api-security.html
new file mode 100644
index 0000000000..b301dea713
--- /dev/null
+++ b/docs/sources/mono-api-security.html
@@ -0,0 +1,20 @@
+<h3>Security Manager</h3>
+
+<h4><a name="api:mono_is_security_manager_active">mono_is_security_manager_active</a></h4>
+<h4><a name="api:mono_security_manager_get_methods">mono_security_manager_get_methods</a></h4>
+<h4><a name="api:mono_activate_security_manager">mono_activate_security_manager</a></h4>
+<h4><a name="api:mono_is_ecma_key">mono_is_ecma_key</a></h4>
+<h4><a name="api:mono_get_context_capture_method">mono_get_context_capture_method</a></h4>
+
+<h3>Declarative Security</h3>
+
+<h4><a name="api:mono_declsec_flags_from_assembly">mono_declsec_flags_from_assembly</a></h4>
+<h4><a name="api:mono_declsec_flags_from_class">mono_declsec_flags_from_class</a></h4>
+<h4><a name="api:mono_declsec_flags_from_method">mono_declsec_flags_from_method</a></h4>
+<h4><a name="api:mono_declsec_get_assembly_action">mono_declsec_get_assembly_action</a></h4>
+<h4><a name="api:mono_declsec_get_class_action">mono_declsec_get_class_action</a></h4>
+<h4><a name="api:mono_declsec_get_demands">mono_declsec_get_demands</a></h4>
+<h4><a name="api:mono_declsec_get_inheritdemands_class">mono_declsec_get_inheritdemands_class</a></h4>
+<h4><a name="api:mono_declsec_get_inheritdemands_method">mono_declsec_get_inheritdemands_method</a></h4>
+<h4><a name="api:mono_declsec_get_linkdemands">mono_declsec_get_linkdemands</a></h4>
+<h4><a name="api:mono_declsec_get_method_action">mono_declsec_get_method_action</a></h4>
diff --git a/docs/sources/mono-api-string.html b/docs/sources/mono-api-string.html
new file mode 100644
index 0000000000..ce1ff3d4f7
--- /dev/null
+++ b/docs/sources/mono-api-string.html
@@ -0,0 +1,89 @@
+<h2>Strings</h2>
+
+ <p>Strings representation inside the Mono runtime.
+
+<h3>Synopsis</h3>
+
+ <div class="header">
+#include &lt;metadata/object.h&gt;
+
+typedef struct {
+ MonoObject object;
+ gint32 length;
+ gunichar2 chars [0];
+} MonoString;
+
+@API_IDX@
+ </div>
+
+ <p>All of the operations on strings are done on pointers to
+ MonoString objects, like this:
+
+ <div class="code">
+ MonoString *hello = mono_string_new (mono_domain_get (), "hello, world");
+ </div>
+
+ <p>Strings are bound to a particular application domain, which
+ is why it is necessary to pass a MonoDomain argument as the
+ first parameter to all the constructor functions.
+
+ <p>Typically, you want to create the strings on the current
+ application domain, so a call to <tt>mono_domain_get()</tt> is
+ sufficient.
+
+<h3>Constructors</h3>
+
+<h4><a name="api:mono_string_new">mono_string_new</a></h4>
+<h4><a name="api:mono_string_new_len">mono_string_new_len</a></h4>
+<h4><a name="api:mono_string_new_size">mono_string_new_size</a></h4>
+<h4><a name="api:mono_string_new_utf16">mono_string_new_utf16</a></h4>
+<h4><a name="api:mono_string_from_utf16">mono_string_from_utf16</a></h4>
+
+<h3>Conversions</h3>
+
+<h4><a name="api:mono_string_to_byvalstr">mono_string_to_byvalstr</a></h4>
+<h4><a name="api:mono_string_to_byvalwstr">mono_string_to_byvalwstr</a></h4>
+<h4><a name="api:mono_string_to_utf16">mono_string_to_utf16</a></h4>
+<h4><a name="api:mono_string_to_utf8">mono_string_to_utf8</a></h4>
+<h4><a name="api:mono_string_utf16_to_builder">mono_string_utf16_to_builder</a></h4>
+<h4><a name="api:mono_string_utf8_to_builder">mono_string_utf8_to_builder</a></h4>
+
+<h3>Methods</h3>
+
+<h4><a name="api:mono_string_equal">mono_string_equal</a></h4>
+<h4><a name="api:mono_string_hash">mono_string_hash</a></h4>
+<h4><a name="api:mono_string_intern">mono_string_intern</a></h4>
+<h4><a name="api:mono_string_is_interned">mono_string_is_interned</a></h4>
+<h4><a name="api:mono_string_new_wrapper">mono_string_new_wrapper</a></h4>
+<h4><a name="api:mono_string_chars">mono_string_chars</a></h4>
+<h4><a name="api:mono_string_length">mono_string_length</a></h4>
+
+
+<h3>String Builders</h3>
+
+ <p>These routines are used to work with the managed types
+ <tt>System.Text.StringBuilder</tt>.
+
+<h4><a name="api:mono_string_builder_to_utf16">mono_string_builder_to_utf16</a></h4>
+<h4><a name="api:mono_string_builder_to_utf8">mono_string_builder_to_utf8</a></h4>
+
+<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>
diff --git a/docs/sources/mono-api-threads.html b/docs/sources/mono-api-threads.html
new file mode 100644
index 0000000000..3696f37885
--- /dev/null
+++ b/docs/sources/mono-api-threads.html
@@ -0,0 +1,46 @@
+<h2>Working with threads</h2>
+
+<h3>Thread API</h3>
+<h4><a name="api:mono_thread_abort_all_other_threads">mono_thread_abort_all_other_threads</a></h4>
+<h4><a name="api:mono_thread_attach">mono_thread_attach</a></h4>
+<h4><a name="api:mono_thread_create">mono_thread_create</a></h4>
+<h4><a name="api:mono_thread_current">mono_thread_current</a></h4>
+<h4><a name="api:mono_thread_detach">mono_thread_detach</a></h4>
+<h4><a name="api:mono_thread_exit">mono_thread_exit</a></h4>
+<h4><a name="api:mono_thread_force_interruption_checkpoint">mono_thread_force_interruption_checkpoint</a></h4>
+<h4><a name="api:mono_thread_get_abort_signal">mono_thread_get_abort_signal</a></h4>
+<h4><a name="api:mono_thread_get_pending_exception">mono_thread_get_pending_exception</a></h4>
+<h4><a name="api:mono_thread_interruption_checkpoint">mono_thread_interruption_checkpoint</a></h4>
+<h4><a name="api:mono_thread_interruption_requested">mono_thread_interruption_requested</a></h4>
+<h4><a name="api:mono_thread_interruption_request_flag">mono_thread_interruption_request_flag</a></h4>
+<h4><a name="api:mono_thread_manage">mono_thread_manage</a></h4>
+<h4><a name="api:mono_thread_new_init">mono_thread_new_init</a></h4>
+<h4><a name="api:mono_thread_pop_appdomain_ref">mono_thread_pop_appdomain_ref</a></h4>
+<h4><a name="api:mono_thread_push_appdomain_ref">mono_thread_push_appdomain_ref</a></h4>
+<h4><a name="api:mono_thread_request_interruption">mono_thread_request_interruption</a></h4>
+<h4><a name="api:mono_threads_abort_appdomain_threads">mono_threads_abort_appdomain_threads</a></h4>
+<h4><a name="api:mono_threads_get_default_stacksize">mono_threads_get_default_stacksize</a></h4>
+<h4><a name="api:mono_threads_install_cleanup">mono_threads_install_cleanup</a></h4>
+<h4><a name="api:mono_threads_set_default_stacksize">mono_threads_set_default_stacksize</a></h4>
+<h4><a name="api:mono_thread_stop">mono_thread_stop</a></h4>
+
+<h4><a name="api:mono_thread_get_main">mono_thread_get_main</a></h4>
+<h4><a name="api:mono_thread_set_main">mono_thread_set_main</a></h4>
+<h4><a name="api:mono_thread_get_tls_key">mono_thread_get_tls_key</a></h4>
+<h4><a name="api:mono_pthread_key_for_tls">mono_pthread_key_for_tls</a></h4>
+
+
+<h3>Thread Pool API</h3>
+<h4><a name="api:mono_thread_pool_add">mono_thread_pool_add</a></h4>
+<h4><a name="api:mono_thread_pool_finish">mono_thread_pool_finish</a></h4>
+
+<h3>Monitors</h3>
+
+<h4><a name="api:mono_monitor_enter">mono_monitor_enter</a></h4>
+<h4><a name="api:mono_monitor_exit">mono_monitor_exit</a></h4>
+<h4><a name="api:mono_monitor_try_enter">mono_monitor_try_enter</a></h4>
+
+<h3>Mono VM development</h3>
+<h4><a name="api:mono_threads_clear_cached_culture">mono_threads_clear_cached_culture</a></h4>
+<h4><a name="api:mono_thread_suspend_all_other_threads">mono_thread_suspend_all_other_threads</a></h4>
+<h4><a name="api:mono_thread_has_appdomain_ref">mono_thread_has_appdomain_ref</a></h4>
diff --git a/docs/sources/mono-api-trace.html b/docs/sources/mono-api-trace.html
new file mode 100644
index 0000000000..2783263b83
--- /dev/null
+++ b/docs/sources/mono-api-trace.html
@@ -0,0 +1,14 @@
+<h2>Tracing</h2>
+
+<h4><a name="api:mono_trace_cleanup">mono_trace_cleanup</a></h4>
+<h4><a name="api:mono_trace">mono_trace</a></h4>
+<h4><a name="api:mono_trace_parse_options">mono_trace_parse_options</a></h4>
+<h4><a name="api:mono_trace_pop">mono_trace_pop</a></h4>
+<h4><a name="api:mono_trace_push">mono_trace_push</a></h4>
+<h4><a name="api:mono_trace_set_assembly">mono_trace_set_assembly</a></h4>
+<h4><a name="api:mono_trace_set_level">mono_trace_set_level</a></h4>
+<h4><a name="api:mono_trace_set_level_string">mono_trace_set_level_string</a></h4>
+<h4><a name="api:mono_trace_set_mask">mono_trace_set_mask</a></h4>
+<h4><a name="api:mono_trace_set_mask_string">mono_trace_set_mask_string</a></h4>
+<h4><a name="api:mono_tracev">mono_tracev</a></h4>
+<h4><a name="api:mono_trace_is_traced">mono_trace_is_traced</a></h4>
diff --git a/docs/sources/mono-api-type.html b/docs/sources/mono-api-type.html
new file mode 100644
index 0000000000..91cb9cce86
--- /dev/null
+++ b/docs/sources/mono-api-type.html
@@ -0,0 +1,22 @@
+<h4><a name="api:mono_type_create_from_typespec_full">mono_type_create_from_typespec_full</a></h4>
+<h4><a name="api:mono_type_create_from_typespec">mono_type_create_from_typespec</a></h4>
+<h4><a name="api:mono_type_full_name">mono_type_full_name</a></h4>
+<h4><a name="api:mono_type_get_array_type">mono_type_get_array_type</a></h4>
+<h4><a name="api:mono_type_get_class">mono_type_get_class</a></h4>
+<h4><a name="api:mono_type_get_desc">mono_type_get_desc</a></h4>
+<h4><a name="api:mono_type_get_full_name">mono_type_get_full_name</a></h4>
+<h4><a name="api:mono_type_get_modifiers">mono_type_get_modifiers</a></h4>
+<h4><a name="api:mono_type_get_name">mono_type_get_name</a></h4>
+<h4><a name="api:mono_type_get_signature">mono_type_get_signature</a></h4>
+<h4><a name="api:mono_type_get_type">mono_type_get_type</a></h4>
+<h4><a name="api:mono_type_get_underlying_type">mono_type_get_underlying_type</a></h4>
+<h4><a name="api:mono_type_initialization_init">mono_type_initialization_init</a></h4>
+<h4><a name="api:mono_type_is_byref">mono_type_is_byref</a></h4>
+<h4><a name="api:mono_type_native_stack_size">mono_type_native_stack_size</a></h4>
+<h4><a name="api:mono_type_size">mono_type_size</a></h4>
+<h4><a name="api:mono_type_stack_size">mono_type_stack_size</a></h4>
+<h4><a name="api:mono_type_to_ldind">mono_type_to_ldind</a></h4>
+<h4><a name="api:mono_type_to_stind">mono_type_to_stind</a></h4>
+<h4><a name="api:mono_type_to_unmanaged">mono_type_to_unmanaged</a></h4>
+<h4><a name="api:mono_type_get_name_full">mono_type_get_name_full</a></h4>
+<h4><a name="api:mono_type_generic_inst_is_valuetype">mono_type_generic_inst_is_valuetype</a></h4> \ No newline at end of file
diff --git a/docs/sources/mono-api-types.html b/docs/sources/mono-api-types.html
new file mode 100644
index 0000000000..819f26ba28
--- /dev/null
+++ b/docs/sources/mono-api-types.html
@@ -0,0 +1,27 @@
+<h3>Common core types</h3>
+
+ <p>These are accesor methods to retrieve the <tt>MonoClass
+ *</tt> handle for the various built-in CLI types.
+
+<h4><a name="api:mono_get_object_class">mono_get_object_class</a></h4>
+<h4><a name="api:mono_get_int16_class">mono_get_int16_class</a></h4>
+<h4><a name="api:mono_get_int32_class">mono_get_int32_class</a></h4>
+<h4><a name="api:mono_get_int64_class">mono_get_int64_class</a></h4>
+<h4><a name="api:mono_get_double_class">mono_get_double_class</a></h4>
+<h4><a name="api:mono_get_enum_class">mono_get_enum_class</a></h4>
+<h4><a name="api:mono_get_intptr_class">mono_get_intptr_class</a></h4>
+<h4><a name="api:mono_get_sbyte_class">mono_get_sbyte_class</a></h4>
+<h4><a name="api:mono_get_single_class">mono_get_single_class</a></h4>
+<h4><a name="api:mono_get_string_class">mono_get_string_class</a></h4>
+<h4><a name="api:mono_get_thread_class">mono_get_thread_class</a></h4>
+<h4><a name="api:mono_get_uint16_class">mono_get_uint16_class</a></h4>
+<h4><a name="api:mono_get_uint32_class">mono_get_uint32_class</a></h4>
+<h4><a name="api:mono_get_uint64_class">mono_get_uint64_class</a></h4>
+<h4><a name="api:mono_get_uintptr_class">mono_get_uintptr_class</a></h4>
+<h4><a name="api:mono_get_void_class">mono_get_void_class</a></h4>
+<h4><a name="api:mono_get_array_class">mono_get_array_class</a></h4>
+<h4><a name="api:mono_get_boolean_class">mono_get_boolean_class</a></h4>
+<h4><a name="api:mono_get_byte_class">mono_get_byte_class</a></h4>
+<h4><a name="api:mono_get_char_class">mono_get_char_class</a></h4>
+
+<h4><a name="api:mono_get_dbnull_object">mono_get_dbnull_object</a></h4>
diff --git a/docs/sources/mono-api-unsorted.html b/docs/sources/mono-api-unsorted.html
new file mode 100644
index 0000000000..42e7fe0647
--- /dev/null
+++ b/docs/sources/mono-api-unsorted.html
@@ -0,0 +1,60 @@
+
+
+<h4><a name="api:mini_compile_generic_method">mini_compile_generic_method</a></h4>
+<h4><a name="api:mono_alloc_special_static_data">mono_alloc_special_static_data</a></h4>
+<h4><a name="api:mono_bounded_array_class_get">mono_bounded_array_class_get</a></h4>
+<h4><a name="api:mono_check_corlib_version">mono_check_corlib_version</a></h4>
+<h4><a name="api:mono_compile_method">mono_compile_method</a></h4>
+<h4><a name="api:mono_config_for_assembly">mono_config_for_assembly</a></h4>
+<h4><a name="api:mono_create_icall_signature">mono_create_icall_signature</a></h4>
+<h4><a name="api:mono_create_jit_trampoline">mono_create_jit_trampoline</a></h4>
+<h4><a name="api:mono_create_jump_table">mono_create_jump_table</a></h4>
+<h4><a name="api:mono_create_jump_trampoline">mono_create_jump_trampoline</a></h4>
+<h4><a name="api:mono_dllmap_insert">mono_dllmap_insert</a></h4>
+<h4><a name="api:mono_environment_exitcode_get">mono_environment_exitcode_get</a></h4>
+<h4><a name="api:mono_environment_exitcode_set">mono_environment_exitcode_set</a></h4>
+<h4><a name="api:mono_find_method_by_name">mono_find_method_by_name</a></h4>
+<h4><a name="api:mono_free_method">mono_free_method</a></h4>
+<h4><a name="api:mono_free_verify_list">mono_free_verify_list</a></h4>
+<h4><a name="api:mono_get_config_dir">mono_get_config_dir</a></h4>
+<h4><a name="api:mono_get_constant_value_from_blob">mono_get_constant_value_from_blob</a></h4>
+<h4><a name="api:mono_get_corlib">mono_get_corlib</a></h4>
+<h4><a name="api:mono_get_delegate_invoke">mono_get_delegate_invoke</a></h4>
+<h4><a name="api:mono_get_framework_version">mono_get_framework_version</a></h4>
+<h4><a name="api:mono_get_method_full">mono_get_method_full</a></h4>
+<h4><a name="api:mono_get_method">mono_get_method</a></h4>
+<h4><a name="api:mono_get_root_domain">mono_get_root_domain</a></h4>
+<h4><a name="api:mono_get_runtime_version">mono_get_runtime_version</a></h4>
+<h4><a name="api:mono_get_special_static_data">mono_get_special_static_data</a></h4>
+<h4><a name="api:mono_init_from_assembly">mono_init_from_assembly</a></h4>
+<h4><a name="api:mono_init">mono_init</a></h4>
+<h4><a name="api:mono_init_version">mono_init_version</a></h4>
+<h4><a name="api:mono_invoke_delegate">mono_invoke_delegate</a></h4>
+<h4><a name="api:mono_jit_exec">mono_jit_exec</a></h4>
+<h4><a name="api:mono_lookup_internal_call">mono_lookup_internal_call</a></h4>
+<h4><a name="api:mono_lookup_pinvoke_call">mono_lookup_pinvoke_call</a></h4>
+<h4><a name="api:mono_main">mono_main</a></h4>
+<h4><a name="api:mono_message_init">mono_message_init</a></h4>
+<h4><a name="api:mono_message_invoke">mono_message_invoke</a></h4>
+<h4><a name="api:mono_parse_default_optimizations">mono_parse_default_optimizations</a></h4>
+<h4><a name="api:mono_perform_abc_removal">mono_perform_abc_removal</a></h4>
+<h4><a name="api:mono_ptr_class_get">mono_ptr_class_get</a></h4>
+<h4><a name="api:mono_register_bundled_assemblies">mono_register_bundled_assemblies</a></h4>
+<h4><a name="api:mono_release_type_locks">mono_release_type_locks</a></h4>
+<h4><a name="api:mono_remote_class">mono_remote_class</a></h4>
+<h4><a name="api:mono_remote_class_vtable">mono_remote_class_vtable</a></h4>
+<h4><a name="api:mono_runtime_class_init">mono_runtime_class_init</a></h4>
+<h4><a name="api:mono_runtime_cleanup">mono_runtime_cleanup</a></h4>
+<h4><a name="api:mono_runtime_free_method">mono_runtime_free_method</a></h4>
+<h4><a name="api:mono_runtime_get_main_args">mono_runtime_get_main_args</a></h4>
+<h4><a name="api:mono_runtime_init">mono_runtime_init</a></h4>
+<h4><a name="api:mono_runtime_is_shutting_down">mono_runtime_is_shutting_down</a></h4>
+<h4><a name="api:mono_runtime_object_init">mono_runtime_object_init</a></h4>
+<h4><a name="api:mono_runtime_quit">mono_runtime_quit</a></h4>
+<h4><a name="api:mono_runtime_run_main">mono_runtime_run_main</a></h4>
+<h4><a name="api:mono_table_info_get_rows">mono_table_info_get_rows</a></h4>
+<h4><a name="api:mono_upgrade_remote_class">mono_upgrade_remote_class</a></h4>
+<h4><a name="api:mono_upgrade_remote_class_wrapper">mono_upgrade_remote_class_wrapper</a></h4>
+<h4><a name="api:mono_verify_corlib">mono_verify_corlib</a></h4>
+<h4><a name="api:mono_vtable_get_static_field_data">mono_vtable_get_static_field_data</a></h4>
+<h4><a name="api:mono_wait_handle_new">mono_wait_handle_new</a></h4>
diff --git a/docs/sources/mono-api-utils.html b/docs/sources/mono-api-utils.html
new file mode 100644
index 0000000000..8b013eb0d5
--- /dev/null
+++ b/docs/sources/mono-api-utils.html
@@ -0,0 +1,140 @@
+<h2>Utility Methods</h2>
+
+<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>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_foreach_steal">mono_g_hash_table_foreach_steal</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_new">mono_g_hash_table_new</a></h4>
+<h4><a name="api:mono_g_hash_table_new_full">mono_g_hash_table_new_full</a></h4>
+<h4><a name="api:mono_g_hash_table_remap">mono_g_hash_table_remap</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>
+<h4><a name="api:mono_g_hash_table_steal">mono_g_hash_table_steal</a></h4>
+
+<h3>Raw buffer</h3>
+
+ <p>Raw buffers provide an abstraction to load segments of
+ files into memory. If the operating system supports it, the
+ files are not loaded, but are mapped into the address space of
+ the process (On Unix, this is done using the <tt>mmap(2)</tt>
+ system call).
+
+<h4><a name="api:mono_raw_buffer_load">mono_raw_buffer_load</a></h4>
+<h4><a name="api:mono_raw_buffer_update">mono_raw_buffer_update</a></h4>
+<h4><a name="api:mono_raw_buffer_free">mono_raw_buffer_free</a></h4>
+
+<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>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_empty">mono_mempool_empty</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>JIT utilities</h3>
+
+<h4><a name="api:mono_is_power_of_two">mono_is_power_of_two</a></h4>
+<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>Disassembling Generated Code</h3>
+
+ <p>Routines used to debug the JIT-produced code.
+
+<h4><a name="api:mono_disasm_code">mono_disasm_code</a></h4>
+<h4><a name="api:mono_disasm_code_one">mono_disasm_code_one</a></h4>
+<h4><a name="api:mono_disassemble_code">mono_disassemble_code</a></h4>
+
+<h3>Walking the Stack</h3>
+
+<h4><a name="api:mono_walk_stack">mono_walk_stack</a></h4>
+<h4><a name="api:mono_stack_walk_no_il">mono_stack_walk_no_il</a></h4>
+
+<h3>Others</h3>
+
+<h4><a name="api:mono_escape_uri_string">mono_escape_uri_string</a></h4>
+<h4><a name="api:mono_guid_to_string">mono_guid_to_string</a></h4>
+
diff --git a/docs/sources/mono-api-vm.html b/docs/sources/mono-api-vm.html
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/docs/sources/mono-api-vm.html
diff --git a/docs/sources/mono-api-wapi.html b/docs/sources/mono-api-wapi.html
new file mode 100644
index 0000000000..3bb1d1110d
--- /dev/null
+++ b/docs/sources/mono-api-wapi.html
@@ -0,0 +1,111 @@
+<h2>Windows Compatibility API</h2>
+
+ <p>Mono implements a small subset of the Win32 API for some
+ file system interaction, I/O, thread and process operations.
+
+ <p>On Windows, Mono uses directly the services provided by the
+ operating system. On other operating system it uses its own
+ implementation (referred to as the "io-layer" or "wapi").
+
+<h4><a name="api:GetThreadContext">GetThreadContext</a></h4>
+<h4><a name="api:DeleteCriticalSection">DeleteCriticalSection</a></h4>
+<h4><a name="api:EnterCriticalSection">EnterCriticalSection</a></h4>
+<h4><a name="api:InitializeCriticalSection">InitializeCriticalSection</a></h4>
+<h4><a name="api:InitializeCriticalSectionAndSpinCount">InitializeCriticalSectionAndSpinCount</a></h4>
+<h4><a name="api:LeaveCriticalSection">LeaveCriticalSection</a></h4>
+<h4><a name="api:SetCriticalSectionSpinCount">SetCriticalSectionSpinCount</a></h4>
+<h4><a name="api:TryEnterCriticalSection">TryEnterCriticalSection</a></h4>
+<h4><a name="api:errno_to_WSA">errno_to_WSA</a></h4>
+<h4><a name="api:GetLastError">GetLastError</a></h4>
+<h4><a name="api:SetLastError">SetLastError</a></h4>
+<h4><a name="api:CreateEvent">CreateEvent</a></h4>
+<h4><a name="api:PulseEvent">PulseEvent</a></h4>
+<h4><a name="api:ResetEvent">ResetEvent</a></h4>
+<h4><a name="api:SetEvent">SetEvent</a></h4>
+<h4><a name="api:CloseHandle">CloseHandle</a></h4>
+<h4><a name="api:CopyFile">CopyFile</a></h4>
+<h4><a name="api:CreateDirectory">CreateDirectory</a></h4>
+<h4><a name="api:CreateFile">CreateFile</a></h4>
+<h4><a name="api:CreatePipe">CreatePipe</a></h4>
+<h4><a name="api:DeleteFile">DeleteFile</a></h4>
+<h4><a name="api:FileTimeToSystemTime">FileTimeToSystemTime</a></h4>
+<h4><a name="api:FindClose">FindClose</a></h4>
+<h4><a name="api:FindFirstFile">FindFirstFile</a></h4>
+<h4><a name="api:FindNextFile">FindNextFile</a></h4>
+<h4><a name="api:FlushFileBuffers">FlushFileBuffers</a></h4>
+<h4><a name="api:GetCurrentDirectory">GetCurrentDirectory</a></h4>
+<h4><a name="api:GetFileAttributes">GetFileAttributes</a></h4>
+<h4><a name="api:GetFileAttributesEx">GetFileAttributesEx</a></h4>
+<h4><a name="api:GetFileSize">GetFileSize</a></h4>
+<h4><a name="api:GetFileTime">GetFileTime</a></h4>
+<h4><a name="api:GetFileType">GetFileType</a></h4>
+<h4><a name="api:GetLogicalDriveStrings">GetLogicalDriveStrings</a></h4>
+<h4><a name="api:GetStdHandle">GetStdHandle</a></h4>
+<h4><a name="api:GetTempPath">GetTempPath</a></h4>
+<h4><a name="api:LockFile">LockFile</a></h4>
+<h4><a name="api:MoveFile">MoveFile</a></h4>
+<h4><a name="api:ReadFile">ReadFile</a></h4>
+<h4><a name="api:RemoveDirectory">RemoveDirectory</a></h4>
+<h4><a name="api:SetCurrentDirectory">SetCurrentDirectory</a></h4>
+<h4><a name="api:SetEndOfFile">SetEndOfFile</a></h4>
+<h4><a name="api:SetFileAttributes">SetFileAttributes</a></h4>
+<h4><a name="api:SetFilePointer">SetFilePointer</a></h4>
+<h4><a name="api:SetFileTime">SetFileTime</a></h4>
+<h4><a name="api:UnlockFile">UnlockFile</a></h4>
+<h4><a name="api:WriteFile">WriteFile</a></h4>
+<h4><a name="api:mono_once">mono_once</a></h4>
+<h4><a name="api:CreateMutex">CreateMutex</a></h4>
+<h4><a name="api:ReleaseMutex">ReleaseMutex</a></h4>
+<h4><a name="api:CreateProcess">CreateProcess</a></h4>
+<h4><a name="api:EnumProcesses">EnumProcesses</a></h4>
+<h4><a name="api:EnumProcessModules">EnumProcessModules</a></h4>
+<h4><a name="api:GetCurrentProcess">GetCurrentProcess</a></h4>
+<h4><a name="api:GetCurrentProcessId">GetCurrentProcessId</a></h4>
+<h4><a name="api:GetExitCodeProcess">GetExitCodeProcess</a></h4>
+<h4><a name="api:GetModuleBaseName">GetModuleBaseName</a></h4>
+<h4><a name="api:GetProcessTimes">GetProcessTimes</a></h4>
+<h4><a name="api:GetProcessWorkingSetSize">GetProcessWorkingSetSize</a></h4>
+<h4><a name="api:OpenProcess">OpenProcess</a></h4>
+<h4><a name="api:SetProcessWorkingSetSize">SetProcessWorkingSetSize</a></h4>
+<h4><a name="api:TerminateProcess">TerminateProcess</a></h4>
+<h4><a name="api:ImpersonateLoggedOnUser">ImpersonateLoggedOnUser</a></h4>
+<h4><a name="api:RevertToSelf">RevertToSelf</a></h4>
+<h4><a name="api:CreateSemaphore">CreateSemaphore</a></h4>
+<h4><a name="api:ReleaseSemaphore">ReleaseSemaphore</a></h4>
+<h4><a name="api:closesocket">closesocket</a></h4>
+<h4><a name="api:ioctlsocket">ioctlsocket</a></h4>
+<h4><a name="api:WSACleanup">WSACleanup</a></h4>
+<h4><a name="api:WSAGetLastError">WSAGetLastError</a></h4>
+<h4><a name="api:WSAIoctl">WSAIoctl</a></h4>
+<h4><a name="api:WSASetLastError">WSASetLastError</a></h4>
+<h4><a name="api:WSAStartup">WSAStartup</a></h4>
+<h4><a name="api:GetSystemInfo">GetSystemInfo</a></h4>
+<h4><a name="api:BindIoCompletionCallback">BindIoCompletionCallback</a></h4>
+<h4><a name="api:CreateThread">CreateThread</a></h4>
+<h4><a name="api:ExitThread">ExitThread</a></h4>
+<h4><a name="api:GetCurrentThread">GetCurrentThread</a></h4>
+<h4><a name="api:GetCurrentThreadId">GetCurrentThreadId</a></h4>
+<h4><a name="api:GetExitCodeThread">GetExitCodeThread</a></h4>
+<h4><a name="api:OpenThread">OpenThread</a></h4>
+<h4><a name="api:QueueUserAPC">QueueUserAPC</a></h4>
+<h4><a name="api:ResumeThread">ResumeThread</a></h4>
+<h4><a name="api:Sleep">Sleep</a></h4>
+<h4><a name="api:SleepEx">SleepEx</a></h4>
+<h4><a name="api:SuspendThread">SuspendThread</a></h4>
+<h4><a name="api:TlsAlloc">TlsAlloc</a></h4>
+<h4><a name="api:TlsFree">TlsFree</a></h4>
+<h4><a name="api:TlsGetValue">TlsGetValue</a></h4>
+<h4><a name="api:TlsSetValue">TlsSetValue</a></h4>
+<h4><a name="api:GetTickCount">GetTickCount</a></h4>
+<h4><a name="api:QueryPerformanceCounter">QueryPerformanceCounter</a></h4>
+<h4><a name="api:QueryPerformanceFrequency">QueryPerformanceFrequency</a></h4>
+<h4><a name="api:SignalObjectAndWait">SignalObjectAndWait</a></h4>
+<h4><a name="api:WaitForMultipleObjects">WaitForMultipleObjects</a></h4>
+<h4><a name="api:WaitForMultipleObjectsEx">WaitForMultipleObjectsEx</a></h4>
+<h4><a name="api:WaitForSingleObject">WaitForSingleObject</a></h4>
+<h4><a name="api:WaitForSingleObjectEx">WaitForSingleObjectEx</a></h4>
+<h4><a name="api:OpenEvent">OpenEvent</a></h4>
+<h4><a name="api:OpenMutex">OpenMutex</a></h4>
+<h4><a name="api:GetProcessId">GetProcessId</a></h4>
+<h4><a name="api:ShellExecuteEx">ShellExecuteEx</a></h4>
+<h4><a name="api:OpenSemaphore">OpenSemaphore</a></h4>
diff --git a/docs/svgs/fragmentation.svg b/docs/svgs/fragmentation.svg
new file mode 100644
index 0000000000..62dc60bf54
--- /dev/null
+++ b/docs/svgs/fragmentation.svg
@@ -0,0 +1,425 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="744.09448819"
+ height="1052.3622047"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.42.2"
+ sodipodi:docbase="/home/miguel/mono/gc"
+ sodipodi:docname="fragmentation.svg"
+ inkscape:export-filename="/tmp/fragmentation.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.6081777"
+ inkscape:cx="225.44672"
+ inkscape:cy="575.14344"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:window-width="1388"
+ inkscape:window-height="998"
+ inkscape:window-x="0"
+ inkscape:window-y="27" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g2181"
+ transform="translate(0.000000,5.340576e-5)"
+ inkscape:export-filename="/tmp/compacting.png"
+ inkscape:export-xdpi="124.46000"
+ inkscape:export-ydpi="124.46000">
+ <rect
+ y="336.88107"
+ x="40.380459"
+ height="33.335033"
+ width="150.56403"
+ id="rect1306"
+ style="opacity:1.0000000;fill:#bf0000;fill-opacity:0.28961745;fill-rule:evenodd;stroke:#e97500;stroke-width:0.96217525;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text1308"
+ y="356.82397"
+ x="112.17029"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="356.82397"
+ x="112.17029"
+ id="tspan1310"
+ sodipodi:role="line">a</tspan></text>
+ <text
+ id="text1312"
+ y="357.98737"
+ x="210.86664"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="357.98737"
+ x="210.86664"
+ id="tspan1314"
+ sodipodi:role="line">b</tspan></text>
+ <rect
+ y="336.67050"
+ x="191.33643"
+ height="33.686447"
+ width="47.111221"
+ id="rect1320"
+ style="opacity:1.0000000;fill:#009f9d;fill-opacity:0.28961745;fill-rule:evenodd;stroke:#3a57e9;stroke-width:0.54104435;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2066"
+ y="356.79828"
+ x="258.88504"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="356.79828"
+ x="258.88504"
+ id="tspan2068"
+ sodipodi:role="line">c</tspan></text>
+ <rect
+ y="332.71930"
+ x="36.785717"
+ height="42.142857"
+ width="252.85715"
+ id="rect2087"
+ style="opacity:1.0000000;fill:#97ff9f;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#e93a3a;stroke-width:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <rect
+ y="336.67966"
+ x="238.58723"
+ height="33.686447"
+ width="47.111221"
+ id="rect2070"
+ style="opacity:1.0000000;fill:#009f9d;fill-opacity:0.28961745;fill-rule:evenodd;stroke:#3a57e9;stroke-width:0.54104435;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ </g>
+ <g
+ id="g2193"
+ transform="translate(0.000000,-1.451759)"
+ inkscape:export-filename="/tmp/compacting.png"
+ inkscape:export-xdpi="124.46000"
+ inkscape:export-ydpi="124.46000">
+ <text
+ id="text2095"
+ y="407.98737"
+ x="210.86664"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="407.98737"
+ x="210.86664"
+ id="tspan2097"
+ sodipodi:role="line">b</tspan></text>
+ <rect
+ y="386.67050"
+ x="191.33643"
+ height="33.686447"
+ width="47.111221"
+ id="rect2099"
+ style="opacity:1.0000000;fill:#009f9d;fill-opacity:0.28961745;fill-rule:evenodd;stroke:#3a57e9;stroke-width:0.54104435;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2101"
+ y="406.79828"
+ x="258.88504"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="406.79828"
+ x="258.88504"
+ id="tspan2103"
+ sodipodi:role="line">c</tspan></text>
+ <rect
+ y="386.67966"
+ x="238.58722"
+ height="33.686447"
+ width="47.111221"
+ id="rect2107"
+ style="opacity:1.0000000;fill:#009f9d;fill-opacity:0.28961745;fill-rule:evenodd;stroke:#3a57e9;stroke-width:0.54104435;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <rect
+ y="382.36215"
+ x="37.142860"
+ height="42.142857"
+ width="252.85715"
+ id="rect2105"
+ style="opacity:1.0000000;fill:#97ff9f;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#e93a3a;stroke-width:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ </g>
+ <g
+ id="g2202"
+ transform="translate(0.000000,-1.117897)"
+ inkscape:export-filename="/tmp/compacting.png"
+ inkscape:export-xdpi="124.46000"
+ inkscape:export-ydpi="124.46000">
+ <text
+ id="text2109"
+ y="455.84454"
+ x="210.86664"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="455.84454"
+ x="210.86664"
+ id="tspan2111"
+ sodipodi:role="line">b</tspan></text>
+ <rect
+ y="434.52768"
+ x="191.33643"
+ height="33.686447"
+ width="47.111221"
+ id="rect2113"
+ style="opacity:1.0000000;fill:#009f9d;fill-opacity:0.28961745;fill-rule:evenodd;stroke:#3a57e9;stroke-width:0.54104435;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2115"
+ y="454.65546"
+ x="258.88504"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="454.65546"
+ x="258.88504"
+ id="tspan2117"
+ sodipodi:role="line">c</tspan></text>
+ <rect
+ y="434.53683"
+ x="238.58722"
+ height="33.686447"
+ width="47.111221"
+ id="rect2119"
+ style="opacity:1.0000000;fill:#009f9d;fill-opacity:0.28961745;fill-rule:evenodd;stroke:#3a57e9;stroke-width:0.54104435;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <rect
+ y="434.44754"
+ x="41.444386"
+ height="33.686447"
+ width="47.111221"
+ id="rect2127"
+ style="opacity:1.0000000;fill:#009f9d;fill-opacity:0.28961745;fill-rule:evenodd;stroke:#3a57e9;stroke-width:0.54104435;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <rect
+ y="430.21933"
+ x="37.142857"
+ height="42.142857"
+ width="252.85715"
+ id="rect2121"
+ style="opacity:1.0000000;fill:#97ff9f;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#e93a3a;stroke-width:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2123"
+ y="455.7644"
+ x="60.974598"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="455.76440"
+ x="60.974598"
+ id="tspan2125"
+ sodipodi:role="line">d</tspan></text>
+ </g>
+ <g
+ id="g2214"
+ transform="translate(0.000000,0.287437)"
+ inkscape:export-filename="/tmp/compacting.png"
+ inkscape:export-xdpi="124.46000"
+ inkscape:export-ydpi="124.46000">
+ <text
+ id="text2133"
+ y="502.63025"
+ x="211.58092"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="502.63025"
+ x="211.58092"
+ id="tspan2135"
+ sodipodi:role="line">b</tspan></text>
+ <rect
+ y="481.31339"
+ x="192.05070"
+ height="33.686447"
+ width="47.111221"
+ id="rect2137"
+ style="opacity:1.0000000;fill:#009f9d;fill-opacity:0.28961745;fill-rule:evenodd;stroke:#3a57e9;stroke-width:0.54104435;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <rect
+ y="477.00504"
+ x="37.857136"
+ height="42.142857"
+ width="252.85715"
+ id="rect2147"
+ style="opacity:1.0000000;fill:#97ff9f;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#e93a3a;stroke-width:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <rect
+ y="481.23325"
+ x="42.158665"
+ height="33.686447"
+ width="47.111221"
+ id="rect2145"
+ style="opacity:1.0000000;fill:#009f9d;fill-opacity:0.28961745;fill-rule:evenodd;stroke:#3a57e9;stroke-width:0.54104435;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2149"
+ y="502.55011"
+ x="61.688877"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="502.55011"
+ x="61.688877"
+ id="tspan2151"
+ sodipodi:role="line">d</tspan></text>
+ </g>
+ <rect
+ style="opacity:1.0000000;fill:#97ff9f;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#e93a3a;stroke-width:0.99986458;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2163"
+ width="252.78864"
+ height="42.142857"
+ x="38.244465"
+ y="525.57648"
+ inkscape:export-filename="/tmp/compacting.png"
+ inkscape:export-xdpi="124.46000"
+ inkscape:export-ydpi="124.46000" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="109.33745"
+ y="551.20172"
+ id="text2153"
+ inkscape:export-filename="/tmp/compacting.png"
+ inkscape:export-xdpi="124.46000"
+ inkscape:export-ydpi="124.46000"><tspan
+ sodipodi:role="line"
+ id="tspan2155"
+ x="109.33745"
+ y="551.20172">b</tspan></text>
+ <rect
+ style="opacity:1.0000000;fill:#009f9d;fill-opacity:0.28961745;fill-rule:evenodd;stroke:#3a57e9;stroke-width:0.54104435;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2157"
+ width="47.111221"
+ height="33.686447"
+ x="89.807236"
+ y="529.88483"
+ inkscape:export-filename="/tmp/compacting.png"
+ inkscape:export-xdpi="124.46000"
+ inkscape:export-ydpi="124.46000" />
+ <rect
+ style="opacity:1.0000000;fill:#009f9d;fill-opacity:0.28961745;fill-rule:evenodd;stroke:#3a57e9;stroke-width:0.54104435;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2165"
+ width="47.111221"
+ height="33.686447"
+ x="42.515812"
+ y="529.80469"
+ inkscape:export-filename="/tmp/compacting.png"
+ inkscape:export-xdpi="124.46000"
+ inkscape:export-ydpi="124.46000" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="62.046024"
+ y="551.12158"
+ id="text2167"
+ inkscape:export-filename="/tmp/compacting.png"
+ inkscape:export-xdpi="124.46000"
+ inkscape:export-ydpi="124.46000"><tspan
+ sodipodi:role="line"
+ id="tspan2169"
+ x="62.046024"
+ y="551.12158">d</tspan></text>
+ <rect
+ style="opacity:1.0000000;fill:#bf0000;fill-opacity:0.28961745;fill-rule:evenodd;stroke:#e97500;stroke-width:0.96217525;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2171"
+ width="150.56403"
+ height="33.335033"
+ x="137.73921"
+ y="529.98041"
+ inkscape:export-filename="/tmp/compacting.png"
+ inkscape:export-xdpi="124.46000"
+ inkscape:export-ydpi="124.46000" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="209.3181"
+ y="549.92334"
+ id="text2177"
+ inkscape:export-filename="/tmp/compacting.png"
+ inkscape:export-xdpi="124.46000"
+ inkscape:export-ydpi="124.46000"><tspan
+ sodipodi:role="line"
+ id="tspan2179"
+ x="209.31810"
+ y="549.92334">e</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="18.364119"
+ y="358.15894"
+ id="text2235"
+ inkscape:export-filename="/tmp/compacting.png"
+ inkscape:export-xdpi="124.46000"
+ inkscape:export-ydpi="124.46000"><tspan
+ sodipodi:role="line"
+ id="tspan2237"
+ x="18.364119"
+ y="358.15894">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="18.077009"
+ y="406.35583"
+ id="text2239"
+ inkscape:export-filename="/tmp/compacting.png"
+ inkscape:export-xdpi="124.46000"
+ inkscape:export-ydpi="124.46000"><tspan
+ sodipodi:role="line"
+ id="tspan2241"
+ x="18.077009"
+ y="406.35583">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="18.452009"
+ y="454.46191"
+ id="text2243"
+ inkscape:export-filename="/tmp/compacting.png"
+ inkscape:export-xdpi="124.46000"
+ inkscape:export-ydpi="124.46000"><tspan
+ sodipodi:role="line"
+ id="tspan2245"
+ x="18.452009"
+ y="454.46191">5</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="18.15904"
+ y="502.73206"
+ id="text2247"
+ inkscape:export-filename="/tmp/compacting.png"
+ inkscape:export-xdpi="124.46000"
+ inkscape:export-ydpi="124.46000"><tspan
+ sodipodi:role="line"
+ id="tspan2249"
+ x="18.159040"
+ y="502.73206">6</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="18.428572"
+ y="551.02197"
+ id="text2251"
+ inkscape:export-xdpi="124.46000"
+ inkscape:export-ydpi="124.46000"
+ inkscape:export-filename="/tmp/compacting.png"><tspan
+ sodipodi:role="line"
+ id="tspan2253"
+ x="18.428572"
+ y="551.02197">7</tspan></text>
+ </g>
+</svg>
diff --git a/docs/svgs/gcmem.svg b/docs/svgs/gcmem.svg
new file mode 100644
index 0000000000..d8e87de129
--- /dev/null
+++ b/docs/svgs/gcmem.svg
@@ -0,0 +1,857 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="744.09448819"
+ height="1052.3622047"
+ id="svg2324"
+ sodipodi:version="0.32"
+ inkscape:version="0.42.2"
+ sodipodi:docbase="/home/miguel/mono/gc"
+ sodipodi:docname="gcmem.svg">
+ <defs
+ id="defs2326">
+ <marker
+ inkscape:stockid="DistanceIn"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="DistanceIn"
+ style="overflow:visible">
+ <g
+ transform="scale(0.6,0.6) translate(8,0)"
+ id="g987">
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path974"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" />
+ <path
+ id="path976"
+ d="M -14.759949,-7 L -14.759949,65"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2pt;marker-start:none" />
+ </g>
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Mstart"
+ style="overflow:visible">
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path2397"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+ transform="scale(0.4)" />
+ </marker>
+ <marker
+ inkscape:stockid="Dot_m"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Dot_m"
+ style="overflow:visible">
+ <path
+ id="path39"
+ d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none"
+ transform="scale(0.4) translate(7.125493, 1)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Mend"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2389"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(0.6) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Lend"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2392"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="TriangleOutL"
+ style="overflow:visible">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2462"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+ transform="scale(0.8)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lstart"
+ style="overflow:visible">
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path2535"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+ transform="scale(0.8)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.3000000"
+ inkscape:cx="345.54184"
+ inkscape:cy="316.03559"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:window-width="1388"
+ inkscape:window-height="998"
+ inkscape:window-x="0"
+ inkscape:window-y="27" />
+ <metadata
+ id="metadata2329">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g2356"
+ transform="translate(-637.4063,306.0762)">
+ <rect
+ y="582.59204"
+ x="312.92154"
+ height="119.77635"
+ width="198.44141"
+ id="rect2342"
+ style="opacity:1.0000000;fill:#3a3a3a;fill-opacity:0.20765026;fill-rule:evenodd;stroke:#000000;stroke-width:0.56134999;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2344"
+ y="699.81897"
+ x="523.83838"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="699.81897"
+ x="523.83838"
+ id="tspan2346"
+ sodipodi:role="line">stack_start</tspan></text>
+ <text
+ id="text2348"
+ y="593.75293"
+ x="523.83838"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="593.75293"
+ x="523.83838"
+ id="tspan2350"
+ sodipodi:role="line">stack_end</tspan></text>
+ <text
+ id="text2352"
+ y="646.71393"
+ x="366.79654"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="646.71393"
+ x="366.79654"
+ id="tspan2354"
+ sodipodi:role="line">Thread N stack</tspan></text>
+ </g>
+ <rect
+ style="opacity:1.0000000;fill:#3a3a3a;fill-opacity:0.20765026;fill-rule:evenodd;stroke:#000000;stroke-width:0.54655713;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2392"
+ width="198.44141"
+ height="113.54674"
+ x="-348.07538"
+ y="167.00903" />
+ <rect
+ style="opacity:1.0000000;fill:#3a3a3a;fill-opacity:0.20765026;fill-rule:evenodd;stroke:#000000;stroke-width:0.39553967;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2367"
+ width="198.44141"
+ height="59.468048"
+ x="-348.22467"
+ y="166.96149" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="-142.24655"
+ y="223.79724"
+ id="text2369"><tspan
+ sodipodi:role="line"
+ id="tspan2371"
+ x="-142.24655"
+ y="223.79724">info-&gt;stack_start</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="-142.24655"
+ y="179.88089"
+ id="text2373"><tspan
+ sodipodi:role="line"
+ id="tspan2375"
+ x="-142.24655"
+ y="179.88089">info-&gt;stack_end</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="-294.34967"
+ y="201.16916"
+ id="text2388"><tspan
+ sodipodi:role="line"
+ id="tspan2390"
+ x="-294.34967"
+ y="201.16916">Thread 1 stack</tspan></text>
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.86822808;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#TriangleOutL);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M -249.00397,238.28619 C -249.00397,269.24665 -249.00397,269.24665 -249.00397,269.24665"
+ id="path2405" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="-142.24655"
+ y="276.65912"
+ id="text2553"><tspan
+ sodipodi:role="line"
+ id="tspan2555"
+ x="-142.24655"
+ y="276.65912">limit: stack bottom</tspan></text>
+ <g
+ id="g2664"
+ transform="translate(-393.8247,105.6316)">
+ <rect
+ y="175.09026"
+ x="45.884109"
+ height="113.54674"
+ width="198.44141"
+ id="rect2666"
+ style="opacity:1.0000000;fill:#3a3a3a;fill-opacity:0.20765026;fill-rule:evenodd;stroke:#000000;stroke-width:0.54655713;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <rect
+ y="175.04271"
+ x="45.734818"
+ height="59.468048"
+ width="198.44141"
+ id="rect2668"
+ style="opacity:1.0000000;fill:#3a3a3a;fill-opacity:0.20765026;fill-rule:evenodd;stroke:#000000;stroke-width:0.39553967;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2670"
+ y="231.87846"
+ x="251.71294"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="231.87846"
+ x="251.71294"
+ id="tspan2672"
+ sodipodi:role="line">info-&gt;stack_start</tspan></text>
+ <text
+ id="text2674"
+ y="187.96211"
+ x="251.71294"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="187.96211"
+ x="251.71294"
+ id="tspan2676"
+ sodipodi:role="line">info-&gt;stack_end</tspan></text>
+ <text
+ id="text2678"
+ y="209.25038"
+ x="99.609818"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="209.25038"
+ x="99.609818"
+ id="tspan2680"
+ sodipodi:role="line">Thread 2 stack</tspan></text>
+ <path
+ id="path2682"
+ d="M 144.95552,246.36741 C 144.95552,277.32787 144.95552,277.32787 144.95552,277.32787"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.86822808;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#TriangleOutL);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2684"
+ y="284.74033"
+ x="251.71294"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="284.74033"
+ x="251.71294"
+ id="tspan2686"
+ sodipodi:role="line">limit: stack bottom</tspan></text>
+ </g>
+ <rect
+ style="opacity:1.0000000;fill:#000000;fill-opacity:0.098360606;fill-rule:evenodd;stroke:#000000;stroke-width:0.57452667;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2699"
+ width="198.44141"
+ height="125.46541"
+ x="-347.82306"
+ y="449.85883" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="-312.09747"
+ y="515.71747"
+ id="text2701"><tspan
+ sodipodi:role="line"
+ id="tspan2703"
+ x="-312.09747"
+ y="515.71747">Program, Data, Heap</tspan></text>
+ <rect
+ style="opacity:1.0000000;fill:#97ff9f;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect1477"
+ width="496.99463"
+ height="95.744583"
+ x="24.575632"
+ y="255.69751"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <rect
+ style="fill:#000000;fill-opacity:0.21311475;fill-rule:evenodd;stroke:none;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2462"
+ width="369.79077"
+ height="95.629486"
+ x="24.974619"
+ y="255.80048"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <g
+ id="g2549"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000">
+ <rect
+ y="435.98193"
+ x="27.815228"
+ height="104.85226"
+ width="188.03888"
+ id="rect2332"
+ style="opacity:1.0000000;fill:#97ff9f;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2234"
+ y="457.2435"
+ x="78.252907"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="457.24350"
+ x="78.252907"
+ id="tspan2236"
+ sodipodi:role="line">next_data</tspan></text>
+ <path
+ id="path2223"
+ d="M 27.563951,470.57645 L 215.86873,470.57645 L 215.25735,470.57645"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <path
+ id="path2228"
+ d="M 71.898961,435.92093 L 71.891321,470.94626 L 71.891321,470.94626"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2230"
+ y="457.2435"
+ x="37.966347"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="457.24350"
+ x="37.966347"
+ id="tspan2232"
+ sodipodi:role="line">data</tspan></text>
+ <text
+ id="text2238"
+ y="457.2435"
+ x="151.77969"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="457.24350"
+ x="151.77969"
+ id="tspan2240"
+ sodipodi:role="line">end_data</tspan></text>
+ <path
+ id="path2244"
+ d="M 146.54159,435.92094 L 146.53395,470.94627 L 146.53395,470.94627"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2246"
+ y="530.07721"
+ x="180.5428"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="530.07721"
+ x="180.54280"
+ id="tspan2248"
+ sodipodi:role="line">next</tspan></text>
+ <text
+ id="text2250"
+ y="492.30292"
+ x="140.99677"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="492.30292"
+ x="140.99677"
+ id="tspan2252"
+ sodipodi:role="line">scan_starts</tspan></text>
+ <path
+ id="path2254"
+ d="M 27.385382,505.50503 L 215.69016,505.50503 L 215.07878,505.50503"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ </g>
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.3321546px;stroke-linecap:butt;stroke-linejoin:miter;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-opacity:1.0000000"
+ d="M 49.940663,435.64439 C 39.609840,395.19706 25.024252,408.49467 24.510938,358.73205"
+ id="path2420"
+ sodipodi:nodetypes="cs"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2130281px;stroke-linecap:butt;stroke-linejoin:miter;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-opacity:1.0000000"
+ d="M 110.07637,435.66483 C 100.30146,356.87037 395.42132,407.99704 394.99782,357.98613"
+ id="path2424"
+ sodipodi:nodetypes="cs"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2048768px;stroke-linecap:butt;stroke-linejoin:miter;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-opacity:1.0000000"
+ d="M 178.51727,436.05781 C 177.24799,362.68132 519.42718,442.70358 521.51612,359.00377"
+ id="path2426"
+ sodipodi:nodetypes="cs"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2617185;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 395.11375,255.80101 L 395.10611,351.10915 L 395.10611,351.10915"
+ id="path2443"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <rect
+ style="fill:#000000;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2466"
+ width="22.752682"
+ height="24.214773"
+ x="305.75558"
+ y="473.20383"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <rect
+ style="fill:#000000;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2468"
+ width="22.752682"
+ height="24.214773"
+ x="331.87048"
+ y="473.20383"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <rect
+ style="fill:#000000;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2472"
+ width="22.752682"
+ height="24.214773"
+ x="357.98535"
+ y="473.20383"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <rect
+ style="fill:#000000;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2474"
+ width="22.752682"
+ height="24.214773"
+ x="416.10025"
+ y="473.20383"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none"
+ d="M 215.70091,485.66660 C 295.43628,485.16153 295.43628,485.16153 295.43628,485.16153"
+ id="path2478"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="392.02042"
+ y="492.73767"
+ id="text2484"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000"><tspan
+ sodipodi:role="line"
+ id="tspan2486"
+ x="392.02042"
+ y="492.73767">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="384.86813"
+ y="529.10315"
+ id="text2488"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000"><tspan
+ sodipodi:role="line"
+ id="tspan2490"
+ x="384.86813"
+ y="529.10315">num_scan_starts</tspan></text>
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none"
+ d="M 215.38958,526.54626 C 280.82585,525.11455 240.57890,595.19583 307.86943,597.31997"
+ id="path2492"
+ sodipodi:nodetypes="cs"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <g
+ id="g2494"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000"
+ transform="matrix(0.495700,0.000000,0.000000,0.495700,304.0104,357.2198)">
+ <rect
+ y="435.98193"
+ x="27.815228"
+ height="104.85226"
+ width="188.03888"
+ id="rect2496"
+ style="opacity:1.0000000;fill:#97ff9f;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2498"
+ y="457.2435"
+ x="78.252907"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="457.24350"
+ x="78.252907"
+ id="tspan2500"
+ sodipodi:role="line">next_data</tspan></text>
+ <path
+ id="path2502"
+ d="M 27.563951,470.57645 L 215.86873,470.57645 L 215.25735,470.57645"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <path
+ id="path2504"
+ d="M 71.898961,435.92093 L 71.891321,470.94626 L 71.891321,470.94626"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2506"
+ y="457.2435"
+ x="37.966347"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="457.24350"
+ x="37.966347"
+ id="tspan2508"
+ sodipodi:role="line">data</tspan></text>
+ <text
+ id="text2510"
+ y="457.2435"
+ x="151.77969"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="457.24350"
+ x="151.77969"
+ id="tspan2512"
+ sodipodi:role="line">end_data</tspan></text>
+ <path
+ id="path2514"
+ d="M 146.54159,435.92094 L 146.53395,470.94627 L 146.53395,470.94627"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2516"
+ y="530.07721"
+ x="180.5428"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="530.07721"
+ x="180.54280"
+ id="tspan2518"
+ sodipodi:role="line">next</tspan></text>
+ <text
+ id="text2520"
+ y="492.30292"
+ x="140.99677"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="492.30292"
+ x="140.99677"
+ id="tspan2522"
+ sodipodi:role="line">scan_starts</tspan></text>
+ <path
+ id="path2524"
+ d="M 27.385382,505.50503 L 215.69016,505.50503 L 215.07878,505.50503"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="261.43036"
+ y="234.91617"
+ id="text2528"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000"><tspan
+ sodipodi:role="line"
+ id="tspan2530"
+ x="261.43036"
+ y="234.91617">size</tspan></text>
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.3180897;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 32.740631,230.44254 L 242.11872,230.44254 L 241.43892,230.44254"
+ id="path2547"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.3275317;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 515.53150,230.44254 L 303.14294,230.44254 L 303.83251,230.44254"
+ id="path2570"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <rect
+ style="opacity:1.0000000;fill:#97ff9f;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2582"
+ width="496.99463"
+ height="95.744583"
+ x="96.555573"
+ y="672.34967"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <rect
+ style="fill:#000000;fill-opacity:0.21311475;fill-rule:evenodd;stroke:none;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2584"
+ width="369.79077"
+ height="95.629486"
+ x="96.954559"
+ y="672.45264"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <g
+ id="g2586"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000"
+ transform="translate(77.11341,416.8409)">
+ <rect
+ y="435.98193"
+ x="27.815228"
+ height="104.85226"
+ width="188.03888"
+ id="rect2588"
+ style="opacity:1.0000000;fill:#97ff9f;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2590"
+ y="457.2435"
+ x="78.252907"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="457.24350"
+ x="78.252907"
+ id="tspan2592"
+ sodipodi:role="line">next_data</tspan></text>
+ <path
+ id="path2594"
+ d="M 27.563951,470.57645 L 215.86873,470.57645 L 215.25735,470.57645"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <path
+ id="path2596"
+ d="M 71.898961,435.92093 L 71.891321,470.94626 L 71.891321,470.94626"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2598"
+ y="457.2435"
+ x="37.966347"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="457.24350"
+ x="37.966347"
+ id="tspan2600"
+ sodipodi:role="line">data</tspan></text>
+ <text
+ id="text2602"
+ y="457.2435"
+ x="151.77969"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="457.24350"
+ x="151.77969"
+ id="tspan2604"
+ sodipodi:role="line">end_data</tspan></text>
+ <path
+ id="path2606"
+ d="M 146.54159,435.92094 L 146.53395,470.94627 L 146.53395,470.94627"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2608"
+ y="530.07721"
+ x="180.5428"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="530.07721"
+ x="180.54280"
+ id="tspan2610"
+ sodipodi:role="line">next</tspan></text>
+ <text
+ id="text2612"
+ y="492.30292"
+ x="140.99677"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="492.30292"
+ x="140.99677"
+ id="tspan2614"
+ sodipodi:role="line">scan_starts</tspan></text>
+ <path
+ id="path2616"
+ d="M 27.385382,505.50503 L 215.69016,505.50503 L 215.07878,505.50503"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ </g>
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:round;stroke-linejoin:miter;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none"
+ d="M 390.69768,889.68866 C 331.80602,804.65889 96.803459,874.95173 98.410499,775.69915"
+ id="path2618"
+ sodipodi:nodetypes="cs"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:round;stroke-linejoin:round;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none"
+ d="M 415.68564,889.74159 C 415.11366,821.91550 190.04004,833.26343 189.29125,775.92074"
+ id="path2620"
+ sodipodi:nodetypes="cs"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none"
+ d="M 441.13138,889.63261 C 442.23723,818.56405 333.26911,828.85620 330.24174,775.49808"
+ id="path2622"
+ sodipodi:nodetypes="cs"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2617185;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 467.09369,672.45314 L 467.08605,767.76128 L 467.08605,767.76128"
+ id="path2624"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <rect
+ style="fill:#000000;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2626"
+ width="22.752682"
+ height="24.214773"
+ x="377.73553"
+ y="889.85596"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <rect
+ style="fill:#000000;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2628"
+ width="22.752682"
+ height="24.214773"
+ x="403.85040"
+ y="889.85596"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <rect
+ style="fill:#000000;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2630"
+ width="22.752682"
+ height="24.214773"
+ x="429.96527"
+ y="889.85596"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <rect
+ style="fill:#000000;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2632"
+ width="22.752682"
+ height="24.214773"
+ x="488.08020"
+ y="889.85596"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 292.81436,902.50755 C 372.54973,902.00248 372.54973,902.00248 372.54973,902.00248"
+ id="path2634"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="464.00037"
+ y="903.38983"
+ id="text2636"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000"><tspan
+ sodipodi:role="line"
+ id="tspan2638"
+ x="464.00037"
+ y="903.38983">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="456.84808"
+ y="945.75531"
+ id="text2640"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000"><tspan
+ sodipodi:role="line"
+ id="tspan2642"
+ x="456.84808"
+ y="945.75531">num_scan_starts</tspan></text>
+ </g>
+</svg>
diff --git a/docs/svgs/overview.svg b/docs/svgs/overview.svg
new file mode 100644
index 0000000000..af7bba2082
--- /dev/null
+++ b/docs/svgs/overview.svg
@@ -0,0 +1,282 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="800px"
+ height="600px"
+ id="svg2772"
+ sodipodi:version="0.32"
+ inkscape:version="0.42.2"
+ sodipodi:docbase="/home/miguel/mono/gc"
+ sodipodi:docname="overview.svg">
+ <defs
+ id="defs2774">
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Lend"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2392"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lstart"
+ style="overflow:visible">
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path2400"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+ transform="scale(0.8)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Mstart"
+ style="overflow:visible">
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path2397"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+ transform="scale(0.4)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.0000000"
+ inkscape:cx="408.00000"
+ inkscape:cy="412.00000"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:window-width="1388"
+ inkscape:window-height="998"
+ inkscape:window-x="0"
+ inkscape:window-y="27" />
+ <metadata
+ id="metadata2777">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <rect
+ style="fill:#000000;fill-opacity:0.21311475;fill-rule:evenodd;stroke:none;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2584"
+ width="369.79077"
+ height="95.629486"
+ x="-604.89539"
+ y="132.18524"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.094481px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="10.832281"
+ y="76.351082"
+ id="text2798"><tspan
+ sodipodi:role="line"
+ id="tspan2800"
+ x="10.832281"
+ y="76.351082">section_list</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:20.107187px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="98.57534"
+ y="38.764957"
+ id="text2804"><tspan
+ sodipodi:role="line"
+ id="tspan2806"
+ x="98.575340"
+ y="38.764957">Old Generations:</tspan></text>
+ <g
+ id="g2814"
+ transform="translate(2.000008,9.000000)">
+ <rect
+ inkscape:export-ydpi="90.000000"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ y="205.35193"
+ x="85.104614"
+ height="85.296158"
+ width="191.79076"
+ id="rect2808"
+ style="fill:#000000;fill-opacity:0.21311475;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2810"
+ y="255.49602"
+ x="134.04068"
+ style="font-size:20.107187px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="255.49602"
+ x="134.04068"
+ id="tspan2812"
+ sodipodi:role="line">Section 0</tspan></text>
+ </g>
+ <g
+ id="g2830"
+ transform="translate(-11.00000,-92.00000)">
+ <rect
+ inkscape:export-ydpi="90.000000"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ y="211.35191"
+ x="98.104622"
+ height="85.296158"
+ width="191.79076"
+ id="rect2821"
+ style="fill:#000000;fill-opacity:0.21311475;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2823"
+ y="261.496"
+ x="147.30086"
+ style="font-size:20.107187px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="261.49600"
+ x="147.30086"
+ id="tspan2825"
+ sodipodi:role="line">Section 1</tspan></text>
+ </g>
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4.0000000;stroke-dasharray:none"
+ d="M 48.000000,83.000000 C 43.000000,149.50000 75.000000,149.00000 75.000000,149.00000"
+ id="path2835"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:20.107187px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="340.95966"
+ y="38.764957"
+ id="text2843"><tspan
+ sodipodi:role="line"
+ id="tspan2845"
+ x="340.95966"
+ y="38.764957">New generation:</tspan></text>
+ <g
+ id="g2858"
+ transform="translate(-9.000000,-111.0000)">
+ <rect
+ inkscape:export-ydpi="90.000000"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ y="230.35193"
+ x="337.10461"
+ height="85.296158"
+ width="191.79076"
+ id="rect2849"
+ style="fill:#000000;fill-opacity:0.21311475;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2851"
+ y="278.23788"
+ x="392.74634"
+ style="font-size:20.107187px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="278.23788"
+ x="392.74634"
+ id="tspan2853"
+ sodipodi:role="line">Nursery</tspan></text>
+ </g>
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 83.203163,178.60032 C 23.635378,197.57995 77.069200,218.39965 77.069200,218.39965"
+ id="path2863"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:20.107187px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="567.95966"
+ y="38.54715"
+ id="text2865"><tspan
+ sodipodi:role="line"
+ id="tspan2867"
+ x="567.95966"
+ y="38.547150">Large Objects</tspan></text>
+ <rect
+ style="fill:#000000;fill-opacity:0.21311475;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2871"
+ width="32.620670"
+ height="29.945086"
+ x="606.68964"
+ y="122.02747"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.094481px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="555.71997"
+ y="76.351082"
+ id="text2881"><tspan
+ sodipodi:role="line"
+ id="tspan2883"
+ x="555.71997"
+ y="76.351082">los_object_list</tspan></text>
+ <rect
+ style="fill:#000000;fill-opacity:0.21311475;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2885"
+ width="32.620670"
+ height="29.945086"
+ x="663.68964"
+ y="122.02747"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <rect
+ style="fill:#000000;fill-opacity:0.21311475;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2887"
+ width="32.620670"
+ height="29.945086"
+ x="721.68964"
+ y="122.02747"
+ inkscape:export-filename="/tmp/gcmemsection.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.1409233;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 568.83205,82.879132 C 563.66843,136.52413 596.71567,136.12079 596.71567,136.12079"
+ id="path2889"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.95145077;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 697.37385,136.93683 C 695.78127,137.13796 713.17398,137.03871 713.17398,137.03871"
+ id="path2891"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.95145077;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 640.15146,136.93683 C 638.55888,137.13796 655.95159,137.03871 655.95159,137.03871"
+ id="path2893"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/docs/svgs/roots.svg b/docs/svgs/roots.svg
new file mode 100644
index 0000000000..fb3bf3055e
--- /dev/null
+++ b/docs/svgs/roots.svg
@@ -0,0 +1,761 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="744.09448819"
+ height="1052.3622047"
+ id="svg2895"
+ sodipodi:version="0.32"
+ inkscape:version="0.42.2"
+ sodipodi:docbase="/home/miguel/mono/gc"
+ sodipodi:docname="roots.svg">
+ <defs
+ id="defs2897">
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Mend"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2389"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(0.6) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Lend"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2392"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) rotate(180) translate(-5,0)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.35000000"
+ inkscape:cx="795.16964"
+ inkscape:cy="595.84469"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:window-width="1388"
+ inkscape:window-height="998"
+ inkscape:window-x="0"
+ inkscape:window-y="27" />
+ <metadata
+ id="metadata2900">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="opacity:1.0000000;fill:#97ff9f;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.4505868;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2582"
+ width="669.29736"
+ height="95.744583"
+ x="46.683918"
+ y="777.24200"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2584"
+ width="27.900555"
+ height="95.629486"
+ x="46.834984"
+ y="777.29956"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="rect2908"
+ width="192.52747"
+ height="115.43071"
+ x="56.774403"
+ y="580.48413"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <g
+ id="g2963"
+ transform="translate(0.678249,-1.235298)"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998">
+ <text
+ id="text2910"
+ y="604.86456"
+ x="72.848167"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="604.86456"
+ x="72.848167"
+ id="tspan2912"
+ sodipodi:role="line">CPU Register References</tspan></text>
+ <text
+ id="text2914"
+ y="631.28149"
+ x="73.557152"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ id="tspan2918"
+ y="631.28149"
+ x="73.557152"
+ sodipodi:role="line">Thread Local Variables</tspan></text>
+ <text
+ id="text2920"
+ y="656.53534"
+ x="72.73098"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ id="tspan2924"
+ y="656.53534"
+ x="72.730980"
+ sodipodi:role="line">Static fields</tspan></text>
+ <text
+ id="text2926"
+ y="680.6261"
+ x="72.344261"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="680.62610"
+ x="72.344261"
+ id="tspan2928"
+ sodipodi:role="line">Runtime object references</tspan></text>
+ </g>
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0148686px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 141.15688,696.28653 L 99.281852,736.43697 L 57.406801,776.58742"
+ id="path2939"
+ sodipodi:nodetypes="ccc"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0046772px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 141.42136,696.03556 L 140.41120,776.58585 L 141.42136,696.03556 z "
+ id="path2943"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0069753px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 141.67310,696.54376 L 297.99580,777.59288 L 141.67310,696.54376 z "
+ id="path2945"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 141.42136,695.77833 L 577.80726,776.59054"
+ id="path2947"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2957"
+ width="18.257698"
+ height="95.629486"
+ x="130.87115"
+ y="777.29956"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2959"
+ width="50.757698"
+ height="95.629486"
+ x="274.94327"
+ y="777.29956"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2961"
+ width="29.686272"
+ height="95.629486"
+ x="563.54974"
+ y="777.29956"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:0.21311475;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2991"
+ width="27.900555"
+ height="95.629486"
+ x="182.01932"
+ y="777.29956"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:0.21311475;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3004"
+ width="27.900555"
+ height="95.629486"
+ x="378.19257"
+ y="777.29956"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:0.21311475;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3006"
+ width="27.900555"
+ height="95.629486"
+ x="482.47830"
+ y="777.29956"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:0.21311475;fill-rule:evenodd;stroke:#000000;stroke-width:0.97463667;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3008"
+ width="16.962049"
+ height="95.629486"
+ x="638.66180"
+ y="777.29956"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <g
+ id="g3115"
+ transform="translate(202.3879,-322.8571)"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998">
+ <g
+ transform="translate(-428.5714,398.5714)"
+ id="g3100">
+ <rect
+ style="fill:#000000;fill-opacity:0.21176471;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2985"
+ width="15.082790"
+ height="13.979280"
+ x="510.61618"
+ y="99.134712"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.756983px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="534.28992"
+ y="110.82124"
+ id="text2987"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998"><tspan
+ sodipodi:role="line"
+ id="tspan2989"
+ x="534.28992"
+ y="110.82124">Live Objects</tspan></text>
+ </g>
+ <g
+ transform="translate(-282.8963,371.4286)"
+ id="g3105">
+ <rect
+ style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3010"
+ width="15.082790"
+ height="13.979280"
+ x="510.61618"
+ y="127.17164"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.756983px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="534.28992"
+ y="138.85815"
+ id="text3012"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998"><tspan
+ sodipodi:role="line"
+ id="tspan3014"
+ x="534.28992"
+ y="138.85815">Pinned objects</tspan></text>
+ </g>
+ <g
+ transform="translate(-118.5714,344.2857)"
+ id="g3110">
+ <rect
+ style="fill:#000000;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3016"
+ width="15.082790"
+ height="13.979280"
+ x="510.61618"
+ y="155.20856"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.756983px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="534.9516"
+ y="166.89508"
+ id="text3018"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998"><tspan
+ sodipodi:role="line"
+ id="tspan3020"
+ x="534.95160"
+ y="166.89508">Garbage</tspan></text>
+ </g>
+ </g>
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 137.92030,871.86711 C 188.66513,922.95790 194.93685,877.96303 194.93685,877.96303"
+ id="path3022"
+ sodipodi:nodetypes="cc"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.4878695;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 578.24777,873.42803 C 511.53352,930.94739 498.89508,879.52395 498.89508,879.52395"
+ id="path3030"
+ sodipodi:nodetypes="cc"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 579.45614,874.14232 C 638.45729,925.94739 644.82958,878.80967 644.82958,878.80967"
+ id="path3032"
+ sodipodi:nodetypes="cc"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 494.45285,873.73905 C 407.69664,931.25841 391.26142,879.83497 391.26142,879.83497"
+ id="path3034"
+ sodipodi:nodetypes="cc"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="opacity:1.0000000;fill:#97ff9f;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.4505868;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3046"
+ width="669.29736"
+ height="95.744583"
+ x="22.945324"
+ y="209.49988"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:0.21176471;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3048"
+ width="27.900555"
+ height="95.629486"
+ x="23.096386"
+ y="209.55743"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3050"
+ width="18.257698"
+ height="95.629486"
+ x="107.13255"
+ y="209.55743"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:0.21176471;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3052"
+ width="50.757698"
+ height="95.629486"
+ x="251.20467"
+ y="209.55743"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:0.21176471;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3054"
+ width="29.686272"
+ height="95.629486"
+ x="539.81110"
+ y="209.55743"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3056"
+ width="27.900555"
+ height="95.629486"
+ x="158.28072"
+ y="209.55743"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:0.21176471;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3058"
+ width="27.900555"
+ height="95.629486"
+ x="354.45398"
+ y="209.55743"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3060"
+ width="27.900555"
+ height="95.629486"
+ x="458.73972"
+ y="209.55743"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:0.21176471;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3062"
+ width="67.113373"
+ height="95.629486"
+ x="616.36401"
+ y="209.55743"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="opacity:1.0000000;fill:#97ff9f;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3070"
+ width="664.46503"
+ height="95.744583"
+ x="26.226122"
+ y="376.36218"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <text
+ xml:space="preserve"
+ style="font-size:17.390287px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="27.714634"
+ y="188.57069"
+ id="text3072"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998"><tspan
+ sodipodi:role="line"
+ id="tspan3074"
+ x="27.714634"
+ y="188.57069">Nursery</tspan></text>
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 38.932235,305.42360 C 429.52601,373.97550 429.52601,373.97550 429.52601,373.97550"
+ id="path3080"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:0.21176471;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3082"
+ width="27.900555"
+ height="95.629486"
+ x="422.33337"
+ y="376.38739"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:0.21176471;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3084"
+ width="50.757698"
+ height="95.629486"
+ x="450.34406"
+ y="376.38739"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:0.21176471;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3086"
+ width="27.900555"
+ height="95.629486"
+ x="501.12524"
+ y="376.38739"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 278.36297,305.36424 C 467.63468,373.52980 467.63468,373.52980 467.63468,373.52980"
+ id="path3088"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 368.98559,305.36818 C 510.35219,374.03095 510.35219,374.03095 510.35219,374.03095"
+ id="path3090"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:0.21176471;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3092"
+ width="29.686272"
+ height="95.629486"
+ x="529.02173"
+ y="376.38739"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 556.19390,305.83615 C 543.35713,370.53254 543.35713,370.53254 543.35713,370.53254"
+ id="path3096"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 662.57239,304.85879 C 591.02693,373.02510 591.02693,373.02510 591.02693,373.02510"
+ id="path3098"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <g
+ id="g3135"
+ transform="translate(954.7939,-183.4489)"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998">
+ <g
+ transform="translate(-460.0000,398.5714)"
+ id="g3137"
+ inkscape:export-filename="/tmp/nursery-pinned.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998">
+ <rect
+ style="fill:#000000;fill-opacity:0.21176471;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3139"
+ width="15.082790"
+ height="13.979280"
+ x="510.61618"
+ y="99.134712"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.756983px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="534.28992"
+ y="110.82124"
+ id="text3141"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998"><tspan
+ sodipodi:role="line"
+ id="tspan3143"
+ x="534.28992"
+ y="110.82124">Live Objects</tspan></text>
+ </g>
+ <g
+ transform="translate(-312.2437,371.4286)"
+ id="g3145"
+ inkscape:export-filename="/tmp/nursery-pinned.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998">
+ <rect
+ style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3147"
+ width="15.082790"
+ height="13.979280"
+ x="510.61618"
+ y="127.17164"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.756983px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="534.28992"
+ y="138.85815"
+ id="text3149"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998"><tspan
+ sodipodi:role="line"
+ id="tspan3151"
+ x="534.28992"
+ y="138.85815">Pinned objects</tspan></text>
+ </g>
+ <g
+ id="g3186"
+ transform="translate(-31.42857,0.000000)"
+ inkscape:export-filename="/tmp/nursery-pinned.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998">
+ <rect
+ style="fill:#000000;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3155"
+ width="15.082790"
+ height="13.979280"
+ x="392.04477"
+ y="499.49426"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.756983px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="416.38019"
+ y="511.18079"
+ id="text3157"
+ inkscape:export-filename="/tmp/roots.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998"><tspan
+ sodipodi:role="line"
+ id="tspan3159"
+ x="416.38019"
+ y="511.18079">Free Memory</tspan></text>
+ </g>
+ </g>
+ <rect
+ style="opacity:1.0000000;fill:#97ff9f;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.4505868;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3161"
+ width="669.29736"
+ height="95.744583"
+ x="775.35132"
+ y="348.90802"
+ inkscape:export-filename="/tmp/nursery-pinned.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3165"
+ width="18.257698"
+ height="95.629486"
+ x="859.53857"
+ y="348.96558"
+ inkscape:export-filename="/tmp/nursery-pinned.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3171"
+ width="27.900555"
+ height="95.629486"
+ x="910.68671"
+ y="348.96558"
+ inkscape:export-filename="/tmp/nursery-pinned.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3175"
+ width="27.900555"
+ height="95.629486"
+ x="1211.1458"
+ y="348.96558"
+ inkscape:export-filename="/tmp/nursery-pinned.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <text
+ xml:space="preserve"
+ style="font-size:17.390287px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="776.12061"
+ y="327.97885"
+ id="text3179"
+ inkscape:export-filename="/tmp/nursery-pinned.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998"><tspan
+ sodipodi:role="line"
+ id="tspan3181"
+ x="776.12061"
+ y="327.97885">Nursery</tspan></text>
+ <rect
+ style="fill:#000000;fill-opacity:0.21176471;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3191"
+ width="67.113373"
+ height="95.629486"
+ x="558.71350"
+ y="376.38739"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <rect
+ style="fill:#000000;fill-opacity:0.21176471;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect3193"
+ width="396.27408"
+ height="95.629486"
+ x="26.046309"
+ y="376.15903"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998" />
+ <text
+ xml:space="preserve"
+ style="font-size:17.390287px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans;stroke-miterlimit:4.0000000;stroke-dasharray:none"
+ x="28.444891"
+ y="361.90738"
+ id="text3204"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998"><tspan
+ sodipodi:role="line"
+ id="tspan3206"
+ x="28.444891"
+ y="361.90738">Old generation</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.176956px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans;stroke-miterlimit:4.0000000;stroke-dasharray:none"
+ x="58.242008"
+ y="430.84366"
+ id="text3208"
+ inkscape:export-filename="/tmp/nursery.png"
+ inkscape:export-xdpi="91.239998"
+ inkscape:export-ydpi="91.239998"><tspan
+ sodipodi:role="line"
+ id="tspan3210"
+ x="58.242008"
+ y="430.84366">Objects from the previous generation</tspan></text>
+ </g>
+</svg>
diff --git a/docs/svgs/stacks.svg b/docs/svgs/stacks.svg
new file mode 100644
index 0000000000..46b9785954
--- /dev/null
+++ b/docs/svgs/stacks.svg
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="744.09448819"
+ height="1052.3622047"
+ id="svg2324"
+ sodipodi:version="0.32"
+ inkscape:version="0.42.2"
+ sodipodi:docbase="/home/miguel/mono/gc"
+ sodipodi:docname="stacks.svg">
+ <defs
+ id="defs2326">
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="TriangleOutL"
+ style="overflow:visible">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2462"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+ transform="scale(0.8)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lstart"
+ style="overflow:visible">
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path2535"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+ transform="scale(0.8)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.98994949"
+ inkscape:cx="247.73586"
+ inkscape:cy="588.43222"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:window-width="1388"
+ inkscape:window-height="998"
+ inkscape:window-x="0"
+ inkscape:window-y="27" />
+ <metadata
+ id="metadata2329">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="opacity:1.0000000;fill:#97ff9f;fill-opacity:0.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0371026;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2332"
+ width="198.44141"
+ height="408.83401"
+ x="46.241261"
+ y="174.59003" />
+ <g
+ id="g2356"
+ transform="translate(-27.27417,130.3097)">
+ <rect
+ y="582.59204"
+ x="312.92154"
+ height="119.77635"
+ width="198.44141"
+ id="rect2342"
+ style="opacity:1.0000000;fill:#3a3a3a;fill-opacity:0.20765026;fill-rule:evenodd;stroke:#000000;stroke-width:0.56134999;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2344"
+ y="699.81897"
+ x="523.83838"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="699.81897"
+ x="523.83838"
+ id="tspan2346"
+ sodipodi:role="line">stack_start</tspan></text>
+ <text
+ id="text2348"
+ y="593.75293"
+ x="523.83838"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="593.75293"
+ x="523.83838"
+ id="tspan2350"
+ sodipodi:role="line">stack_end</tspan></text>
+ <text
+ id="text2352"
+ y="646.71393"
+ x="366.79654"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="646.71393"
+ x="366.79654"
+ id="tspan2354"
+ sodipodi:role="line">Thread N stack</tspan></text>
+ </g>
+ <rect
+ style="opacity:1.0000000;fill:#3a3a3a;fill-opacity:0.20765026;fill-rule:evenodd;stroke:#000000;stroke-width:0.54655713;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2392"
+ width="198.44141"
+ height="113.54674"
+ x="45.884109"
+ y="175.09026" />
+ <rect
+ style="opacity:1.0000000;fill:#3a3a3a;fill-opacity:0.20765026;fill-rule:evenodd;stroke:#000000;stroke-width:0.39553967;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2367"
+ width="198.44141"
+ height="59.468048"
+ x="45.734818"
+ y="175.04271" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="251.71294"
+ y="231.87846"
+ id="text2369"><tspan
+ sodipodi:role="line"
+ id="tspan2371"
+ x="251.71294"
+ y="231.87846">info-&gt;stack_start</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="251.71294"
+ y="187.96211"
+ id="text2373"><tspan
+ sodipodi:role="line"
+ id="tspan2375"
+ x="251.71294"
+ y="187.96211">info-&gt;stack_end</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="99.609818"
+ y="209.25038"
+ id="text2388"><tspan
+ sodipodi:role="line"
+ id="tspan2390"
+ x="99.609818"
+ y="209.25038">Thread 1 stack</tspan></text>
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.86822808;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#TriangleOutL);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 144.95552,246.36741 C 144.95552,277.32787 144.95552,277.32787 144.95552,277.32787"
+ id="path2405" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="251.71294"
+ y="284.74033"
+ id="text2553"><tspan
+ sodipodi:role="line"
+ id="tspan2555"
+ x="251.71294"
+ y="284.74033">limit: stack bottom</tspan></text>
+ <g
+ id="g2664"
+ transform="translate(0.134777,113.7128)">
+ <rect
+ y="175.09026"
+ x="45.884109"
+ height="113.54674"
+ width="198.44141"
+ id="rect2666"
+ style="opacity:1.0000000;fill:#3a3a3a;fill-opacity:0.20765026;fill-rule:evenodd;stroke:#000000;stroke-width:0.54655713;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <rect
+ y="175.04271"
+ x="45.734818"
+ height="59.468048"
+ width="198.44141"
+ id="rect2668"
+ style="opacity:1.0000000;fill:#3a3a3a;fill-opacity:0.20765026;fill-rule:evenodd;stroke:#000000;stroke-width:0.39553967;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2670"
+ y="231.87846"
+ x="251.71294"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="231.87846"
+ x="251.71294"
+ id="tspan2672"
+ sodipodi:role="line">info-&gt;stack_start</tspan></text>
+ <text
+ id="text2674"
+ y="187.96211"
+ x="251.71294"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="187.96211"
+ x="251.71294"
+ id="tspan2676"
+ sodipodi:role="line">info-&gt;stack_end</tspan></text>
+ <text
+ id="text2678"
+ y="209.25038"
+ x="99.609818"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="209.25038"
+ x="99.609818"
+ id="tspan2680"
+ sodipodi:role="line">Thread 2 stack</tspan></text>
+ <path
+ id="path2682"
+ d="M 144.95552,246.36741 C 144.95552,277.32787 144.95552,277.32787 144.95552,277.32787"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.86822808;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#TriangleOutL);stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <text
+ id="text2684"
+ y="284.74033"
+ x="251.71294"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="284.74033"
+ x="251.71294"
+ id="tspan2686"
+ sodipodi:role="line">limit: stack bottom</tspan></text>
+ </g>
+ <rect
+ style="opacity:1.0000000;fill:#000000;fill-opacity:0.098360606;fill-rule:evenodd;stroke:#000000;stroke-width:0.57452667;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ id="rect2699"
+ width="198.44141"
+ height="125.46541"
+ x="46.136436"
+ y="457.94003" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.000000px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+ x="81.862022"
+ y="523.79871"
+ id="text2701"><tspan
+ sodipodi:role="line"
+ id="tspan2703"
+ x="81.862022"
+ y="523.79871">Program, Data, Heap</tspan></text>
+ </g>
+</svg>
diff --git a/docs/toc.xml b/docs/toc.xml
new file mode 100644
index 0000000000..f131df4499
--- /dev/null
+++ b/docs/toc.xml
@@ -0,0 +1,193 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:monodoc="http://www.go-mono.org/xml/monodoc">
+<head/>
+<body>
+ <object type="text/site properties">
+ <param name="Auto Generated" value="No"/>
+ </object>
+ <ul>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Mono Runtime API"/>
+ <param name="Local" value="DoesNotExist"/>
+ </object>
+ </li>
+ <ul>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Assemblies"/>
+ <param name="Local" value="deploy/mono-api-assembly.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Images"/>
+ <param name="Local" value="deploy/mono-api-image.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Objects"/>
+ <param name="Local" value="deploy/mono-api-object.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Strings"/>
+ <param name="Local" value="deploy/mono-api-string.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Methods"/>
+ <param name="Local" value="deploy/mono-api-methods.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Classes"/>
+ <param name="Local" value="deploy/mono-api-class.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Code Generation"/>
+ <param name="Local" value="deploy/mono-api-codegen.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Decimal Representation"/>
+ <param name="Local" value="deploy/mono-api-decimal.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Application Domains"/>
+ <param name="Local" value="deploy/mono-api-domains.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Dynamic Code Generation"/>
+ <param name="Local" value="deploy/mono-api-dynamic-codegen.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Exceptions"/>
+ <param name="Local" value="deploy/mono-api-exc.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="GC Handles"/>
+ <param name="Local" value="deploy/mono-api-gchandle.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Garbage Collection"/>
+ <param name="Local" value="deploy/mono-api-gc.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Embedding Mono"/>
+ <param name="Local" value="deploy/mono-api-embedding.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Just in Time Compiler"/>
+ <param name="Local" value="deploy/mono-api-jit.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Marshalling"/>
+ <param name="Local" value="deploy/mono-api-marshal.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Metadata access"/>
+ <param name="Local" value="deploy/mono-api-metadata.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Profiler"/>
+ <param name="Local" value="deploy/mono-api-profiler.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Reflection"/>
+ <param name="Local" value="deploy/mono-api-reflection.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Threading API"/>
+ <param name="Local" value="deploy/mono-api-threads.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Tracing"/>
+ <param name="Local" value="deploy/mono-api-trace.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="JIT Counters"/>
+ <param name="Local" value="deploy/mono-api-counters.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Types"/>
+ <param name="Local" value="deploy/mono-api-type.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Common Types"/>
+ <param name="Local" value="deploy/mono-api-types.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Security API calls"/>
+ <param name="Local" value="deploy/mono-api-security.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Portable Windows Layer"/>
+ <param name="Local" value="deploy/mono-api-wapi.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Debugging API"/>
+ <param name="Local" value="deploy/mono-api-debug.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Utility Functions"/>
+ <param name="Local" value="deploy/mono-api-utils.html"/>
+ </object>
+ </li>
+ <li>
+ <object type="text/sitemap">
+ <param name="Name" value="Unsorted"/>
+ <param name="Local" value="deploy/mono-api-unsorted.html"/>
+ </object>
+ </li>
+ </ul>
+ </ul>
+ </body>
+</html>