summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore12
-rw-r--r--Makefile.am1
-rw-r--r--configure.ac5
-rw-r--r--docs/Makefile.am1
-rw-r--r--docs/reference/Makefile.am44
-rw-r--r--docs/reference/gi-decl-list.txt279
-rw-r--r--docs/reference/gi-decl.txt1596
-rw-r--r--docs/reference/gi-docs.sgml64
-rw-r--r--docs/reference/gi-overrides.txt0
-rw-r--r--docs/reference/gi-sections.txt279
-rw-r--r--docs/reference/gi.types2
-rw-r--r--docs/reference/tmpl/gi-unused.sgml0
-rw-r--r--docs/reference/tmpl/ginfo.sgml43
-rw-r--r--docs/reference/tmpl/girepository.sgml1683
-rw-r--r--docs/reference/tmpl/girffi.sgml78
-rw-r--r--docs/reference/tmpl/girmodule.sgml71
-rw-r--r--docs/reference/tmpl/girnode.sgml420
-rw-r--r--docs/reference/tmpl/girparser.sgml74
-rw-r--r--docs/reference/tmpl/girwriter.sgml28
-rw-r--r--docs/reference/tmpl/gtypelib.sgml99
-rw-r--r--docs/reference/version.xml.in2
-rw-r--r--girepository/ginfo.c4
-rw-r--r--girepository/girepository.c77
-rw-r--r--girepository/girffi.c2
-rw-r--r--girepository/giroffsets.c2
-rw-r--r--girepository/girparser.c8
-rw-r--r--girepository/gtypelib.c1
-rw-r--r--m4/gtk-doc.m443
28 files changed, 4875 insertions, 43 deletions
diff --git a/.gitignore b/.gitignore
index a6726fb6..a1615045 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
*.lo
*.o
*.pyc
+*.stamp
.deps
.libs
Makefile
@@ -18,6 +19,7 @@ config.sub
configure
COPYING
depcomp
+gtk-doc.make
gobject-introspection-1.0.pc
INSTALL
install-sh
@@ -27,6 +29,8 @@ missing
stamp-h1
ylwrap
py-compile
+docs/reference/html
+docs/reference/xml
gir/GIRepository-2.0.gir
gir/GIRepository-2.0.typelib
gir/GL-1.0.typelib
@@ -58,7 +62,14 @@ tests/everything/Everything-1.0.gir
tests/everything/Everything-1.0.tgir
tests/everything/Everything-1.0.typelib
tests/invoke/testfns-metadata.c
+tests/invoke/genericmarshaller
+tests/invoke/invoke
tests/offsets/gitestoffsets.c
+tests/offsets/gitestoffsets
+tests/offsets/offsets-1.0.gir
+tests/offsets/offsets-1.0.typelib
+tests/offsets/offsets.compiled
+tests/offsets/offsets.introspected
tests/repository/gitestrepo
tests/repository/gitestthrows
tests/scanner/BarApp-1.0.gir
@@ -80,5 +91,6 @@ tests/scanner/foo-1.0.typelib
tests/scanner/utility-1.0.gir
tests/scanner/utility-1.0.tgir
tests/scanner/utility-1.0.typelib
+tests/extended.gir.test
tools/g-ir-compiler
tools/g-ir-generate
diff --git a/Makefile.am b/Makefile.am
index c620f43a..d6590982 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -33,6 +33,7 @@ EXTRA_DIST = \
CONTRIBUTORS \
$(pkgconfig_DATA) \
$(man_MANS) \
+ m4/introspection.m4 \
misc/pep8.py \
misc/pyflakes.py
diff --git a/configure.ac b/configure.ac
index 6f255e1e..4182a9dc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -161,6 +161,9 @@ GIREPO_CFLAGS="$GIREPO_CFLAGS $FFI_CFLAGS"
GIREPO_CFLAGS="$GIREPO_CFLAGS $GCOV_CFLAGS"
+# gtk-doc
+GTK_DOC_CHECK([1.12])
+
# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([fcntl.h stdlib.h string.h])
@@ -201,5 +204,7 @@ tests/offsets/Makefile
tests/scanner/Makefile
tests/repository/Makefile
tests/everything/Makefile
+docs/Makefile
+docs/reference/Makefile
gobject-introspection-1.0.pc])
AC_OUTPUT
diff --git a/docs/Makefile.am b/docs/Makefile.am
new file mode 100644
index 00000000..f3ddc22d
--- /dev/null
+++ b/docs/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = reference
diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am
new file mode 100644
index 00000000..efc70c92
--- /dev/null
+++ b/docs/reference/Makefile.am
@@ -0,0 +1,44 @@
+AUTOMAKE_OPTIONS = 1.6
+
+# The name of the module.
+DOC_MODULE=gi
+
+# The top-level SGML file.
+DOC_MAIN_SGML_FILE=gi-docs.sgml
+
+# The directory containing the source code. Relative to $(srcdir)
+DOC_SOURCE_DIR=../../girepository
+
+# Extra options to supply to gtkdoc-scan
+SCAN_OPTIONS=
+
+# Extra options to supply to gtkdoc-mkdb
+MKDB_OPTIONS=--sgml-mode --output-format=xml --namespace=g
+
+# Used for dependencies
+HFILE_GLOB=$(top_srcdir)/girepository/*.h
+CFILE_GLOB=$(top_srcdir)/girepository/*.c
+
+# Headers to ignore
+IGNORE_HFILES=
+
+INCLUDES=$(GIREPO_CFLAGS) -I$(top_srcdir)
+GTKDOC_LIBS = $(GIREPO_LIBS) $(top_builddir)/girepository/libgirepository-1.0.la $(top_builddir)/girepository/libgirepository-parser.la
+
+# Extra options to supply to gtkdoc-fixref
+FIXXREF_OPTIONS=
+
+# include common portion ...
+include $(top_srcdir)/gtk-doc.make
+
+# Other files to distribute
+EXTRA_DIST +=version.xml.in
+
+########################################################################
+
+dist-hook-local: $(BUILT_EXTRA_DIST)
+ files='$(BUILT_EXTRA_DIST)'; \
+ for f in $$files; do \
+ if test -f $$f; then d=.; else d=$(srcdir); fi; \
+ cp $$d/$$f $(distdir) || exit 1; done
+
diff --git a/docs/reference/gi-decl-list.txt b/docs/reference/gi-decl-list.txt
new file mode 100644
index 00000000..952f4946
--- /dev/null
+++ b/docs/reference/gi-decl-list.txt
@@ -0,0 +1,279 @@
+<SECTION>
+<FILE>girepository</FILE>
+G_TYPE_IREPOSITORY
+G_IREPOSITORY
+GIRepositoryPrivate
+GIBaseInfo
+GICallableInfo
+GIFunctionInfo
+GICallbackInfo
+GIRegisteredTypeInfo
+GIStructInfo
+GIUnionInfo
+GIEnumInfo
+GIObjectInfo
+GIInterfaceInfo
+GIConstantInfo
+GIValueInfo
+GISignalInfo
+GIVFuncInfo
+GIPropertyInfo
+GIFieldInfo
+GIArgInfo
+GITypeInfo
+GIErrorDomainInfo
+GIUnresolvedInfo
+GTypelib
+<TITLE>GIRepository</TITLE>
+GIRepository
+GIRepositoryLoadFlags
+g_irepository_get_default
+g_irepository_prepend_search_path
+g_irepository_get_search_path
+g_irepository_load_typelib
+g_irepository_is_registered
+g_irepository_find_by_name
+g_irepository_require
+g_irepository_get_dependencies
+g_irepository_get_loaded_namespaces
+g_irepository_find_by_gtype
+g_irepository_get_n_infos
+g_irepository_get_info
+g_irepository_get_typelib_path
+g_irepository_get_shared_library
+g_irepository_get_version
+g_irepository_get_option_group
+g_irepository_dump
+g_typelib_new_from_memory
+g_typelib_new_from_const_memory
+g_typelib_new_from_mapped_file
+g_typelib_free
+g_typelib_symbol
+g_typelib_get_namespace
+GIRepositoryError
+G_IREPOSITORY_ERROR
+g_irepository_error_quark
+gi_cclosure_marshal_generic
+GIInfoType
+g_base_info_ref
+g_base_info_unref
+g_base_info_get_type
+g_base_info_get_name
+g_base_info_get_namespace
+g_base_info_is_deprecated
+g_base_info_get_annotation
+g_base_info_get_container
+g_base_info_get_typelib
+g_info_new
+GIFunctionInfoFlags
+g_function_info_get_symbol
+g_function_info_get_flags
+g_function_info_get_property
+g_function_info_get_vfunc
+G_INVOKE_ERROR
+g_invoke_error_quark
+GInvokeError
+g_function_info_invoke
+GITransfer
+g_callable_info_get_return_type
+g_callable_info_get_caller_owns
+g_callable_info_may_return_null
+g_callable_info_get_n_args
+g_callable_info_get_arg
+GIDirection
+GIScopeType
+g_arg_info_get_direction
+g_arg_info_is_dipper
+g_arg_info_is_return_value
+g_arg_info_is_optional
+g_arg_info_may_be_null
+g_arg_info_get_ownership_transfer
+g_arg_info_get_scope
+g_arg_info_get_closure
+g_arg_info_get_destroy
+g_arg_info_get_type
+GITypeTag
+g_type_tag_to_string
+g_type_info_is_pointer
+g_type_info_get_tag
+g_type_info_get_param_type
+g_type_info_get_interface
+g_type_info_get_array_length
+g_type_info_get_array_fixed_size
+g_type_info_is_zero_terminated
+g_type_info_get_n_error_domains
+g_type_info_get_error_domain
+g_error_domain_info_get_quark
+g_error_domain_info_get_codes
+g_value_info_get_value
+GIFieldInfoFlags
+g_field_info_get_flags
+g_field_info_get_size
+g_field_info_get_offset
+g_field_info_get_type
+g_field_info_get_field
+g_field_info_set_field
+g_union_info_get_n_fields
+g_union_info_get_field
+g_union_info_get_n_methods
+g_union_info_get_method
+g_union_info_is_discriminated
+g_union_info_get_discriminator_offset
+g_union_info_get_discriminator_type
+g_union_info_get_discriminator
+g_union_info_find_method
+g_union_info_get_size
+g_union_info_get_alignment
+g_struct_info_get_n_fields
+g_struct_info_get_field
+g_struct_info_get_n_methods
+g_struct_info_get_method
+g_struct_info_find_method
+g_struct_info_get_size
+g_struct_info_get_alignment
+g_struct_info_is_class_struct
+g_registered_type_info_get_type_name
+g_registered_type_info_get_type_init
+g_registered_type_info_get_g_type
+g_enum_info_get_n_values
+g_enum_info_get_value
+g_enum_info_get_storage_type
+g_object_info_get_type_name
+g_object_info_get_type_init
+g_object_info_get_abstract
+g_object_info_get_parent
+g_object_info_get_n_interfaces
+g_object_info_get_interface
+g_object_info_get_n_fields
+g_object_info_get_field
+g_object_info_get_n_properties
+g_object_info_get_property
+g_object_info_get_n_methods
+g_object_info_get_method
+g_object_info_find_method
+g_object_info_get_n_signals
+g_object_info_get_signal
+g_object_info_get_n_vfuncs
+g_object_info_get_vfunc
+g_object_info_get_n_constants
+g_object_info_get_constant
+g_object_info_get_class_struct
+g_interface_info_get_n_prerequisites
+g_interface_info_get_prerequisite
+g_interface_info_get_n_properties
+g_interface_info_get_property
+g_interface_info_get_n_methods
+g_interface_info_get_method
+g_interface_info_find_method
+g_interface_info_get_n_signals
+g_interface_info_get_signal
+g_interface_info_get_n_vfuncs
+g_interface_info_get_vfunc
+g_interface_info_get_n_constants
+g_interface_info_get_constant
+g_property_info_get_flags
+g_property_info_get_type
+g_signal_info_get_flags
+g_signal_info_get_class_closure
+g_signal_info_true_stops_emit
+GIVFuncInfoFlags
+g_vfunc_info_get_flags
+g_vfunc_info_get_offset
+g_vfunc_info_get_signal
+g_constant_info_get_type
+g_constant_info_get_value
+<SUBSECTION Standard>
+G_TYPE_TAG_IS_BASIC
+g_irepository_get_type
+</SECTION>
+
+<SECTION>
+<FILE>gtypelib</FILE>
+G_IR_MAGIC
+GTypelib
+g_typelib_get_dir_entry
+g_typelib_check_sanity
+g_typelib_get_string
+GTypelibError
+G_TYPELIB_ERROR
+g_typelib_error_quark
+g_typelib_validate
+<SUBSECTION Standard>
+BLOB_IS_REGISTERED_TYPE
+</SECTION>
+
+<SECTION>
+<FILE>ginfo</FILE>
+g_type_info_new
+g_info_new_full
+</SECTION>
+
+<SECTION>
+<FILE>girffi</FILE>
+GIFFIClosureCallback
+g_ir_ffi_get_ffi_type
+g_callable_info_get_ffi_arg_types
+g_callable_info_get_ffi_return_type
+g_callable_info_prepare_closure
+g_callable_info_free_closure
+</SECTION>
+
+<SECTION>
+<FILE>girmodule</FILE>
+GIrModule
+g_ir_module_new
+g_ir_module_free
+g_ir_module_add_include_module
+g_ir_module_build_typelib
+</SECTION>
+
+<SECTION>
+<FILE>girnode</FILE>
+GIrNodeFunction
+GIrNodeParam
+GIrNodeType
+GIrNodeSignal
+GIrNodeProperty
+GIrNodeVFunc
+GIrNodeField
+GIrNodeValue
+GIrNodeEnum
+GIrNodeBoxed
+GIrNodeStruct
+GIrNodeConstant
+GIrNodeErrorDomain
+GIrNodeXRef
+GIrNodeUnion
+GIrNodeTypeId
+<TITLE>GIrNode</TITLE>
+GIrNode
+g_ir_node_new
+g_ir_node_free
+g_ir_node_get_size
+g_ir_node_get_full_size
+g_ir_node_build_typelib
+g_ir_node_cmp
+g_ir_node_can_have_member
+g_ir_node_add_member
+write_string
+g_ir_node_param_direction_string
+g_ir_node_type_to_string
+g_ir_find_node
+g_ir_node_compute_offsets
+</SECTION>
+
+<SECTION>
+<FILE>girparser</FILE>
+GIrParser
+g_ir_parser_new
+g_ir_parser_free
+g_ir_parser_set_includes
+g_ir_parser_parse_string
+g_ir_parser_parse_file
+</SECTION>
+
+<SECTION>
+<FILE>girwriter</FILE>
+g_idl_writer_save_file
+</SECTION>
+
diff --git a/docs/reference/gi-decl.txt b/docs/reference/gi-decl.txt
new file mode 100644
index 00000000..e35b6a52
--- /dev/null
+++ b/docs/reference/gi-decl.txt
@@ -0,0 +1,1596 @@
+<FUNCTION>
+<NAME>g_type_info_new</NAME>
+<RETURNS>GITypeInfo *</RETURNS>
+GIBaseInfo *container,GTypelib *typelib,guint32 offset
+</FUNCTION>
+<FUNCTION>
+<NAME>g_info_new_full</NAME>
+<RETURNS>GIBaseInfo *</RETURNS>
+GIInfoType type,GIRepository *repository,GIBaseInfo *container,GTypelib *typelib,guint32 offset
+</FUNCTION>
+<MACRO>
+<NAME>G_TYPE_IREPOSITORY</NAME>
+#define G_TYPE_IREPOSITORY (g_irepository_get_type ())
+</MACRO>
+<MACRO>
+<NAME>G_IREPOSITORY</NAME>
+#define G_IREPOSITORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_IREPOSITORY, GIRepository))
+</MACRO>
+<STRUCT>
+<NAME>GIRepository</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIRepositoryClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIRepositoryPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIBaseInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GICallableInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIFunctionInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GICallbackInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIRegisteredTypeInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIStructInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIUnionInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIEnumInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIObjectInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIInterfaceInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIConstantInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIValueInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GISignalInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIVFuncInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIPropertyInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIFieldInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIArgInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GITypeInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIErrorDomainInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIUnresolvedInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GTypelib</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIRepository</NAME>
+struct _GIRepository
+{
+ GObject parent;
+
+ /*< private >*/
+ GIRepositoryPrivate *priv;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GIRepositoryClass</NAME>
+struct _GIRepositoryClass
+{
+ GObjectClass parent;
+};
+</STRUCT>
+<ENUM>
+<NAME>GIRepositoryLoadFlags</NAME>
+typedef enum
+{
+ G_IREPOSITORY_LOAD_FLAG_LAZY = 1 << 0
+} GIRepositoryLoadFlags;
+</ENUM>
+<FUNCTION>
+<NAME>g_irepository_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_irepository_get_default</NAME>
+<RETURNS>GIRepository *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_irepository_prepend_search_path</NAME>
+<RETURNS>void </RETURNS>
+const char *directory
+</FUNCTION>
+<FUNCTION>
+<NAME>g_irepository_get_search_path</NAME>
+<RETURNS>GSList *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_irepository_load_typelib</NAME>
+<RETURNS>const char *</RETURNS>
+GIRepository *repository,GTypelib *typelib,GIRepositoryLoadFlags flags,GError **error
+</FUNCTION>
+<FUNCTION>
+<NAME>g_irepository_is_registered</NAME>
+<RETURNS>gboolean </RETURNS>
+GIRepository *repository,const gchar *namespace_,const gchar *version
+</FUNCTION>
+<FUNCTION>
+<NAME>g_irepository_find_by_name</NAME>
+<RETURNS>GIBaseInfo *</RETURNS>
+GIRepository *repository,const gchar *namespace_,const gchar *name
+</FUNCTION>
+<FUNCTION>
+<NAME>g_irepository_require</NAME>
+<RETURNS>GTypelib *</RETURNS>
+GIRepository *repository,const gchar *namespace_,const gchar *version,GIRepositoryLoadFlags flags,GError **error
+</FUNCTION>
+<FUNCTION>
+<NAME>g_irepository_get_dependencies</NAME>
+<RETURNS>gchar **</RETURNS>
+GIRepository *repository,const gchar *namespace_
+</FUNCTION>
+<FUNCTION>
+<NAME>g_irepository_get_loaded_namespaces</NAME>
+<RETURNS>gchar **</RETURNS>
+GIRepository *repository
+</FUNCTION>
+<FUNCTION>
+<NAME>g_irepository_find_by_gtype</NAME>
+<RETURNS>GIBaseInfo *</RETURNS>
+GIRepository *repository,GType gtype
+</FUNCTION>
+<FUNCTION>
+<NAME>g_irepository_get_n_infos</NAME>
+<RETURNS>gint </RETURNS>
+GIRepository *repository,const gchar *namespace_
+</FUNCTION>
+<FUNCTION>
+<NAME>g_irepository_get_info</NAME>
+<RETURNS>GIBaseInfo *</RETURNS>
+GIRepository *repository,const gchar *namespace_,gint index
+</FUNCTION>
+<FUNCTION>
+<NAME>g_irepository_get_typelib_path</NAME>
+<RETURNS>const gchar *</RETURNS>
+GIRepository *repository,const gchar *namespace_
+</FUNCTION>
+<FUNCTION>
+<NAME>g_irepository_get_shared_library</NAME>
+<RETURNS>const gchar *</RETURNS>
+GIRepository *repository,const gchar *namespace_
+</FUNCTION>
+<FUNCTION>
+<NAME>g_irepository_get_version</NAME>
+<RETURNS>const gchar *</RETURNS>
+GIRepository *repository,const gchar *namespace_
+</FUNCTION>
+<FUNCTION>
+<NAME>g_irepository_get_option_group</NAME>
+<RETURNS>GOptionGroup *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_irepository_dump</NAME>
+<RETURNS>gboolean </RETURNS>
+const char *arg, GError **error
+</FUNCTION>
+<FUNCTION>
+<NAME>g_typelib_new_from_memory</NAME>
+<RETURNS>GTypelib *</RETURNS>
+guchar *memory,gsize len
+</FUNCTION>
+<FUNCTION>
+<NAME>g_typelib_new_from_const_memory</NAME>
+<RETURNS>GTypelib *</RETURNS>
+const guchar *memory,gsize len
+</FUNCTION>
+<FUNCTION>
+<NAME>g_typelib_new_from_mapped_file</NAME>
+<RETURNS>GTypelib *</RETURNS>
+GMappedFile *mfile
+</FUNCTION>
+<FUNCTION>
+<NAME>g_typelib_free</NAME>
+<RETURNS>void </RETURNS>
+GTypelib *typelib
+</FUNCTION>
+<FUNCTION>
+<NAME>g_typelib_symbol</NAME>
+<RETURNS>gboolean </RETURNS>
+GTypelib *typelib,const gchar *symbol_name,gpointer *symbol
+</FUNCTION>
+<FUNCTION>
+<NAME>g_typelib_get_namespace</NAME>
+<RETURNS>const gchar *</RETURNS>
+GTypelib *typelib
+</FUNCTION>
+<ENUM>
+<NAME>GIRepositoryError</NAME>
+typedef enum
+{
+ G_IREPOSITORY_ERROR_TYPELIB_NOT_FOUND,
+ G_IREPOSITORY_ERROR_NAMESPACE_MISMATCH,
+ G_IREPOSITORY_ERROR_NAMESPACE_VERSION_CONFLICT,
+ G_IREPOSITORY_ERROR_LIBRARY_NOT_FOUND
+} GIRepositoryError;
+</ENUM>
+<MACRO>
+<NAME>G_IREPOSITORY_ERROR</NAME>
+#define G_IREPOSITORY_ERROR (g_irepository_error_quark ())
+</MACRO>
+<FUNCTION>
+<NAME>g_irepository_error_quark</NAME>
+<RETURNS>GQuark </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gi_cclosure_marshal_generic</NAME>
+<RETURNS>void </RETURNS>
+GClosure *closure,GValue *return_gvalue,guint n_param_values,const GValue *param_values,gpointer invocation_hint,gpointer marshal_data
+</FUNCTION>
+<ENUM>
+<NAME>GIInfoType</NAME>
+typedef enum
+{
+ GI_INFO_TYPE_INVALID,
+ GI_INFO_TYPE_FUNCTION,
+ GI_INFO_TYPE_CALLBACK,
+ GI_INFO_TYPE_STRUCT,
+ GI_INFO_TYPE_BOXED,
+ GI_INFO_TYPE_ENUM,
+ GI_INFO_TYPE_FLAGS,
+ GI_INFO_TYPE_OBJECT,
+ GI_INFO_TYPE_INTERFACE,
+ GI_INFO_TYPE_CONSTANT,
+ GI_INFO_TYPE_ERROR_DOMAIN,
+ GI_INFO_TYPE_UNION,
+ GI_INFO_TYPE_VALUE,
+ GI_INFO_TYPE_SIGNAL,
+ GI_INFO_TYPE_VFUNC,
+ GI_INFO_TYPE_PROPERTY,
+ GI_INFO_TYPE_FIELD,
+ GI_INFO_TYPE_ARG,
+ GI_INFO_TYPE_TYPE,
+ GI_INFO_TYPE_UNRESOLVED
+} GIInfoType;
+</ENUM>
+<FUNCTION>
+<NAME>g_base_info_ref</NAME>
+<RETURNS>GIBaseInfo *</RETURNS>
+GIBaseInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_base_info_unref</NAME>
+<RETURNS>void </RETURNS>
+GIBaseInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_base_info_get_type</NAME>
+<RETURNS>GIInfoType </RETURNS>
+GIBaseInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_base_info_get_name</NAME>
+<RETURNS>const gchar *</RETURNS>
+GIBaseInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_base_info_get_namespace</NAME>
+<RETURNS>const gchar *</RETURNS>
+GIBaseInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_base_info_is_deprecated</NAME>
+<RETURNS>gboolean </RETURNS>
+GIBaseInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_base_info_get_annotation</NAME>
+<RETURNS>const gchar *</RETURNS>
+GIBaseInfo *info,const gchar *name
+</FUNCTION>
+<FUNCTION>
+<NAME>g_base_info_get_container</NAME>
+<RETURNS>GIBaseInfo *</RETURNS>
+GIBaseInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_base_info_get_typelib</NAME>
+<RETURNS>GTypelib *</RETURNS>
+GIBaseInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_info_new</NAME>
+<RETURNS>GIBaseInfo *</RETURNS>
+GIInfoType type,GIBaseInfo *container,GTypelib *typelib,guint32 offset
+</FUNCTION>
+<ENUM>
+<NAME>GIFunctionInfoFlags</NAME>
+typedef enum
+{
+ GI_FUNCTION_IS_METHOD = 1 << 0,
+ GI_FUNCTION_IS_CONSTRUCTOR = 1 << 1,
+ GI_FUNCTION_IS_GETTER = 1 << 2,
+ GI_FUNCTION_IS_SETTER = 1 << 3,
+ GI_FUNCTION_WRAPS_VFUNC = 1 << 4,
+ GI_FUNCTION_THROWS = 1 << 5
+} GIFunctionInfoFlags;
+</ENUM>
+<FUNCTION>
+<NAME>g_function_info_get_symbol</NAME>
+<RETURNS>const gchar *</RETURNS>
+GIFunctionInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_function_info_get_flags</NAME>
+<RETURNS>GIFunctionInfoFlags </RETURNS>
+GIFunctionInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_function_info_get_property</NAME>
+<RETURNS>GIPropertyInfo *</RETURNS>
+GIFunctionInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_function_info_get_vfunc</NAME>
+<RETURNS>GIVFuncInfo *</RETURNS>
+GIFunctionInfo *info
+</FUNCTION>
+<MACRO>
+<NAME>G_INVOKE_ERROR</NAME>
+#define G_INVOKE_ERROR (g_invoke_error_quark ())
+</MACRO>
+<FUNCTION>
+<NAME>g_invoke_error_quark</NAME>
+<RETURNS>GQuark </RETURNS>
+void
+</FUNCTION>
+<ENUM>
+<NAME>GInvokeError</NAME>
+typedef enum
+{
+ G_INVOKE_ERROR_FAILED,
+ G_INVOKE_ERROR_SYMBOL_NOT_FOUND,
+ G_INVOKE_ERROR_ARGUMENT_MISMATCH
+} GInvokeError;
+</ENUM>
+<FUNCTION>
+<NAME>g_function_info_invoke</NAME>
+<RETURNS>gboolean </RETURNS>
+GIFunctionInfo *info,const GArgument *in_args,int n_in_args,const GArgument *out_args,int n_out_args,GArgument *return_value,GError **error
+</FUNCTION>
+<ENUM>
+<NAME>GITransfer</NAME>
+typedef enum {
+ GI_TRANSFER_NOTHING,
+ GI_TRANSFER_CONTAINER,
+ GI_TRANSFER_EVERYTHING
+} GITransfer;
+</ENUM>
+<FUNCTION>
+<NAME>g_callable_info_get_return_type</NAME>
+<RETURNS>GITypeInfo *</RETURNS>
+GICallableInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_callable_info_get_caller_owns</NAME>
+<RETURNS>GITransfer </RETURNS>
+GICallableInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_callable_info_may_return_null</NAME>
+<RETURNS>gboolean </RETURNS>
+GICallableInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_callable_info_get_n_args</NAME>
+<RETURNS>gint </RETURNS>
+GICallableInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_callable_info_get_arg</NAME>
+<RETURNS>GIArgInfo *</RETURNS>
+GICallableInfo *info,gint n
+</FUNCTION>
+<ENUM>
+<NAME>GIDirection</NAME>
+typedef enum {
+ GI_DIRECTION_IN,
+ GI_DIRECTION_OUT,
+ GI_DIRECTION_INOUT
+} GIDirection;
+</ENUM>
+<ENUM>
+<NAME>GIScopeType</NAME>
+typedef enum {
+ GI_SCOPE_TYPE_INVALID,
+ GI_SCOPE_TYPE_CALL,
+ GI_SCOPE_TYPE_OBJECT,
+ GI_SCOPE_TYPE_ASYNC,
+ GI_SCOPE_TYPE_NOTIFIED
+} GIScopeType;
+</ENUM>
+<FUNCTION>
+<NAME>g_arg_info_get_direction</NAME>
+<RETURNS>GIDirection </RETURNS>
+GIArgInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_arg_info_is_dipper</NAME>
+<RETURNS>gboolean </RETURNS>
+GIArgInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_arg_info_is_return_value</NAME>
+<RETURNS>gboolean </RETURNS>
+GIArgInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_arg_info_is_optional</NAME>
+<RETURNS>gboolean </RETURNS>
+GIArgInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_arg_info_may_be_null</NAME>
+<RETURNS>gboolean </RETURNS>
+GIArgInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_arg_info_get_ownership_transfer</NAME>
+<RETURNS>GITransfer </RETURNS>
+GIArgInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_arg_info_get_scope</NAME>
+<RETURNS>GIScopeType </RETURNS>
+GIArgInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_arg_info_get_closure</NAME>
+<RETURNS>gint </RETURNS>
+GIArgInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_arg_info_get_destroy</NAME>
+<RETURNS>gint </RETURNS>
+GIArgInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_arg_info_get_type</NAME>
+<RETURNS>GITypeInfo *</RETURNS>
+GIArgInfo *info
+</FUNCTION>
+<ENUM>
+<NAME>GITypeTag</NAME>
+typedef enum {
+ /* Basic types */
+ GI_TYPE_TAG_VOID = 0,
+ GI_TYPE_TAG_BOOLEAN = 1,
+ GI_TYPE_TAG_INT8 = 2,
+ GI_TYPE_TAG_UINT8 = 3,
+ GI_TYPE_TAG_INT16 = 4,
+ GI_TYPE_TAG_UINT16 = 5,
+ GI_TYPE_TAG_INT32 = 6,
+ GI_TYPE_TAG_UINT32 = 7,
+ GI_TYPE_TAG_INT64 = 8,
+ GI_TYPE_TAG_UINT64 = 9,
+ GI_TYPE_TAG_INT = 10,
+ GI_TYPE_TAG_UINT = 11,
+ GI_TYPE_TAG_LONG = 12,
+ GI_TYPE_TAG_ULONG = 13,
+ GI_TYPE_TAG_SSIZE = 14,
+ GI_TYPE_TAG_SIZE = 15,
+ GI_TYPE_TAG_FLOAT = 16,
+ GI_TYPE_TAG_DOUBLE = 17,
+ GI_TYPE_TAG_TIME_T = 18,
+ GI_TYPE_TAG_GTYPE = 19,
+ GI_TYPE_TAG_UTF8 = 20,
+ GI_TYPE_TAG_FILENAME = 21,
+ /* Non-basic types */
+ GI_TYPE_TAG_ARRAY = 22,
+ GI_TYPE_TAG_INTERFACE = 23,
+ GI_TYPE_TAG_GLIST = 24,
+ GI_TYPE_TAG_GSLIST = 25,
+ GI_TYPE_TAG_GHASH = 26,
+ GI_TYPE_TAG_ERROR = 27
+ /* Note - there is only room currently for 32 tags.
+ * See docs/typelib-format.txt SimpleTypeBlob definition */
+} GITypeTag;
+</ENUM>
+<MACRO>
+<NAME>G_TYPE_TAG_IS_BASIC</NAME>
+#define G_TYPE_TAG_IS_BASIC(tag) (tag < GI_TYPE_TAG_ARRAY)
+</MACRO>
+<FUNCTION>
+<NAME>g_type_tag_to_string</NAME>
+<RETURNS>const gchar*</RETURNS>
+GITypeTag type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_info_is_pointer</NAME>
+<RETURNS>gboolean </RETURNS>
+GITypeInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_info_get_tag</NAME>
+<RETURNS>GITypeTag </RETURNS>
+GITypeInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_info_get_param_type</NAME>
+<RETURNS>GITypeInfo *</RETURNS>
+GITypeInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_info_get_interface</NAME>
+<RETURNS>GIBaseInfo *</RETURNS>
+GITypeInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_info_get_array_length</NAME>
+<RETURNS>gint </RETURNS>
+GITypeInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_info_get_array_fixed_size</NAME>
+<RETURNS>gint </RETURNS>
+GITypeInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_info_is_zero_terminated</NAME>
+<RETURNS>gboolean </RETURNS>
+GITypeInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_info_get_n_error_domains</NAME>
+<RETURNS>gint </RETURNS>
+GITypeInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_info_get_error_domain</NAME>
+<RETURNS>GIErrorDomainInfo *</RETURNS>
+GITypeInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_error_domain_info_get_quark</NAME>
+<RETURNS>const gchar *</RETURNS>
+GIErrorDomainInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_error_domain_info_get_codes</NAME>
+<RETURNS>GIInterfaceInfo *</RETURNS>
+GIErrorDomainInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_info_get_value</NAME>
+<RETURNS>glong </RETURNS>
+GIValueInfo *info
+</FUNCTION>
+<ENUM>
+<NAME>GIFieldInfoFlags</NAME>
+typedef enum
+{
+ GI_FIELD_IS_READABLE = 1 << 0,
+ GI_FIELD_IS_WRITABLE = 1 << 1
+} GIFieldInfoFlags;
+</ENUM>
+<FUNCTION>
+<NAME>g_field_info_get_flags</NAME>
+<RETURNS>GIFieldInfoFlags </RETURNS>
+GIFieldInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_field_info_get_size</NAME>
+<RETURNS>gint </RETURNS>
+GIFieldInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_field_info_get_offset</NAME>
+<RETURNS>gint </RETURNS>
+GIFieldInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_field_info_get_type</NAME>
+<RETURNS>GITypeInfo *</RETURNS>
+GIFieldInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_field_info_get_field</NAME>
+<RETURNS>gboolean </RETURNS>
+GIFieldInfo *field_info,gpointer mem,GArgument *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_field_info_set_field</NAME>
+<RETURNS>gboolean </RETURNS>
+GIFieldInfo *field_info,gpointer mem,const GArgument *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_union_info_get_n_fields</NAME>
+<RETURNS>gint </RETURNS>
+GIUnionInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_union_info_get_field</NAME>
+<RETURNS>GIFieldInfo *</RETURNS>
+GIUnionInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_union_info_get_n_methods</NAME>
+<RETURNS>gint </RETURNS>
+GIUnionInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_union_info_get_method</NAME>
+<RETURNS>GIFunctionInfo *</RETURNS>
+GIUnionInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_union_info_is_discriminated</NAME>
+<RETURNS>gboolean </RETURNS>
+GIUnionInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_union_info_get_discriminator_offset</NAME>
+<RETURNS>gint </RETURNS>
+GIUnionInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_union_info_get_discriminator_type</NAME>
+<RETURNS>GITypeInfo *</RETURNS>
+GIUnionInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_union_info_get_discriminator</NAME>
+<RETURNS>GIConstantInfo *</RETURNS>
+GIUnionInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_union_info_find_method</NAME>
+<RETURNS>GIFunctionInfo *</RETURNS>
+GIUnionInfo *info,const gchar *name
+</FUNCTION>
+<FUNCTION>
+<NAME>g_union_info_get_size</NAME>
+<RETURNS>gsize </RETURNS>
+GIUnionInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_union_info_get_alignment</NAME>
+<RETURNS>gsize </RETURNS>
+GIUnionInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_struct_info_get_n_fields</NAME>
+<RETURNS>gint </RETURNS>
+GIStructInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_struct_info_get_field</NAME>
+<RETURNS>GIFieldInfo *</RETURNS>
+GIStructInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_struct_info_get_n_methods</NAME>
+<RETURNS>gint </RETURNS>
+GIStructInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_struct_info_get_method</NAME>
+<RETURNS>GIFunctionInfo *</RETURNS>
+GIStructInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_struct_info_find_method</NAME>
+<RETURNS>GIFunctionInfo *</RETURNS>
+GIStructInfo *info,const gchar *name
+</FUNCTION>
+<FUNCTION>
+<NAME>g_struct_info_get_size</NAME>
+<RETURNS>gsize </RETURNS>
+GIStructInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_struct_info_get_alignment</NAME>
+<RETURNS>gsize </RETURNS>
+GIStructInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_struct_info_is_class_struct</NAME>
+<RETURNS>gboolean </RETURNS>
+GIStructInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_registered_type_info_get_type_name</NAME>
+<RETURNS>const gchar *</RETURNS>
+GIRegisteredTypeInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_registered_type_info_get_type_init</NAME>
+<RETURNS>const gchar *</RETURNS>
+GIRegisteredTypeInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_registered_type_info_get_g_type</NAME>
+<RETURNS>GType </RETURNS>
+GIRegisteredTypeInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_enum_info_get_n_values</NAME>
+<RETURNS>gint </RETURNS>
+GIEnumInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_enum_info_get_value</NAME>
+<RETURNS>GIValueInfo *</RETURNS>
+GIEnumInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_enum_info_get_storage_type</NAME>
+<RETURNS>GITypeTag </RETURNS>
+GIEnumInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_type_name</NAME>
+<RETURNS>const gchar *</RETURNS>
+GIObjectInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_type_init</NAME>
+<RETURNS>const gchar *</RETURNS>
+GIObjectInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_abstract</NAME>
+<RETURNS>gboolean </RETURNS>
+GIObjectInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_parent</NAME>
+<RETURNS>GIObjectInfo *</RETURNS>
+GIObjectInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_n_interfaces</NAME>
+<RETURNS>gint </RETURNS>
+GIObjectInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_interface</NAME>
+<RETURNS>GIInterfaceInfo *</RETURNS>
+GIObjectInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_n_fields</NAME>
+<RETURNS>gint </RETURNS>
+GIObjectInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_field</NAME>
+<RETURNS>GIFieldInfo *</RETURNS>
+GIObjectInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_n_properties</NAME>
+<RETURNS>gint </RETURNS>
+GIObjectInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_property</NAME>
+<RETURNS>GIPropertyInfo *</RETURNS>
+GIObjectInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_n_methods</NAME>
+<RETURNS>gint </RETURNS>
+GIObjectInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_method</NAME>
+<RETURNS>GIFunctionInfo *</RETURNS>
+GIObjectInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_find_method</NAME>
+<RETURNS>GIFunctionInfo *</RETURNS>
+GIObjectInfo *info,const gchar *name
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_n_signals</NAME>
+<RETURNS>gint </RETURNS>
+GIObjectInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_signal</NAME>
+<RETURNS>GISignalInfo *</RETURNS>
+GIObjectInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_n_vfuncs</NAME>
+<RETURNS>gint </RETURNS>
+GIObjectInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_vfunc</NAME>
+<RETURNS>GIVFuncInfo *</RETURNS>
+GIObjectInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_n_constants</NAME>
+<RETURNS>gint </RETURNS>
+GIObjectInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_constant</NAME>
+<RETURNS>GIConstantInfo *</RETURNS>
+GIObjectInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_info_get_class_struct</NAME>
+<RETURNS>GIStructInfo *</RETURNS>
+GIObjectInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_interface_info_get_n_prerequisites</NAME>
+<RETURNS>gint </RETURNS>
+GIInterfaceInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_interface_info_get_prerequisite</NAME>
+<RETURNS>GIBaseInfo *</RETURNS>
+GIInterfaceInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_interface_info_get_n_properties</NAME>
+<RETURNS>gint </RETURNS>
+GIInterfaceInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_interface_info_get_property</NAME>
+<RETURNS>GIPropertyInfo *</RETURNS>
+GIInterfaceInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_interface_info_get_n_methods</NAME>
+<RETURNS>gint </RETURNS>
+GIInterfaceInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_interface_info_get_method</NAME>
+<RETURNS>GIFunctionInfo *</RETURNS>
+GIInterfaceInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_interface_info_find_method</NAME>
+<RETURNS>GIFunctionInfo *</RETURNS>
+GIInterfaceInfo *info,const gchar *name
+</FUNCTION>
+<FUNCTION>
+<NAME>g_interface_info_get_n_signals</NAME>
+<RETURNS>gint </RETURNS>
+GIInterfaceInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_interface_info_get_signal</NAME>
+<RETURNS>GISignalInfo *</RETURNS>
+GIInterfaceInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_interface_info_get_n_vfuncs</NAME>
+<RETURNS>gint </RETURNS>
+GIInterfaceInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_interface_info_get_vfunc</NAME>
+<RETURNS>GIVFuncInfo *</RETURNS>
+GIInterfaceInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_interface_info_get_n_constants</NAME>
+<RETURNS>gint </RETURNS>
+GIInterfaceInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_interface_info_get_constant</NAME>
+<RETURNS>GIConstantInfo *</RETURNS>
+GIInterfaceInfo *info,gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_property_info_get_flags</NAME>
+<RETURNS>GParamFlags </RETURNS>
+GIPropertyInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_property_info_get_type</NAME>
+<RETURNS>GITypeInfo *</RETURNS>
+GIPropertyInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_signal_info_get_flags</NAME>
+<RETURNS>GSignalFlags </RETURNS>
+GISignalInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_signal_info_get_class_closure</NAME>
+<RETURNS>GIVFuncInfo *</RETURNS>
+GISignalInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_signal_info_true_stops_emit</NAME>
+<RETURNS>gboolean </RETURNS>
+GISignalInfo *info
+</FUNCTION>
+<ENUM>
+<NAME>GIVFuncInfoFlags</NAME>
+typedef enum
+{
+ GI_VFUNC_MUST_CHAIN_UP = 1 << 0,
+ GI_VFUNC_MUST_OVERRIDE = 1 << 1,
+ GI_VFUNC_MUST_NOT_OVERRIDE = 1 << 2
+} GIVFuncInfoFlags;
+</ENUM>
+<FUNCTION>
+<NAME>g_vfunc_info_get_flags</NAME>
+<RETURNS>GIVFuncInfoFlags </RETURNS>
+GIVFuncInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_vfunc_info_get_offset</NAME>
+<RETURNS>gint </RETURNS>
+GIVFuncInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_vfunc_info_get_signal</NAME>
+<RETURNS>GISignalInfo *</RETURNS>
+GIVFuncInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_constant_info_get_type</NAME>
+<RETURNS>GITypeInfo *</RETURNS>
+GIConstantInfo *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_constant_info_get_value</NAME>
+<RETURNS>gint </RETURNS>
+GIConstantInfo *info,GArgument *value
+</FUNCTION>
+<USER_FUNCTION>
+<NAME>GIFFIClosureCallback</NAME>
+<RETURNS>void </RETURNS>
+ffi_cif *,
+ void *,
+ void **,
+ void *
+</USER_FUNCTION>
+<FUNCTION>
+<NAME>g_ir_ffi_get_ffi_type</NAME>
+<RETURNS>ffi_type *</RETURNS>
+GITypeTag tag
+</FUNCTION>
+<FUNCTION>
+<NAME>g_callable_info_get_ffi_arg_types</NAME>
+<RETURNS>ffi_type **</RETURNS>
+GICallableInfo *callable_info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_callable_info_get_ffi_return_type</NAME>
+<RETURNS>ffi_type *</RETURNS>
+GICallableInfo *callable_info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_callable_info_prepare_closure</NAME>
+<RETURNS>ffi_closure *</RETURNS>
+GICallableInfo *callable_info,ffi_cif *cif,GIFFIClosureCallback callback,gpointer user_data
+</FUNCTION>
+<FUNCTION>
+<NAME>g_callable_info_free_closure</NAME>
+<RETURNS>void </RETURNS>
+GICallableInfo *callable_info,ffi_closure *closure
+</FUNCTION>
+<STRUCT>
+<NAME>GIrModule</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIrModule</NAME>
+struct _GIrModule
+{
+ gchar *name;
+ gchar *version;
+ gchar *shared_library;
+ GList *dependencies;
+ GList *entries;
+
+ /* All modules that are included directly or indirectly */
+ GList *include_modules;
+
+ /* Aliases defined in the module or in included modules */
+ GHashTable *aliases;
+
+ /* Structures with the 'disguised' flag (typedef struct _X *X)
+ * in the module or in included modules */
+ GHashTable *disguised_structures;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>g_ir_module_new</NAME>
+<RETURNS>GIrModule *</RETURNS>
+const gchar *name,const gchar *nsversion,const gchar *module_filename
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_module_free</NAME>
+<RETURNS>void </RETURNS>
+GIrModule *module
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_module_add_include_module</NAME>
+<RETURNS>void </RETURNS>
+GIrModule *module,GIrModule *include_module
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_module_build_typelib</NAME>
+<RETURNS>GTypelib *</RETURNS>
+GIrModule *module,GList *modules
+</FUNCTION>
+<STRUCT>
+<NAME>GIrNode</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeFunction</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeParam</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeType</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeInterface</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeSignal</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeProperty</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeVFunc</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeField</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeValue</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeEnum</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeBoxed</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeStruct</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeConstant</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeErrorDomain</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeXRef</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeUnion</NAME>
+</STRUCT>
+<ENUM>
+<NAME>GIrNodeTypeId</NAME>
+typedef enum
+{
+ G_IR_NODE_INVALID = 0,
+ G_IR_NODE_FUNCTION = 1,
+ G_IR_NODE_CALLBACK = 2,
+ G_IR_NODE_STRUCT = 3,
+ G_IR_NODE_BOXED = 4,
+ G_IR_NODE_ENUM = 5,
+ G_IR_NODE_FLAGS = 6,
+ G_IR_NODE_OBJECT = 7,
+ G_IR_NODE_INTERFACE = 8,
+ G_IR_NODE_CONSTANT = 9,
+ G_IR_NODE_ERROR_DOMAIN = 10,
+ G_IR_NODE_UNION = 11,
+ G_IR_NODE_PARAM = 12,
+ G_IR_NODE_TYPE = 13,
+ G_IR_NODE_PROPERTY = 14,
+ G_IR_NODE_SIGNAL = 15,
+ G_IR_NODE_VALUE = 16,
+ G_IR_NODE_VFUNC = 17,
+ G_IR_NODE_FIELD = 18,
+ G_IR_NODE_XREF = 19
+} GIrNodeTypeId;
+</ENUM>
+<STRUCT>
+<NAME>GIrNode</NAME>
+struct _GIrNode
+{
+ GIrNodeTypeId type;
+ gchar *name;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeXRef</NAME>
+struct _GIrNodeXRef
+{
+ GIrNode node;
+
+ gchar *namespace;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeFunction</NAME>
+struct _GIrNodeFunction
+{
+ GIrNode node;
+
+ gboolean deprecated;
+ gboolean is_varargs; /* Not in typelib yet */
+
+ gboolean is_method;
+ gboolean is_setter;
+ gboolean is_getter;
+ gboolean is_constructor;
+ gboolean wraps_vfunc;
+ gboolean throws;
+
+ gchar *symbol;
+
+ GIrNodeParam *result;
+ GList *parameters;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeType</NAME>
+struct _GIrNodeType
+{
+ GIrNode node;
+
+ gboolean is_pointer;
+ gboolean is_basic;
+ gboolean is_array;
+ gboolean is_glist;
+ gboolean is_gslist;
+ gboolean is_ghashtable;
+ gboolean is_interface;
+ gboolean is_error;
+ gint tag;
+
+ gchar *unparsed;
+
+ gboolean zero_terminated;
+ gboolean has_length;
+ gint length;
+ gboolean has_size;
+ gint size;
+
+ GIrNodeType *parameter_type1;
+ GIrNodeType *parameter_type2;
+
+ gchar *interface;
+ gchar **errors;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeParam</NAME>
+struct _GIrNodeParam
+{
+ GIrNode node;
+
+ gboolean in;
+ gboolean out;
+ gboolean dipper;
+ gboolean optional;
+ gboolean retval;
+ gboolean allow_none;
+ gboolean transfer;
+ gboolean shallow_transfer;
+ GIScopeType scope;
+
+ gint8 closure;
+ gint8 destroy;
+
+ GIrNodeType *type;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeProperty</NAME>
+struct _GIrNodeProperty
+{
+ GIrNode node;
+
+ gboolean deprecated;
+
+ gchar *name;
+ gboolean readable;
+ gboolean writable;
+ gboolean construct;
+ gboolean construct_only;
+
+ GIrNodeType *type;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeSignal</NAME>
+struct _GIrNodeSignal
+{
+ GIrNode node;
+
+ gboolean deprecated;
+
+ gboolean run_first;
+ gboolean run_last;
+ gboolean run_cleanup;
+ gboolean no_recurse;
+ gboolean detailed;
+ gboolean action;
+ gboolean no_hooks;
+
+ gboolean has_class_closure;
+ gboolean true_stops_emit;
+
+ gint class_closure;
+
+ GList *parameters;
+ GIrNodeParam *result;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeVFunc</NAME>
+struct _GIrNodeVFunc
+{
+ GIrNode node;
+
+ gboolean is_varargs; /* Not in typelib yet */
+ gboolean must_chain_up;
+ gboolean must_be_implemented;
+ gboolean must_not_be_implemented;
+ gboolean is_class_closure;
+
+ GList *parameters;
+ GIrNodeParam *result;
+
+ gint offset;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeField</NAME>
+struct _GIrNodeField
+{
+ GIrNode node;
+
+ gboolean readable;
+ gboolean writable;
+ gint bits;
+ gint offset;
+
+ GIrNodeType *type;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeInterface</NAME>
+struct _GIrNodeInterface
+{
+ GIrNode node;
+
+ gboolean abstract;
+ gboolean deprecated;
+
+ gchar *gtype_name;
+ gchar *gtype_init;
+
+ gchar *parent;
+ gchar *class_struct; /* Only applies to classes */
+
+ GList *interfaces;
+ GList *prerequisites;
+
+ gint alignment;
+ gint size;
+
+ GList *members;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeValue</NAME>
+struct _GIrNodeValue
+{
+ GIrNode node;
+
+ gboolean deprecated;
+
+ guint32 value;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeConstant</NAME>
+struct _GIrNodeConstant
+{
+ GIrNode node;
+
+ gboolean deprecated;
+
+ GIrNodeType *type;
+
+ gchar *value;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeEnum</NAME>
+struct _GIrNodeEnum
+{
+ GIrNode node;
+
+ gboolean deprecated;
+ gint storage_type;
+
+ gchar *gtype_name;
+ gchar *gtype_init;
+
+ GList *values;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeBoxed</NAME>
+struct _GIrNodeBoxed
+{
+ GIrNode node;
+
+ gboolean deprecated;
+
+ gchar *gtype_name;
+ gchar *gtype_init;
+
+ gint alignment;
+ gint size;
+
+ GList *members;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeStruct</NAME>
+struct _GIrNodeStruct
+{
+ GIrNode node;
+
+ gboolean deprecated;
+ gboolean disguised;
+ gboolean is_gclass_struct;
+
+ gchar *gtype_name;
+ gchar *gtype_init;
+
+ gint alignment;
+ gint size;
+
+ GList *members;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeUnion</NAME>
+struct _GIrNodeUnion
+{
+ GIrNode node;
+
+ gboolean deprecated;
+
+ GList *members;
+ GList *discriminators;
+
+ gchar *gtype_name;
+ gchar *gtype_init;
+
+ gint alignment;
+ gint size;
+
+ gint discriminator_offset;
+ GIrNodeType *discriminator_type;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GIrNodeErrorDomain</NAME>
+struct _GIrNodeErrorDomain
+{
+ GIrNode node;
+
+ gboolean deprecated;
+
+ gchar *name;
+ gchar *getquark;
+ gchar *codes;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>g_ir_node_new</NAME>
+<RETURNS>GIrNode *</RETURNS>
+GIrNodeTypeId type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_node_free</NAME>
+<RETURNS>void </RETURNS>
+GIrNode *node
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_node_get_size</NAME>
+<RETURNS>guint32 </RETURNS>
+GIrNode *node
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_node_get_full_size</NAME>
+<RETURNS>guint32 </RETURNS>
+GIrNode *node
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_node_build_typelib</NAME>
+<RETURNS>void </RETURNS>
+GIrNode *node,GIrModule *module,GList *modules,GHashTable *strings,GHashTable *types,guchar *data,guint32 *offset,guint32 *offset2
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_node_cmp</NAME>
+<RETURNS>int </RETURNS>
+GIrNode *node,GIrNode *other
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_node_can_have_member</NAME>
+<RETURNS>gboolean </RETURNS>
+GIrNode *node
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_node_add_member</NAME>
+<RETURNS>void </RETURNS>
+GIrNode *node,GIrNodeFunction *member
+</FUNCTION>
+<FUNCTION>
+<NAME>write_string</NAME>
+<RETURNS>guint32 </RETURNS>
+const gchar *str,GHashTable *strings,guchar *data,guint32 *offset
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_node_param_direction_string</NAME>
+<RETURNS>const gchar *</RETURNS>
+GIrNodeParam * node
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_node_type_to_string</NAME>
+<RETURNS>const gchar *</RETURNS>
+GIrNodeTypeId type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_find_node</NAME>
+<RETURNS>gboolean </RETURNS>
+GIrModule *module,GList *modules,const char *name,GIrNode **node_out,GIrModule **module_out
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_node_compute_offsets</NAME>
+<RETURNS>void </RETURNS>
+GIrNode *node,GIrModule *module,GList *modules
+</FUNCTION>
+<STRUCT>
+<NAME>GIrParser</NAME>
+</STRUCT>
+<FUNCTION>
+<NAME>g_ir_parser_new</NAME>
+<RETURNS>GIrParser *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_parser_free</NAME>
+<RETURNS>void </RETURNS>
+GIrParser *parser
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_parser_set_includes</NAME>
+<RETURNS>void </RETURNS>
+GIrParser *parser,const gchar *const *includes
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_parser_parse_string</NAME>
+<RETURNS>GList *</RETURNS>
+GIrParser *parser,const gchar *namespace,const gchar *buffer,gssize length,GError **error
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ir_parser_parse_file</NAME>
+<RETURNS>GList *</RETURNS>
+GIrParser *parser,const gchar *filename,GError **error
+</FUNCTION>
+<FUNCTION>
+<NAME>g_idl_writer_save_file</NAME>
+<RETURNS>void </RETURNS>
+GIdlModule *module, const gchar *filename
+</FUNCTION>
+<MACRO>
+<NAME>G_IR_MAGIC</NAME>
+#define G_IR_MAGIC "GOBJ\nMETADATA\r\n\032"
+</MACRO>
+<MACRO>
+<NAME>BLOB_IS_REGISTERED_TYPE</NAME>
+#define BLOB_IS_REGISTERED_TYPE(blob) \
+ ((blob)->blob_type == BLOB_TYPE_STRUCT || \
+ (blob)->blob_type == BLOB_TYPE_UNION || \
+ (blob)->blob_type == BLOB_TYPE_ENUM || \
+ (blob)->blob_type == BLOB_TYPE_OBJECT || \
+ (blob)->blob_type == BLOB_TYPE_INTERFACE)
+</MACRO>
+<STRUCT>
+<NAME>GTypelib</NAME>
+struct _GTypelib {
+ guchar *data;
+ gsize len;
+ gboolean owns_memory;
+ GMappedFile *mfile;
+ GList *modules;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>g_typelib_get_dir_entry</NAME>
+<RETURNS>DirEntry *</RETURNS>
+GTypelib *typelib,guint16 index
+</FUNCTION>
+<FUNCTION>
+<NAME>g_typelib_check_sanity</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<MACRO>
+<NAME>g_typelib_get_string</NAME>
+#define g_typelib_get_string(typelib,offset) ((const gchar*)&(typelib->data)[(offset)])
+</MACRO>
+<ENUM>
+<NAME>GTypelibError</NAME>
+typedef enum
+{
+ G_TYPELIB_ERROR_INVALID,
+ G_TYPELIB_ERROR_INVALID_HEADER,
+ G_TYPELIB_ERROR_INVALID_DIRECTORY,
+ G_TYPELIB_ERROR_INVALID_ENTRY,
+ G_TYPELIB_ERROR_INVALID_BLOB
+} GTypelibError;
+</ENUM>
+<MACRO>
+<NAME>G_TYPELIB_ERROR</NAME>
+#define G_TYPELIB_ERROR (g_typelib_error_quark ())
+</MACRO>
+<FUNCTION>
+<NAME>g_typelib_error_quark</NAME>
+<RETURNS>GQuark </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_typelib_validate</NAME>
+<RETURNS>gboolean </RETURNS>
+GTypelib *typelib,GError **error
+</FUNCTION>
diff --git a/docs/reference/gi-docs.sgml b/docs/reference/gi-docs.sgml
new file mode 100644
index 00000000..1a409045
--- /dev/null
+++ b/docs/reference/gi-docs.sgml
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+<!ENTITY gi-ginfo SYSTEM "xml/ginfo.xml">
+<!ENTITY gi-girepository SYSTEM "xml/girepository.xml">
+<!ENTITY gi-girffi SYSTEM "xml/girffi.xml">
+<!ENTITY gi-girmodule SYSTEM "xml/girmodule.xml">
+<!ENTITY gi-girnode SYSTEM "xml/girnode.xml">
+<!ENTITY gi-girparser SYSTEM "xml/girparser.xml">
+<!ENTITY gi-girwriter SYSTEM "xml/girwriter.xml">
+<!ENTITY gi-gtypelib SYSTEM "xml/gtypelib.xml">
+
+<!ENTITY version SYSTEM "version.xml">
+]>
+<book id="index">
+ <bookinfo>
+ <title>GObject Introspection Reference Manual</title>
+ </bookinfo>
+
+ <chapter id="glib">
+ <title>GObject-Introspection Overview</title>
+ <para>
+Bla bla bla bla bla
+ </para>
+<!--
+ &gi-overview;
+ &gi-building;
+-->
+ </chapter>
+<!--
+ <chapter id="gi-gir">
+ <title>GIR markup format</title>
+ &gi-gir-overview;
+ &gi-gir-creating;
+ &gi-gir-parsing;
+ &gi-gir-verifying;
+ </chapter>
+-->
+
+ <chapter id="gi-typelib">
+ <title>typelib</title>
+ &gi-gtypelib;
+ </chapter>
+
+ <chapter id="gi-girepository">
+ <title>GIRepository</title>
+ &gi-girepository;
+ &gi-ginfo;
+ &gi-girmodule;
+ &gi-girparser;
+ &gi-girwriter;
+ &gi-girffi;
+ </chapter>
+
+<!--
+ <chapter id="tools">
+ <title>GObject Introspection Tools</title>
+
+ &g-ir-scanner;
+ &g-ir-compiler;
+ &g-ir-generator;
+ </chapter>
+-->
+</book>
diff --git a/docs/reference/gi-overrides.txt b/docs/reference/gi-overrides.txt
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/docs/reference/gi-overrides.txt
diff --git a/docs/reference/gi-sections.txt b/docs/reference/gi-sections.txt
new file mode 100644
index 00000000..0371c70c
--- /dev/null
+++ b/docs/reference/gi-sections.txt
@@ -0,0 +1,279 @@
+<SECTION>
+<FILE>girepository</FILE>
+G_TYPE_IREPOSITORY
+G_IREPOSITORY
+GIRepositoryPrivate
+GIBaseInfo
+GICallableInfo
+GIFunctionInfo
+GICallbackInfo
+GIRegisteredTypeInfo
+GIStructInfo
+GIUnionInfo
+GIEnumInfo
+GIObjectInfo
+GIInterfaceInfo
+GIConstantInfo
+GIValueInfo
+GISignalInfo
+GIVFuncInfo
+GIPropertyInfo
+GIFieldInfo
+GIArgInfo
+GITypeInfo
+GIErrorDomainInfo
+GIUnresolvedInfo
+GTypelib
+<TITLE>GIRepository</TITLE>
+GIRepository
+GIRepositoryLoadFlags
+g_irepository_get_default
+g_irepository_prepend_search_path
+g_irepository_get_search_path
+g_irepository_load_typelib
+g_irepository_is_registered
+g_irepository_find_by_name
+g_irepository_require
+g_irepository_get_dependencies
+g_irepository_get_loaded_namespaces
+g_irepository_find_by_gtype
+g_irepository_get_n_infos
+g_irepository_get_info
+g_irepository_get_typelib_path
+g_irepository_get_shared_library
+g_irepository_get_version
+g_irepository_get_option_group
+g_irepository_dump
+g_typelib_new_from_memory
+g_typelib_new_from_const_memory
+g_typelib_new_from_mapped_file
+g_typelib_free
+g_typelib_symbol
+g_typelib_get_namespace
+GIRepositoryError
+G_IREPOSITORY_ERROR
+g_irepository_error_quark
+gi_cclosure_marshal_generic
+GIInfoType
+g_base_info_ref
+g_base_info_unref
+g_base_info_get_type
+g_base_info_get_name
+g_base_info_get_namespace
+g_base_info_is_deprecated
+g_base_info_get_annotation
+g_base_info_get_container
+g_base_info_get_typelib
+g_info_new
+GIFunctionInfoFlags
+g_function_info_get_symbol
+g_function_info_get_flags
+g_function_info_get_property
+g_function_info_get_vfunc
+G_INVOKE_ERROR
+g_invoke_error_quark
+GInvokeError
+g_function_info_invoke
+GITransfer
+g_callable_info_get_return_type
+g_callable_info_get_caller_owns
+g_callable_info_may_return_null
+g_callable_info_get_n_args
+g_callable_info_get_arg
+GIDirection
+GIScopeType
+g_arg_info_get_direction
+g_arg_info_is_dipper
+g_arg_info_is_return_value
+g_arg_info_is_optional
+g_arg_info_may_be_null
+g_arg_info_get_ownership_transfer
+g_arg_info_get_scope
+g_arg_info_get_closure
+g_arg_info_get_destroy
+g_arg_info_get_type
+GITypeTag
+g_type_tag_to_string
+g_type_info_is_pointer
+g_type_info_get_tag
+g_type_info_get_param_type
+g_type_info_get_interface
+g_type_info_get_array_length
+g_type_info_get_array_fixed_size
+g_type_info_is_zero_terminated
+g_type_info_get_n_error_domains
+g_type_info_get_error_domain
+g_error_domain_info_get_quark
+g_error_domain_info_get_codes
+g_value_info_get_value
+GIFieldInfoFlags
+g_field_info_get_flags
+g_field_info_get_size
+g_field_info_get_offset
+g_field_info_get_type
+g_field_info_get_field
+g_field_info_set_field
+g_union_info_get_n_fields
+g_union_info_get_field
+g_union_info_get_n_methods
+g_union_info_get_method
+g_union_info_is_discriminated
+g_union_info_get_discriminator_offset
+g_union_info_get_discriminator_type
+g_union_info_get_discriminator
+g_union_info_find_method
+g_union_info_get_size
+g_union_info_get_alignment
+g_struct_info_get_n_fields
+g_struct_info_get_field
+g_struct_info_get_n_methods
+g_struct_info_get_method
+g_struct_info_find_method
+g_struct_info_get_size
+g_struct_info_get_alignment
+g_struct_info_is_class_struct
+g_registered_type_info_get_type_name
+g_registered_type_info_get_type_init
+g_registered_type_info_get_g_type
+g_enum_info_get_n_values
+g_enum_info_get_value
+g_enum_info_get_storage_type
+g_object_info_get_type_name
+g_object_info_get_type_init
+g_object_info_get_abstract
+g_object_info_get_parent
+g_object_info_get_n_interfaces
+g_object_info_get_interface
+g_object_info_get_n_fields
+g_object_info_get_field
+g_object_info_get_n_properties
+g_object_info_get_property
+g_object_info_get_n_methods
+g_object_info_get_method
+g_object_info_find_method
+g_object_info_get_n_signals
+g_object_info_get_signal
+g_object_info_get_n_vfuncs
+g_object_info_get_vfunc
+g_object_info_get_n_constants
+g_object_info_get_constant
+g_object_info_get_class_struct
+g_interface_info_get_n_prerequisites
+g_interface_info_get_prerequisite
+g_interface_info_get_n_properties
+g_interface_info_get_property
+g_interface_info_get_n_methods
+g_interface_info_get_method
+g_interface_info_find_method
+g_interface_info_get_n_signals
+g_interface_info_get_signal
+g_interface_info_get_n_vfuncs
+g_interface_info_get_vfunc
+g_interface_info_get_n_constants
+g_interface_info_get_constant
+g_property_info_get_flags
+g_property_info_get_type
+g_signal_info_get_flags
+g_signal_info_get_class_closure
+g_signal_info_true_stops_emit
+GIVFuncInfoFlags
+g_vfunc_info_get_flags
+g_vfunc_info_get_offset
+g_vfunc_info_get_signal
+g_constant_info_get_type
+g_constant_info_get_value
+<SUBSECTION Standard>
+G_TYPE_TAG_IS_BASIC
+g_irepository_get_type
+</SECTION>
+
+<SECTION>
+<FILE>gtypelib</FILE>
+G_IR_MAGIC
+GTypelib
+g_typelib_get_dir_entry
+g_typelib_check_sanity
+g_typelib_get_string
+GTypelibError
+G_TYPELIB_ERROR
+g_typelib_error_quark
+g_typelib_validate
+<SUBSECTION Standard>
+BLOB_IS_REGISTERED_TYPE
+</SECTION>
+
+<SECTION>
+<FILE>ginfo</FILE>
+g_type_info_new
+g_info_new_full
+</SECTION>
+
+<SECTION>
+<FILE>girffi</FILE>
+GIFFIClosureCallback
+g_ir_ffi_get_ffi_type
+g_callable_info_get_ffi_arg_types
+g_callable_info_get_ffi_return_type
+g_callable_info_prepare_closure
+g_callable_info_free_closure
+</SECTION>
+
+<SECTION>
+<FILE>girmodule</FILE>
+GIrModule
+g_ir_module_new
+g_ir_module_free
+g_ir_module_add_include_module
+g_ir_module_build_typelib
+</SECTION>
+
+<SECTION>
+<FILE>girnode</FILE>
+GIrNode
+GIrNodeFunction
+GIrNodeParam
+GIrNodeType
+GIrNodeInterface
+GIrNodeSignal
+GIrNodeProperty
+GIrNodeVFunc
+GIrNodeField
+GIrNodeValue
+GIrNodeEnum
+GIrNodeBoxed
+GIrNodeStruct
+GIrNodeConstant
+GIrNodeErrorDomain
+GIrNodeXRef
+GIrNodeUnion
+GIrNodeTypeId
+g_ir_node_new
+g_ir_node_free
+g_ir_node_get_size
+g_ir_node_get_full_size
+g_ir_node_build_typelib
+g_ir_node_cmp
+g_ir_node_can_have_member
+g_ir_node_add_member
+write_string
+g_ir_node_param_direction_string
+g_ir_node_type_to_string
+g_ir_find_node
+g_ir_node_compute_offsets
+</SECTION>
+
+<SECTION>
+<FILE>girparser</FILE>
+GIrParser
+g_ir_parser_new
+g_ir_parser_free
+g_ir_parser_set_includes
+g_ir_parser_parse_string
+g_ir_parser_parse_file
+</SECTION>
+
+<SECTION>
+<FILE>girwriter</FILE>
+g_idl_writer_save_file
+</SECTION>
+
diff --git a/docs/reference/gi.types b/docs/reference/gi.types
new file mode 100644
index 00000000..3b4e9df6
--- /dev/null
+++ b/docs/reference/gi.types
@@ -0,0 +1,2 @@
+g_irepository_get_type
+g_irepository_get_type
diff --git a/docs/reference/tmpl/gi-unused.sgml b/docs/reference/tmpl/gi-unused.sgml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/docs/reference/tmpl/gi-unused.sgml
diff --git a/docs/reference/tmpl/ginfo.sgml b/docs/reference/tmpl/ginfo.sgml
new file mode 100644
index 00000000..8b31ad11
--- /dev/null
+++ b/docs/reference/tmpl/ginfo.sgml
@@ -0,0 +1,43 @@
+<!-- ##### SECTION Title ##### -->
+ginfo
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### FUNCTION g_type_info_new ##### -->
+<para>
+
+</para>
+
+@container:
+@typelib:
+@offset:
+@Returns:
+
+
+<!-- ##### FUNCTION g_info_new_full ##### -->
+<para>
+
+</para>
+
+@type:
+@repository:
+@container:
+@typelib:
+@offset:
+@Returns:
+
+
diff --git a/docs/reference/tmpl/girepository.sgml b/docs/reference/tmpl/girepository.sgml
new file mode 100644
index 00000000..6991a64d
--- /dev/null
+++ b/docs/reference/tmpl/girepository.sgml
@@ -0,0 +1,1683 @@
+<!-- ##### SECTION Title ##### -->
+GIRepository
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### MACRO G_TYPE_IREPOSITORY ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_IREPOSITORY ##### -->
+<para>
+
+</para>
+
+@obj:
+
+
+<!-- ##### STRUCT GIRepositoryPrivate ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GIBaseInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GICallableInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GIFunctionInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GICallbackInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GIRegisteredTypeInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GIStructInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GIUnionInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GIEnumInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GIObjectInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GIInterfaceInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GIConstantInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GIValueInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GISignalInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GIVFuncInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GIPropertyInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GIFieldInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GIArgInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GITypeInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GIErrorDomainInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GIUnresolvedInfo ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GTypelib ##### -->
+<para>
+
+</para>
+
+@data:
+@len:
+@owns_memory:
+@mfile:
+@modules:
+
+<!-- ##### STRUCT GIRepository ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ENUM GIRepositoryLoadFlags ##### -->
+<para>
+
+</para>
+
+@G_IREPOSITORY_LOAD_FLAG_LAZY:
+
+<!-- ##### FUNCTION g_irepository_get_default ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION g_irepository_prepend_search_path ##### -->
+<para>
+
+</para>
+
+@directory:
+
+
+<!-- ##### FUNCTION g_irepository_get_search_path ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION g_irepository_load_typelib ##### -->
+<para>
+
+</para>
+
+@repository:
+@typelib:
+@flags:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION g_irepository_is_registered ##### -->
+<para>
+
+</para>
+
+@repository:
+@namespace_:
+@version:
+@Returns:
+
+
+<!-- ##### FUNCTION g_irepository_find_by_name ##### -->
+<para>
+
+</para>
+
+@repository:
+@namespace_:
+@name:
+@Returns:
+
+
+<!-- ##### FUNCTION g_irepository_require ##### -->
+<para>
+
+</para>
+
+@repository:
+@namespace_:
+@version:
+@flags:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION g_irepository_get_dependencies ##### -->
+<para>
+
+</para>
+
+@repository:
+@namespace_:
+@Returns:
+
+
+<!-- ##### FUNCTION g_irepository_get_loaded_namespaces ##### -->
+<para>
+
+</para>
+
+@repository:
+@Returns:
+
+
+<!-- ##### FUNCTION g_irepository_find_by_gtype ##### -->
+<para>
+
+</para>
+
+@repository:
+@gtype:
+@Returns:
+
+
+<!-- ##### FUNCTION g_irepository_get_n_infos ##### -->
+<para>
+
+</para>
+
+@repository:
+@namespace_:
+@Returns:
+
+
+<!-- ##### FUNCTION g_irepository_get_info ##### -->
+<para>
+
+</para>
+
+@repository:
+@namespace_:
+@index:
+@Returns:
+
+
+<!-- ##### FUNCTION g_irepository_get_typelib_path ##### -->
+<para>
+
+</para>
+
+@repository:
+@namespace_:
+@Returns:
+
+
+<!-- ##### FUNCTION g_irepository_get_shared_library ##### -->
+<para>
+
+</para>
+
+@repository:
+@namespace_:
+@Returns:
+
+
+<!-- ##### FUNCTION g_irepository_get_version ##### -->
+<para>
+
+</para>
+
+@repository:
+@namespace_:
+@Returns:
+
+
+<!-- ##### FUNCTION g_irepository_get_option_group ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION g_irepository_dump ##### -->
+<para>
+
+</para>
+
+@arg:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION g_typelib_new_from_memory ##### -->
+<para>
+
+</para>
+
+@memory:
+@len:
+@Returns:
+
+
+<!-- ##### FUNCTION g_typelib_new_from_const_memory ##### -->
+<para>
+
+</para>
+
+@memory:
+@len:
+@Returns:
+
+
+<!-- ##### FUNCTION g_typelib_new_from_mapped_file ##### -->
+<para>
+
+</para>
+
+@mfile:
+@Returns:
+
+
+<!-- ##### FUNCTION g_typelib_free ##### -->
+<para>
+
+</para>
+
+@typelib:
+
+
+<!-- ##### FUNCTION g_typelib_symbol ##### -->
+<para>
+
+</para>
+
+@typelib:
+@symbol_name:
+@symbol:
+@Returns:
+
+
+<!-- ##### FUNCTION g_typelib_get_namespace ##### -->
+<para>
+
+</para>
+
+@typelib:
+@Returns:
+
+
+<!-- ##### ENUM GIRepositoryError ##### -->
+<para>
+
+</para>
+
+@G_IREPOSITORY_ERROR_TYPELIB_NOT_FOUND:
+@G_IREPOSITORY_ERROR_NAMESPACE_MISMATCH:
+@G_IREPOSITORY_ERROR_NAMESPACE_VERSION_CONFLICT:
+@G_IREPOSITORY_ERROR_LIBRARY_NOT_FOUND:
+
+<!-- ##### MACRO G_IREPOSITORY_ERROR ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION g_irepository_error_quark ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gi_cclosure_marshal_generic ##### -->
+<para>
+
+</para>
+
+@closure:
+@return_gvalue:
+@n_param_values:
+@param_values:
+@invocation_hint:
+@marshal_data:
+
+
+<!-- ##### ENUM GIInfoType ##### -->
+<para>
+
+</para>
+
+@GI_INFO_TYPE_INVALID:
+@GI_INFO_TYPE_FUNCTION:
+@GI_INFO_TYPE_CALLBACK:
+@GI_INFO_TYPE_STRUCT:
+@GI_INFO_TYPE_BOXED:
+@GI_INFO_TYPE_ENUM:
+@GI_INFO_TYPE_FLAGS:
+@GI_INFO_TYPE_OBJECT:
+@GI_INFO_TYPE_INTERFACE:
+@GI_INFO_TYPE_CONSTANT:
+@GI_INFO_TYPE_ERROR_DOMAIN:
+@GI_INFO_TYPE_UNION:
+@GI_INFO_TYPE_VALUE:
+@GI_INFO_TYPE_SIGNAL:
+@GI_INFO_TYPE_VFUNC:
+@GI_INFO_TYPE_PROPERTY:
+@GI_INFO_TYPE_FIELD:
+@GI_INFO_TYPE_ARG:
+@GI_INFO_TYPE_TYPE:
+@GI_INFO_TYPE_UNRESOLVED:
+
+<!-- ##### FUNCTION g_base_info_ref ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_base_info_unref ##### -->
+<para>
+
+</para>
+
+@info:
+
+
+<!-- ##### FUNCTION g_base_info_get_type ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_base_info_get_name ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_base_info_get_namespace ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_base_info_is_deprecated ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_base_info_get_annotation ##### -->
+<para>
+
+</para>
+
+@info:
+@name:
+@Returns:
+
+
+<!-- ##### FUNCTION g_base_info_get_container ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_base_info_get_typelib ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_info_new ##### -->
+<para>
+
+</para>
+
+@type:
+@container:
+@typelib:
+@offset:
+@Returns:
+
+
+<!-- ##### ENUM GIFunctionInfoFlags ##### -->
+<para>
+
+</para>
+
+@GI_FUNCTION_IS_METHOD:
+@GI_FUNCTION_IS_CONSTRUCTOR:
+@GI_FUNCTION_IS_GETTER:
+@GI_FUNCTION_IS_SETTER:
+@GI_FUNCTION_WRAPS_VFUNC:
+@GI_FUNCTION_THROWS:
+
+<!-- ##### FUNCTION g_function_info_get_symbol ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_function_info_get_flags ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_function_info_get_property ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_function_info_get_vfunc ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### MACRO G_INVOKE_ERROR ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION g_invoke_error_quark ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### ENUM GInvokeError ##### -->
+<para>
+
+</para>
+
+@G_INVOKE_ERROR_FAILED:
+@G_INVOKE_ERROR_SYMBOL_NOT_FOUND:
+@G_INVOKE_ERROR_ARGUMENT_MISMATCH:
+
+<!-- ##### FUNCTION g_function_info_invoke ##### -->
+<para>
+
+</para>
+
+@info:
+@in_args:
+@n_in_args:
+@out_args:
+@n_out_args:
+@return_value:
+@error:
+@Returns:
+
+
+<!-- ##### ENUM GITransfer ##### -->
+<para>
+
+</para>
+
+@GI_TRANSFER_NOTHING:
+@GI_TRANSFER_CONTAINER:
+@GI_TRANSFER_EVERYTHING:
+
+<!-- ##### FUNCTION g_callable_info_get_return_type ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_callable_info_get_caller_owns ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_callable_info_may_return_null ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_callable_info_get_n_args ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_callable_info_get_arg ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### ENUM GIDirection ##### -->
+<para>
+
+</para>
+
+@GI_DIRECTION_IN:
+@GI_DIRECTION_OUT:
+@GI_DIRECTION_INOUT:
+
+<!-- ##### ENUM GIScopeType ##### -->
+<para>
+
+</para>
+
+@GI_SCOPE_TYPE_INVALID:
+@GI_SCOPE_TYPE_CALL:
+@GI_SCOPE_TYPE_OBJECT:
+@GI_SCOPE_TYPE_ASYNC:
+@GI_SCOPE_TYPE_NOTIFIED:
+
+<!-- ##### FUNCTION g_arg_info_get_direction ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_arg_info_is_dipper ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_arg_info_is_return_value ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_arg_info_is_optional ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_arg_info_may_be_null ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_arg_info_get_ownership_transfer ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_arg_info_get_scope ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_arg_info_get_closure ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_arg_info_get_destroy ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_arg_info_get_type ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### ENUM GITypeTag ##### -->
+<para>
+
+</para>
+
+@GI_TYPE_TAG_VOID:
+@GI_TYPE_TAG_BOOLEAN:
+@GI_TYPE_TAG_INT8:
+@GI_TYPE_TAG_UINT8:
+@GI_TYPE_TAG_INT16:
+@GI_TYPE_TAG_UINT16:
+@GI_TYPE_TAG_INT32:
+@GI_TYPE_TAG_UINT32:
+@GI_TYPE_TAG_INT64:
+@GI_TYPE_TAG_UINT64:
+@GI_TYPE_TAG_INT:
+@GI_TYPE_TAG_UINT:
+@GI_TYPE_TAG_LONG:
+@GI_TYPE_TAG_ULONG:
+@GI_TYPE_TAG_SSIZE:
+@GI_TYPE_TAG_SIZE:
+@GI_TYPE_TAG_FLOAT:
+@GI_TYPE_TAG_DOUBLE:
+@GI_TYPE_TAG_TIME_T:
+@GI_TYPE_TAG_GTYPE:
+@GI_TYPE_TAG_UTF8:
+@GI_TYPE_TAG_FILENAME:
+@GI_TYPE_TAG_ARRAY:
+@GI_TYPE_TAG_INTERFACE:
+@GI_TYPE_TAG_GLIST:
+@GI_TYPE_TAG_GSLIST:
+@GI_TYPE_TAG_GHASH:
+@GI_TYPE_TAG_ERROR:
+
+<!-- ##### FUNCTION g_type_tag_to_string ##### -->
+<para>
+
+</para>
+
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_info_is_pointer ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_info_get_tag ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_info_get_param_type ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_info_get_interface ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_info_get_array_length ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_info_get_array_fixed_size ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_info_is_zero_terminated ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_info_get_n_error_domains ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_info_get_error_domain ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_error_domain_info_get_quark ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_error_domain_info_get_codes ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_info_get_value ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### ENUM GIFieldInfoFlags ##### -->
+<para>
+
+</para>
+
+@GI_FIELD_IS_READABLE:
+@GI_FIELD_IS_WRITABLE:
+
+<!-- ##### FUNCTION g_field_info_get_flags ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_field_info_get_size ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_field_info_get_offset ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_field_info_get_type ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_field_info_get_field ##### -->
+<para>
+
+</para>
+
+@field_info:
+@mem:
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_field_info_set_field ##### -->
+<para>
+
+</para>
+
+@field_info:
+@mem:
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_union_info_get_n_fields ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_union_info_get_field ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_union_info_get_n_methods ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_union_info_get_method ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_union_info_is_discriminated ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_union_info_get_discriminator_offset ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_union_info_get_discriminator_type ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_union_info_get_discriminator ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_union_info_find_method ##### -->
+<para>
+
+</para>
+
+@info:
+@name:
+@Returns:
+
+
+<!-- ##### FUNCTION g_union_info_get_size ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_union_info_get_alignment ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_struct_info_get_n_fields ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_struct_info_get_field ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_struct_info_get_n_methods ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_struct_info_get_method ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_struct_info_find_method ##### -->
+<para>
+
+</para>
+
+@info:
+@name:
+@Returns:
+
+
+<!-- ##### FUNCTION g_struct_info_get_size ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_struct_info_get_alignment ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_struct_info_is_class_struct ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_registered_type_info_get_type_name ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_registered_type_info_get_type_init ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_registered_type_info_get_g_type ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_enum_info_get_n_values ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_enum_info_get_value ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_enum_info_get_storage_type ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_type_name ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_type_init ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_abstract ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_parent ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_n_interfaces ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_interface ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_n_fields ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_field ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_n_properties ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_property ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_n_methods ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_method ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_find_method ##### -->
+<para>
+
+</para>
+
+@info:
+@name:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_n_signals ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_signal ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_n_vfuncs ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_vfunc ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_n_constants ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_constant ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_info_get_class_struct ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_interface_info_get_n_prerequisites ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_interface_info_get_prerequisite ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_interface_info_get_n_properties ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_interface_info_get_property ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_interface_info_get_n_methods ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_interface_info_get_method ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_interface_info_find_method ##### -->
+<para>
+
+</para>
+
+@info:
+@name:
+@Returns:
+
+
+<!-- ##### FUNCTION g_interface_info_get_n_signals ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_interface_info_get_signal ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_interface_info_get_n_vfuncs ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_interface_info_get_vfunc ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_interface_info_get_n_constants ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_interface_info_get_constant ##### -->
+<para>
+
+</para>
+
+@info:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_property_info_get_flags ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_property_info_get_type ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_signal_info_get_flags ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_signal_info_get_class_closure ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_signal_info_true_stops_emit ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### ENUM GIVFuncInfoFlags ##### -->
+<para>
+
+</para>
+
+@GI_VFUNC_MUST_CHAIN_UP:
+@GI_VFUNC_MUST_OVERRIDE:
+@GI_VFUNC_MUST_NOT_OVERRIDE:
+
+<!-- ##### FUNCTION g_vfunc_info_get_flags ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_vfunc_info_get_offset ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_vfunc_info_get_signal ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_constant_info_get_type ##### -->
+<para>
+
+</para>
+
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_constant_info_get_value ##### -->
+<para>
+
+</para>
+
+@info:
+@value:
+@Returns:
+
+
diff --git a/docs/reference/tmpl/girffi.sgml b/docs/reference/tmpl/girffi.sgml
new file mode 100644
index 00000000..a9ad7c12
--- /dev/null
+++ b/docs/reference/tmpl/girffi.sgml
@@ -0,0 +1,78 @@
+<!-- ##### SECTION Title ##### -->
+girffi
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### USER_FUNCTION GIFFIClosureCallback ##### -->
+<para>
+
+</para>
+
+@Param1:
+@Param2:
+@Param3:
+@Param4:
+
+
+<!-- ##### FUNCTION g_ir_ffi_get_ffi_type ##### -->
+<para>
+
+</para>
+
+@tag:
+@Returns:
+
+
+<!-- ##### FUNCTION g_callable_info_get_ffi_arg_types ##### -->
+<para>
+
+</para>
+
+@callable_info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_callable_info_get_ffi_return_type ##### -->
+<para>
+
+</para>
+
+@callable_info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_callable_info_prepare_closure ##### -->
+<para>
+
+</para>
+
+@callable_info:
+@cif:
+@callback:
+@user_data:
+@Returns:
+
+
+<!-- ##### FUNCTION g_callable_info_free_closure ##### -->
+<para>
+
+</para>
+
+@callable_info:
+@closure:
+
+
diff --git a/docs/reference/tmpl/girmodule.sgml b/docs/reference/tmpl/girmodule.sgml
new file mode 100644
index 00000000..16e133b8
--- /dev/null
+++ b/docs/reference/tmpl/girmodule.sgml
@@ -0,0 +1,71 @@
+<!-- ##### SECTION Title ##### -->
+girmodule
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### STRUCT GIrModule ##### -->
+<para>
+
+</para>
+
+@name:
+@version:
+@shared_library:
+@dependencies:
+@entries:
+@include_modules:
+@aliases:
+@disguised_structures:
+
+<!-- ##### FUNCTION g_ir_module_new ##### -->
+<para>
+
+</para>
+
+@name:
+@nsversion:
+@module_filename:
+@Returns:
+
+
+<!-- ##### FUNCTION g_ir_module_free ##### -->
+<para>
+
+</para>
+
+@module:
+
+
+<!-- ##### FUNCTION g_ir_module_add_include_module ##### -->
+<para>
+
+</para>
+
+@module:
+@include_module:
+
+
+<!-- ##### FUNCTION g_ir_module_build_typelib ##### -->
+<para>
+
+</para>
+
+@module:
+@modules:
+@Returns:
+
+
diff --git a/docs/reference/tmpl/girnode.sgml b/docs/reference/tmpl/girnode.sgml
new file mode 100644
index 00000000..4e2f790c
--- /dev/null
+++ b/docs/reference/tmpl/girnode.sgml
@@ -0,0 +1,420 @@
+<!-- ##### SECTION Title ##### -->
+girnode
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### STRUCT GIrNode ##### -->
+<para>
+
+</para>
+
+@type:
+@name:
+
+<!-- ##### STRUCT GIrNodeFunction ##### -->
+<para>
+
+</para>
+
+@node:
+@deprecated:
+@is_varargs:
+@is_method:
+@is_setter:
+@is_getter:
+@is_constructor:
+@wraps_vfunc:
+@throws:
+@symbol:
+@result:
+@parameters:
+
+<!-- ##### STRUCT GIrNodeParam ##### -->
+<para>
+
+</para>
+
+@node:
+@in:
+@out:
+@dipper:
+@optional:
+@retval:
+@allow_none:
+@transfer:
+@shallow_transfer:
+@scope:
+@closure:
+@destroy:
+@type:
+
+<!-- ##### STRUCT GIrNodeType ##### -->
+<para>
+
+</para>
+
+@node:
+@is_pointer:
+@is_basic:
+@is_array:
+@is_glist:
+@is_gslist:
+@is_ghashtable:
+@is_interface:
+@is_error:
+@tag:
+@unparsed:
+@zero_terminated:
+@has_length:
+@length:
+@has_size:
+@size:
+@parameter_type1:
+@parameter_type2:
+@interface:
+@errors:
+
+<!-- ##### STRUCT GIrNodeInterface ##### -->
+<para>
+
+</para>
+
+@node:
+@abstract:
+@deprecated:
+@gtype_name:
+@gtype_init:
+@parent:
+@class_struct:
+@interfaces:
+@prerequisites:
+@alignment:
+@size:
+@members:
+
+<!-- ##### STRUCT GIrNodeSignal ##### -->
+<para>
+
+</para>
+
+@node:
+@deprecated:
+@run_first:
+@run_last:
+@run_cleanup:
+@no_recurse:
+@detailed:
+@action:
+@no_hooks:
+@has_class_closure:
+@true_stops_emit:
+@class_closure:
+@parameters:
+@result:
+
+<!-- ##### STRUCT GIrNodeProperty ##### -->
+<para>
+
+</para>
+
+@node:
+@deprecated:
+@name:
+@readable:
+@writable:
+@construct:
+@construct_only:
+@type:
+
+<!-- ##### STRUCT GIrNodeVFunc ##### -->
+<para>
+
+</para>
+
+@node:
+@is_varargs:
+@must_chain_up:
+@must_be_implemented:
+@must_not_be_implemented:
+@is_class_closure:
+@parameters:
+@result:
+@offset:
+
+<!-- ##### STRUCT GIrNodeField ##### -->
+<para>
+
+</para>
+
+@node:
+@readable:
+@writable:
+@bits:
+@offset:
+@type:
+
+<!-- ##### STRUCT GIrNodeValue ##### -->
+<para>
+
+</para>
+
+@node:
+@deprecated:
+@value:
+
+<!-- ##### STRUCT GIrNodeEnum ##### -->
+<para>
+
+</para>
+
+@node:
+@deprecated:
+@storage_type:
+@gtype_name:
+@gtype_init:
+@values:
+
+<!-- ##### STRUCT GIrNodeBoxed ##### -->
+<para>
+
+</para>
+
+@node:
+@deprecated:
+@gtype_name:
+@gtype_init:
+@alignment:
+@size:
+@members:
+
+<!-- ##### STRUCT GIrNodeStruct ##### -->
+<para>
+
+</para>
+
+@node:
+@deprecated:
+@disguised:
+@is_gclass_struct:
+@gtype_name:
+@gtype_init:
+@alignment:
+@size:
+@members:
+
+<!-- ##### STRUCT GIrNodeConstant ##### -->
+<para>
+
+</para>
+
+@node:
+@deprecated:
+@type:
+@value:
+
+<!-- ##### STRUCT GIrNodeErrorDomain ##### -->
+<para>
+
+</para>
+
+@node:
+@deprecated:
+@name:
+@getquark:
+@codes:
+
+<!-- ##### STRUCT GIrNodeXRef ##### -->
+<para>
+
+</para>
+
+@node:
+@namespace:
+
+<!-- ##### STRUCT GIrNodeUnion ##### -->
+<para>
+
+</para>
+
+@node:
+@deprecated:
+@members:
+@discriminators:
+@gtype_name:
+@gtype_init:
+@alignment:
+@size:
+@discriminator_offset:
+@discriminator_type:
+
+<!-- ##### ENUM GIrNodeTypeId ##### -->
+<para>
+
+</para>
+
+@G_IR_NODE_INVALID:
+@G_IR_NODE_FUNCTION:
+@G_IR_NODE_CALLBACK:
+@G_IR_NODE_STRUCT:
+@G_IR_NODE_BOXED:
+@G_IR_NODE_ENUM:
+@G_IR_NODE_FLAGS:
+@G_IR_NODE_OBJECT:
+@G_IR_NODE_INTERFACE:
+@G_IR_NODE_CONSTANT:
+@G_IR_NODE_ERROR_DOMAIN:
+@G_IR_NODE_UNION:
+@G_IR_NODE_PARAM:
+@G_IR_NODE_TYPE:
+@G_IR_NODE_PROPERTY:
+@G_IR_NODE_SIGNAL:
+@G_IR_NODE_VALUE:
+@G_IR_NODE_VFUNC:
+@G_IR_NODE_FIELD:
+@G_IR_NODE_XREF:
+
+<!-- ##### FUNCTION g_ir_node_new ##### -->
+<para>
+
+</para>
+
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION g_ir_node_free ##### -->
+<para>
+
+</para>
+
+@node:
+
+
+<!-- ##### FUNCTION g_ir_node_get_size ##### -->
+<para>
+
+</para>
+
+@node:
+@Returns:
+
+
+<!-- ##### FUNCTION g_ir_node_get_full_size ##### -->
+<para>
+
+</para>
+
+@node:
+@Returns:
+
+
+<!-- ##### FUNCTION g_ir_node_build_typelib ##### -->
+<para>
+
+</para>
+
+@node:
+@module:
+@modules:
+@strings:
+@types:
+@data:
+@offset:
+@offset2:
+
+
+<!-- ##### FUNCTION g_ir_node_cmp ##### -->
+<para>
+
+</para>
+
+@node:
+@other:
+@Returns:
+
+
+<!-- ##### FUNCTION g_ir_node_can_have_member ##### -->
+<para>
+
+</para>
+
+@node:
+@Returns:
+
+
+<!-- ##### FUNCTION g_ir_node_add_member ##### -->
+<para>
+
+</para>
+
+@node:
+@member:
+
+
+<!-- ##### FUNCTION write_string ##### -->
+<para>
+
+</para>
+
+@str:
+@strings:
+@data:
+@offset:
+@Returns:
+
+
+<!-- ##### FUNCTION g_ir_node_param_direction_string ##### -->
+<para>
+
+</para>
+
+@node:
+@Returns:
+
+
+<!-- ##### FUNCTION g_ir_node_type_to_string ##### -->
+<para>
+
+</para>
+
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION g_ir_find_node ##### -->
+<para>
+
+</para>
+
+@module:
+@modules:
+@name:
+@node_out:
+@module_out:
+@Returns:
+
+
+<!-- ##### FUNCTION g_ir_node_compute_offsets ##### -->
+<para>
+
+</para>
+
+@node:
+@module:
+@modules:
+
+
diff --git a/docs/reference/tmpl/girparser.sgml b/docs/reference/tmpl/girparser.sgml
new file mode 100644
index 00000000..bfc66623
--- /dev/null
+++ b/docs/reference/tmpl/girparser.sgml
@@ -0,0 +1,74 @@
+<!-- ##### SECTION Title ##### -->
+girparser
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### STRUCT GIrParser ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION g_ir_parser_new ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION g_ir_parser_free ##### -->
+<para>
+
+</para>
+
+@parser:
+
+
+<!-- ##### FUNCTION g_ir_parser_set_includes ##### -->
+<para>
+
+</para>
+
+@parser:
+@includes:
+
+
+<!-- ##### FUNCTION g_ir_parser_parse_string ##### -->
+<para>
+
+</para>
+
+@parser:
+@namespace:
+@buffer:
+@length:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION g_ir_parser_parse_file ##### -->
+<para>
+
+</para>
+
+@parser:
+@filename:
+@error:
+@Returns:
+
+
diff --git a/docs/reference/tmpl/girwriter.sgml b/docs/reference/tmpl/girwriter.sgml
new file mode 100644
index 00000000..204c8b89
--- /dev/null
+++ b/docs/reference/tmpl/girwriter.sgml
@@ -0,0 +1,28 @@
+<!-- ##### SECTION Title ##### -->
+girwriter
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### FUNCTION g_idl_writer_save_file ##### -->
+<para>
+
+</para>
+
+@module:
+@filename:
+
+
diff --git a/docs/reference/tmpl/gtypelib.sgml b/docs/reference/tmpl/gtypelib.sgml
new file mode 100644
index 00000000..825880c7
--- /dev/null
+++ b/docs/reference/tmpl/gtypelib.sgml
@@ -0,0 +1,99 @@
+<!-- ##### SECTION Title ##### -->
+gtypelib
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### MACRO G_IR_MAGIC ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT GTypelib ##### -->
+<para>
+
+</para>
+
+@data:
+@len:
+@owns_memory:
+@mfile:
+@modules:
+
+<!-- ##### FUNCTION g_typelib_get_dir_entry ##### -->
+<para>
+
+</para>
+
+@typelib:
+@index:
+@Returns:
+
+
+<!-- ##### FUNCTION g_typelib_check_sanity ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO g_typelib_get_string ##### -->
+<para>
+
+</para>
+
+@typelib:
+@offset:
+
+
+<!-- ##### ENUM GTypelibError ##### -->
+<para>
+
+</para>
+
+@G_TYPELIB_ERROR_INVALID:
+@G_TYPELIB_ERROR_INVALID_HEADER:
+@G_TYPELIB_ERROR_INVALID_DIRECTORY:
+@G_TYPELIB_ERROR_INVALID_ENTRY:
+@G_TYPELIB_ERROR_INVALID_BLOB:
+
+<!-- ##### MACRO G_TYPELIB_ERROR ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION g_typelib_error_quark ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION g_typelib_validate ##### -->
+<para>
+
+</para>
+
+@typelib:
+@error:
+@Returns:
+
+
diff --git a/docs/reference/version.xml.in b/docs/reference/version.xml.in
new file mode 100644
index 00000000..d1cc3c74
--- /dev/null
+++ b/docs/reference/version.xml.in
@@ -0,0 +1,2 @@
+@GOBJECT_INTROSPECTION_VERSION@
+@GOBJECT_INTROSPECTION_VERSION@
diff --git a/girepository/ginfo.c b/girepository/ginfo.c
index a51c6cb3..f4ca1310 100644
--- a/girepository/ginfo.c
+++ b/girepository/ginfo.c
@@ -658,6 +658,7 @@ g_callable_info_get_n_args (GICallableInfo *info)
/**
* g_callable_info_get_arg:
* @info: a #GICallableInfo
+ * @n: the argument index to fetch
*
* Get information about a particular argument of this callable.
*
@@ -1186,6 +1187,7 @@ g_struct_info_get_alignment (GIStructInfo *info)
* GObject. This function is mainly useful to hide this kind of structure
* from public APIs.
*
+ * Returns: TRUE if it's a class struct, otherwise FALSE
*/
gboolean
g_struct_info_is_class_struct (GIStructInfo *info)
@@ -1493,6 +1495,8 @@ g_object_info_get_constant (GIObjectInfo *info,
*
* Every GObject has two structures; an instance structure and a class
* structure. This function returns the metadata for the class structure.
+ *
+ * Returns: a GIStrucTInfo for the class struct or NULL if none found.
*/
GIStructInfo *
g_object_info_get_class_struct (GIObjectInfo *info)
diff --git a/girepository/girepository.c b/girepository/girepository.c
index f35854a7..40c47864 100644
--- a/girepository/girepository.c
+++ b/girepository/girepository.c
@@ -370,12 +370,12 @@ register_internal (GIRepository *repository,
}
/**
- * g_irepository_get_dependencies
+ * g_irepository_get_dependencies:
* @repository: A #GIRepository, may be %NULL for the default
- * @namespace: Namespace of interest
+ * @namespace_: Namespace of interest
*
* Return an array of all (transitive) dependencies for namespace
- * @namespace, including version. The returned strings are of the
+ * @namespace_, including version. The returned strings are of the
* form <code>namespace-version</code>.
*
* Note: The namespace must have already been loaded using a function
@@ -436,10 +436,10 @@ g_irepository_load_typelib (GIRepository *repository,
}
/**
- * g_irepository_is_registered
+ * g_irepository_is_registered:
* @repository: A #GIRepository, may be %NULL for the default
- * @namespace: Namespace of interest
- * @version: <allow-none>: Required version, may be %NULL for latest
+ * @namespace_: Namespace of interest
+ * @version: (allow-none): Required version, may be %NULL for latest
*
* Check whether a particular namespace (and optionally, a specific
* version thereof) is currently loaded. This function is likely to
@@ -460,7 +460,7 @@ g_irepository_is_registered (GIRepository *repository,
}
/**
- * g_irepository_get_default
+ * g_irepository_get_default:
*
* Returns the singleton process-global default #GIRepository. It is
* not currently supported to have multiple repositories in a
@@ -482,12 +482,12 @@ g_irepository_get_default (void)
}
/**
- * g_irepository_get_n_infos
+ * g_irepository_get_n_infos:
* @repository: A #GIRepository, may be %NULL for the default
- * @namespace: Namespace to inspect
+ * @namespace_: Namespace to inspect
*
* This function returns the number of metadata entries in
- * given namespace @namespace. The namespace must have
+ * given namespace @namespace_. The namespace must have
* already been loaded before calling this function.
*
* Returns: number of metadata entries
@@ -591,13 +591,13 @@ find_interface (gpointer key,
}
/**
- * g_irepository_get_info
+ * g_irepository_get_info:
* @repository: A #GIRepository, may be %NULL for the default
- * @namespace: Namespace to inspect
+ * @namespace_: Namespace to inspect
* @index: Offset into namespace metadata for entry
*
* This function returns a particular metadata entry in the
- * given namespace @namespace. The namespace must have
+ * given namespace @namespace_. The namespace must have
* already been loaded before calling this function.
*
* Returns: #GIBaseInfo containing metadata
@@ -630,9 +630,9 @@ g_irepository_get_info (GIRepository *repository,
}
/**
- * g_irepository_find_by_gtype
+ * g_irepository_find_by_gtype:
* @repository: A #GIRepository, may be %NULL for the default
- * @type: GType to search for
+ * @gtype: GType to search for
*
* Searches all loaded namespaces for a particular #GType. Note that
* in order to locate the metadata, the namespace corresponding to
@@ -645,7 +645,7 @@ g_irepository_get_info (GIRepository *repository,
*/
GIBaseInfo *
g_irepository_find_by_gtype (GIRepository *repository,
- GType type)
+ GType gtype)
{
IfaceData data;
@@ -676,9 +676,9 @@ g_irepository_find_by_gtype (GIRepository *repository,
}
/**
- * g_irepository_find_by_name
+ * g_irepository_find_by_name:
* @repository: A #GIRepository, may be %NULL for the default
- * @namespace: Namespace which will be searched
+ * @namespace_: Namespace which will be searched
* @name: Entry name to find
*
* Searches for a particular entry in a namespace. Before calling
@@ -726,12 +726,12 @@ collect_namespaces (gpointer key,
}
/**
- * g_irepository_get_namespaces
+ * g_irepository_get_namespaces:
* @repository: A #GIRepository, may be %NULL for the default
*
* Return the list of currently loaded namespaces.
*
- * Returns: <utf8,transfer>: List of namespaces
+ * Returns: (utf8) (transfer full): List of namespaces
*/
gchar **
g_irepository_get_loaded_namespaces (GIRepository *repository)
@@ -755,12 +755,12 @@ g_irepository_get_loaded_namespaces (GIRepository *repository)
}
/**
- * g_irepository_get_version
+ * g_irepository_get_version:
* @repository: A #GIRepository, may be %NULL for the default
- * @namespace: Namespace to inspect
+ * @namespace_: Namespace to inspect
*
* This function returns the loaded version associated with the given
- * namespace @namespace.
+ * namespace @namespace_.
*
* Note: The namespace must have already been loaded using a function
* such as #g_irepository_require before calling this function.
@@ -787,12 +787,12 @@ g_irepository_get_version (GIRepository *repository,
}
/**
- * g_irepository_get_shared_library
+ * g_irepository_get_shared_library:
* @repository: A #GIRepository, may be %NULL for the default
- * @namespace: Namespace to inspect
+ * @namespace_: Namespace to inspect
*
* This function returns the full path to the shared C library
- * associated with the given namespace @namespace. There may be no
+ * associated with the given namespace @namespace_. There may be no
* shared library path associated, in which case this function will
* return %NULL.
*
@@ -824,17 +824,16 @@ g_irepository_get_shared_library (GIRepository *repository,
}
/**
- * g_irepository_get_typelib_path
+ * g_irepository_get_typelib_path:
* @repository: Repository, may be %NULL for the default
- * @namespace: GI namespace to use, e.g. "Gtk"
- * @version: <allow-none>: Version of namespace to use, e.g. "0.8", may be %NULL
+ * @namespace_: GI namespace to use, e.g. "Gtk"
*
- * If namespace @namespace is loaded, return the full path to the
+ * If namespace @namespace_ is loaded, return the full path to the
* .typelib file it was loaded from. If the typelib for
- * namespace @namespace was included in a shared library, return
- * the special string "<builtin>".
+ * namespace @namespace_ was included in a shared library, return
+ * the special string "$lt;builtin$gt;".
*
- * Returns: Filesystem path (or <builtin>) if successful, %NULL if namespace is not loaded
+ * Returns: Filesystem path (or $lt;builtin$gt;) if successful, %NULL if namespace is not loaded
*/
const gchar *
@@ -1080,15 +1079,15 @@ find_namespace_latest (const gchar *namespace,
}
/**
- * g_irepository_require
- * @repository: <allow-none>: Repository, may be %NULL for the default
- * @namespace: GI namespace to use, e.g. "Gtk"
- * @version: <allow-none>: Version of namespace, may be %NULL for latest
+ * g_irepository_require:
+ * @repository: (allow-none): Repository, may be %NULL for the default
+ * @namespace_: GI namespace to use, e.g. "Gtk"
+ * @version: (allow-none): Version of namespace, may be %NULL for latest
* @flags: Set of %GIRepositoryLoadFlags, may be %0
* @error: a #GError.
*
- * Force the namespace @namespace to be loaded if it isn't already.
- * If @namespace is not loaded, this function will search for a
+ * Force the namespace @namespace_ to be loaded if it isn't already.
+ * If @namespace_ is not loaded, this function will search for a
* ".typelib" file using the repository search path. In addition, a
* version @version of namespace may be specified. If @version is
* not specified, the latest will be used.
diff --git a/girepository/girffi.c b/girepository/girffi.c
index ffde8538..4611a630 100644
--- a/girepository/girffi.c
+++ b/girepository/girffi.c
@@ -225,7 +225,7 @@ g_callable_info_prepare_closure (GICallableInfo *callable_info,
}
/**
- * g_callable_info_prepare_closure:
+ * g_callable_info_free_closure:
* @callable_info: a callable info from a typelib
* @closure: ffi closure
*
diff --git a/girepository/giroffsets.c b/girepository/giroffsets.c
index cc56d0bc..d8347464 100644
--- a/girepository/giroffsets.c
+++ b/girepository/giroffsets.c
@@ -462,7 +462,7 @@ check_needs_computation (GIrNode *node,
* g_ir_node_compute_offsets:
* @node: a #GIrNode
* @module: Current module being processed
- * @moudles: all currently loaded modules
+ * @modules: all currently loaded modules
*
* If a node is a a structure or union, makes sure that the field
* offsets have been computed, and also computes the overall size and
diff --git a/girepository/girparser.c b/girepository/girparser.c
index 97e3a1e0..1c7f5b34 100644
--- a/girepository/girparser.c
+++ b/girepository/girparser.c
@@ -3188,12 +3188,15 @@ post_filter (GIrModule *module)
/**
* g_ir_parser_parse_string:
* @parser: a #GIrParser
+ * @namespace: the namespace of the string
+ * @buffer: the data containing the XML
+ * @length: length of the data
* @error: return location for a #GError, or %NULL
*
* Parse a string that holds a complete GIR XML file, and return a list of a
* a #GirModule for each &lt;namespace/&gt; element within the file.
*
- * @returns: a newly allocated list of #GIrModule. The modules themselves
+ * Returns: a newly allocated list of #GIrModule. The modules themselves
* are owned by the #GIrParser and will be freed along with the parser.
*/
GList *
@@ -3258,12 +3261,13 @@ g_ir_parser_parse_string (GIrParser *parser,
/**
* g_ir_parser_parse_file:
* @parser: a #GIrParser
+ * @filename: filename to parse
* @error: return location for a #GError, or %NULL
*
* Parse GIR XML file, and return a list of a a #GirModule for each
* &lt;namespace/&gt; element within the file.
*
- * @returns: a newly allocated list of #GIrModule. The modules themselves
+ * Returns: a newly allocated list of #GIrModule. The modules themselves
* are owned by the #GIrParser and will be freed along with the parser.
*/
GList *
diff --git a/girepository/gtypelib.c b/girepository/gtypelib.c
index e3b1214e..b228a23f 100644
--- a/girepository/gtypelib.c
+++ b/girepository/gtypelib.c
@@ -2124,6 +2124,7 @@ g_typelib_get_namespace (GTypelib *typelib)
/**
* g_typelib_symbol:
+ * @typelib: the typelib
* @symbol_name: name of symbol to be loaded
* @symbol: returns a pointer to the symbol value
*
diff --git a/m4/gtk-doc.m4 b/m4/gtk-doc.m4
new file mode 100644
index 00000000..a22be916
--- /dev/null
+++ b/m4/gtk-doc.m4
@@ -0,0 +1,43 @@
+dnl -*- mode: autoconf -*-
+
+# serial 1
+
+dnl Usage:
+dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
+AC_DEFUN([GTK_DOC_CHECK],
+[
+ AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
+ AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
+
+ dnl for overriding the documentation installation directory
+ AC_ARG_WITH([html-dir],
+ AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
+ [with_html_dir='${datadir}/gtk-doc/html'])
+ HTML_DIR="$with_html_dir"
+ AC_SUBST([HTML_DIR])
+
+ dnl enable/disable documentation building
+ AC_ARG_ENABLE([gtk-doc],
+ AS_HELP_STRING([--enable-gtk-doc],
+ [use gtk-doc to build documentation [[default=no]]]),,
+ [enable_gtk_doc=no])
+
+ if test x$enable_gtk_doc = xyes; then
+ ifelse([$1],[],
+ [PKG_CHECK_EXISTS([gtk-doc],,
+ AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
+ [PKG_CHECK_EXISTS([gtk-doc >= $1],,
+ AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
+ fi
+
+ AC_MSG_CHECKING([whether to build gtk-doc documentation])
+ AC_MSG_RESULT($enable_gtk_doc)
+
+ dnl check for tools we added during development
+ AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check])
+ AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
+
+ AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
+ AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
+ AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"])
+])