[glibmm/glibmm-3maybe] Added files and changes from master lost during the rebase.



commit f3a2e38e426b01610b0bb9d5ac953f25ac58764d
Author: Murray Cumming <murrayc murrayc com>
Date:   Tue Jul 27 15:58:20 2010 +0200

    Added files and changes from master lost during the rebase.

 gio/src/filelist.am              |    1 +
 gio/src/gio.defs                 |    1 +
 gio/src/gio_enums.defs           |  423 +++++-
 gio/src/gio_methods.defs         | 3369 ++++++++++++++++++++++++++++++--------
 gio/src/gio_signals.defs         |   27 +-
 gio/src/gio_unix_functions.defs  |  725 ++++++++
 gio/src/settings.ccg             |    9 +-
 gio/src/settings.hg              |   23 +-
 glib/src/filelist.am             |    5 +-
 glib/src/variant.ccg             |   71 +
 glib/src/variant.hg              |  159 ++
 glib/src/variant_basictypes.h.m4 |   92 +
 tools/m4/convert_gio.m4          |    5 +
 13 files changed, 4177 insertions(+), 733 deletions(-)
---
diff --git a/gio/src/filelist.am b/gio/src/filelist.am
index 894f3d7..d81e6d4 100644
--- a/gio/src/filelist.am
+++ b/gio/src/filelist.am
@@ -4,6 +4,7 @@ giomm_files_defs =			\
 	gio.defs			\
 	gio_enums.defs			\
 	gio_methods.defs		\
+	gio_unix_functions.defs		\
 	gio_others.defs			\
 	gio_signals.defs		\
 	gio_vfuncs.defs			\
diff --git a/gio/src/gio.defs b/gio/src/gio.defs
index 152d7ef..8d30ed1 100644
--- a/gio/src/gio.defs
+++ b/gio/src/gio.defs
@@ -1,4 +1,5 @@
 (include gio_methods.defs)
+(include gio_unix_functions.defs)
 (include gio_others.defs)
 (include gio_enums.defs)
 (include gio_signals.defs)
diff --git a/gio/src/gio_enums.defs b/gio/src/gio_enums.defs
index 590f97f..8beb045 100644
--- a/gio/src/gio_enums.defs
+++ b/gio/src/gio_enums.defs
@@ -2,9 +2,10 @@
 
 ;; Original typedef:
 ;; typedef enum {
-;;   G_APP_INFO_CREATE_NONE           = 0,         /*< nick=none >*/
-;;   G_APP_INFO_CREATE_NEEDS_TERMINAL = (1 << 0),  /*< nick=needs-terminal >*/
-;;   G_APP_INFO_CREATE_SUPPORTS_URIS  = (1 << 1)   /*< nick=supports-uris >*/
+;;   G_APP_INFO_CREATE_NONE                           = 0,         /*< nick=none >*/
+;;   G_APP_INFO_CREATE_NEEDS_TERMINAL                 = (1 << 0),  /*< nick=needs-terminal >*/
+;;   G_APP_INFO_CREATE_SUPPORTS_URIS                  = (1 << 1),  /*< nick=supports-uris >*/
+;;   G_APP_INFO_CREATE_SUPPORTS_STARTUP_NOTIFICATION  = (1 << 2)   /*< nick=supports-startup-notification >*/
 ;; } GAppInfoCreateFlags;
 
 (define-flags-extended AppInfoCreateFlags
@@ -14,6 +15,7 @@
     '("none" "G_APP_INFO_CREATE_NONE" "0x0")
     '("needs-terminal" "G_APP_INFO_CREATE_NEEDS_TERMINAL" "(1 << 0)")
     '("supports-uris" "G_APP_INFO_CREATE_SUPPORTS_URIS" "(1 << 1)")
+    '("supports-startup-notification" "G_APP_INFO_CREATE_SUPPORTS_STARTUP_NOTIFICATION" "(1 << 2)")
   )
 )
 
@@ -396,7 +398,8 @@
 ;;   G_IO_ERROR_NOT_INITIALIZED,
 ;;   G_IO_ERROR_ADDRESS_IN_USE,
 ;;   G_IO_ERROR_PARTIAL_INPUT,
-;;   G_IO_ERROR_INVALID_DATA
+;;   G_IO_ERROR_INVALID_DATA,
+;;   G_IO_ERROR_DBUS_ERROR
 ;; } GIOErrorEnum;
 
 (define-enum-extended IOErrorEnum
@@ -405,7 +408,6 @@
   (values
     '("failed" "G_IO_ERROR_FAILED" "0")
     '("not-found" "G_IO_ERROR_NOT_FOUND" "1")
-
     '("exists" "G_IO_ERROR_EXISTS" "2")
     '("is-directory" "G_IO_ERROR_IS_DIRECTORY" "3")
     '("not-directory" "G_IO_ERROR_NOT_DIRECTORY" "4")
@@ -441,6 +443,7 @@
     '("address-in-use" "G_IO_ERROR_ADDRESS_IN_USE" "33")
     '("partial-input" "G_IO_ERROR_PARTIAL_INPUT" "34")
     '("invalid-data" "G_IO_ERROR_INVALID_DATA" "35")
+    '("dbus-error" "G_IO_ERROR_DBUS_ERROR" "36")
   )
 )
 
@@ -651,6 +654,416 @@
   )
 )
 
+;; Original typedef:
+;; typedef enum {
+;;   G_UNIX_SOCKET_ADDRESS_INVALID,
+;;   G_UNIX_SOCKET_ADDRESS_ANONYMOUS,
+;;   G_UNIX_SOCKET_ADDRESS_PATH,
+;;   G_UNIX_SOCKET_ADDRESS_ABSTRACT,
+;;   G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED
+;; } GUnixSocketAddressType;
+
+(define-enum-extended UnixSocketAddressType
+  (in-module "G")
+  (c-name "GUnixSocketAddressType")
+  (values
+    '("invalid" "G_UNIX_SOCKET_ADDRESS_INVALID" "0")
+    '("anonymous" "G_UNIX_SOCKET_ADDRESS_ANONYMOUS" "1")
+    '("path" "G_UNIX_SOCKET_ADDRESS_PATH" "2")
+    '("abstract" "G_UNIX_SOCKET_ADDRESS_ABSTRACT" "3")
+    '("abstract-padded" "G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED" "4")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   G_BUS_TYPE_STARTER = -1,
+;;   G_BUS_TYPE_NONE = 0,
+;;   G_BUS_TYPE_SYSTEM  = 1,
+;;   G_BUS_TYPE_SESSION = 2
+;; } GBusType;
+
+(define-enum-extended BusType
+  (in-module "G")
+  (c-name "GBusType")
+  (values
+    '("starter" "G_BUS_TYPE_STARTER" "-1")
+    '("none" "G_BUS_TYPE_NONE" "0")
+    '("system" "G_BUS_TYPE_SYSTEM" "1")
+    '("session" "G_BUS_TYPE_SESSION" "2")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   G_BUS_NAME_OWNER_FLAGS_NONE = 0,                    /*< nick=none >*/
+;;   G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT = (1<<0),  /*< nick=allow-replacement >*/
+;;   G_BUS_NAME_OWNER_FLAGS_REPLACE = (1<<1)            /*< nick=replace >*/
+;; } GBusNameOwnerFlags;
+
+(define-flags-extended BusNameOwnerFlags
+  (in-module "G")
+  (c-name "GBusNameOwnerFlags")
+  (values
+    '("none" "G_BUS_NAME_OWNER_FLAGS_NONE" "0x0")
+    '("allow-replacement" "G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT" "(1<<0)")
+    '("replace" "G_BUS_NAME_OWNER_FLAGS_REPLACE" "(1<<1)")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   G_BUS_NAME_WATCHER_FLAGS_NONE = 0,
+;;   G_BUS_NAME_WATCHER_FLAGS_AUTO_START = (1<<0)
+;; } GBusNameWatcherFlags;
+
+(define-flags-extended BusNameWatcherFlags
+  (in-module "G")
+  (c-name "GBusNameWatcherFlags")
+  (values
+    '("none" "G_BUS_NAME_WATCHER_FLAGS_NONE" "0x0")
+    '("auto-start" "G_BUS_NAME_WATCHER_FLAGS_AUTO_START" "(1<<0)")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   G_DBUS_PROXY_FLAGS_NONE = 0,
+;;   G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES = (1<<0),
+;;   G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS = (1<<1),
+;;   G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START = (1<<2)
+;; } GDBusProxyFlags;
+
+(define-flags-extended DBusProxyFlags
+  (in-module "G")
+  (c-name "GDBusProxyFlags")
+  (values
+    '("none" "G_DBUS_PROXY_FLAGS_NONE" "0x0")
+    '("do-not-load-properties" "G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES" "(1<<0)")
+    '("do-not-connect-signals" "G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS" "(1<<1)")
+    '("do-not-auto-start" "G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START" "(1<<2)")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   /* Well-known errors in the org.freedesktop.DBus.Error namespace */
+;;   G_DBUS_ERROR_FAILED,                           /* org.freedesktop.DBus.Error.Failed */
+;;   G_DBUS_ERROR_NO_MEMORY,                        /* org.freedesktop.DBus.Error.NoMemory */
+;;   G_DBUS_ERROR_SERVICE_UNKNOWN,                  /* org.freedesktop.DBus.Error.ServiceUnknown */
+;;   G_DBUS_ERROR_NAME_HAS_NO_OWNER,                /* org.freedesktop.DBus.Error.NameHasNoOwner */
+;;   G_DBUS_ERROR_NO_REPLY,                         /* org.freedesktop.DBus.Error.NoReply */
+;;   G_DBUS_ERROR_IO_ERROR,                         /* org.freedesktop.DBus.Error.IOError */
+;;   G_DBUS_ERROR_BAD_ADDRESS,                      /* org.freedesktop.DBus.Error.BadAddress */
+;;   G_DBUS_ERROR_NOT_SUPPORTED,                    /* org.freedesktop.DBus.Error.NotSupported */
+;;   G_DBUS_ERROR_LIMITS_EXCEEDED,                  /* org.freedesktop.DBus.Error.LimitsExceeded */
+;;   G_DBUS_ERROR_ACCESS_DENIED,                    /* org.freedesktop.DBus.Error.AccessDenied */
+;;   G_DBUS_ERROR_AUTH_FAILED,                      /* org.freedesktop.DBus.Error.AuthFailed */
+;;   G_DBUS_ERROR_NO_SERVER,                        /* org.freedesktop.DBus.Error.NoServer */
+;;   G_DBUS_ERROR_TIMEOUT,                          /* org.freedesktop.DBus.Error.Timeout */
+;;   G_DBUS_ERROR_NO_NETWORK,                       /* org.freedesktop.DBus.Error.NoNetwork */
+;;   G_DBUS_ERROR_ADDRESS_IN_USE,                   /* org.freedesktop.DBus.Error.AddressInUse */
+;;   G_DBUS_ERROR_DISCONNECTED,                     /* org.freedesktop.DBus.Error.Disconnected */
+;;   G_DBUS_ERROR_INVALID_ARGS,                     /* org.freedesktop.DBus.Error.InvalidArgs */
+;;   G_DBUS_ERROR_FILE_NOT_FOUND,                   /* org.freedesktop.DBus.Error.FileNotFound */
+;;   G_DBUS_ERROR_FILE_EXISTS,                      /* org.freedesktop.DBus.Error.FileExists */
+;;   G_DBUS_ERROR_UNKNOWN_METHOD,                   /* org.freedesktop.DBus.Error.UnknownMethod */
+;;   G_DBUS_ERROR_TIMED_OUT,                        /* org.freedesktop.DBus.Error.TimedOut */
+;;   G_DBUS_ERROR_MATCH_RULE_NOT_FOUND,             /* org.freedesktop.DBus.Error.MatchRuleNotFound */
+;;   G_DBUS_ERROR_MATCH_RULE_INVALID,               /* org.freedesktop.DBus.Error.MatchRuleInvalid */
+;;   G_DBUS_ERROR_SPAWN_EXEC_FAILED,                /* org.freedesktop.DBus.Error.Spawn.ExecFailed */
+;;   G_DBUS_ERROR_SPAWN_FORK_FAILED,                /* org.freedesktop.DBus.Error.Spawn.ForkFailed */
+;;   G_DBUS_ERROR_SPAWN_CHILD_EXITED,               /* org.freedesktop.DBus.Error.Spawn.ChildExited */
+;;   G_DBUS_ERROR_SPAWN_CHILD_SIGNALED,             /* org.freedesktop.DBus.Error.Spawn.ChildSignaled */
+;;   G_DBUS_ERROR_SPAWN_FAILED,                     /* org.freedesktop.DBus.Error.Spawn.Failed */
+;;   G_DBUS_ERROR_SPAWN_SETUP_FAILED,               /* org.freedesktop.DBus.Error.Spawn.FailedToSetup */
+;;   G_DBUS_ERROR_SPAWN_CONFIG_INVALID,             /* org.freedesktop.DBus.Error.Spawn.ConfigInvalid */
+;;   G_DBUS_ERROR_SPAWN_SERVICE_INVALID,            /* org.freedesktop.DBus.Error.Spawn.ServiceNotValid */
+;;   G_DBUS_ERROR_SPAWN_SERVICE_NOT_FOUND,          /* org.freedesktop.DBus.Error.Spawn.ServiceNotFound */
+;;   G_DBUS_ERROR_SPAWN_PERMISSIONS_INVALID,        /* org.freedesktop.DBus.Error.Spawn.PermissionsInvalid */
+;;   G_DBUS_ERROR_SPAWN_FILE_INVALID,               /* org.freedesktop.DBus.Error.Spawn.FileInvalid */
+;;   G_DBUS_ERROR_SPAWN_NO_MEMORY,                  /* org.freedesktop.DBus.Error.Spawn.NoMemory */
+;;   G_DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN,          /* org.freedesktop.DBus.Error.UnixProcessIdUnknown */
+;;   G_DBUS_ERROR_INVALID_SIGNATURE,                /* org.freedesktop.DBus.Error.InvalidSignature */
+;;   G_DBUS_ERROR_INVALID_FILE_CONTENT,             /* org.freedesktop.DBus.Error.InvalidFileContent */
+;;   G_DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN, /* org.freedesktop.DBus.Error.SELinuxSecurityContextUnknown */
+;;   G_DBUS_ERROR_ADT_AUDIT_DATA_UNKNOWN,           /* org.freedesktop.DBus.Error.AdtAuditDataUnknown */
+;;   G_DBUS_ERROR_OBJECT_PATH_IN_USE                /* org.freedesktop.DBus.Error.ObjectPathInUse */
+;; } GDBusError;
+
+(define-enum-extended DBusError
+  (in-module "G")
+  (c-name "GDBusError")
+  (values
+    '("failed" "G_DBUS_ERROR_FAILED" "0")
+    '("no-memory" "G_DBUS_ERROR_NO_MEMORY" "1")
+    '("service-unknown" "G_DBUS_ERROR_SERVICE_UNKNOWN" "2")
+    '("name-has-no-owner" "G_DBUS_ERROR_NAME_HAS_NO_OWNER" "3")
+    '("no-reply" "G_DBUS_ERROR_NO_REPLY" "4")
+    '("io-error" "G_DBUS_ERROR_IO_ERROR" "5")
+    '("bad-address" "G_DBUS_ERROR_BAD_ADDRESS" "6")
+    '("not-supported" "G_DBUS_ERROR_NOT_SUPPORTED" "7")
+    '("limits-exceeded" "G_DBUS_ERROR_LIMITS_EXCEEDED" "8")
+    '("access-denied" "G_DBUS_ERROR_ACCESS_DENIED" "9")
+    '("auth-failed" "G_DBUS_ERROR_AUTH_FAILED" "10")
+    '("no-server" "G_DBUS_ERROR_NO_SERVER" "11")
+    '("timeout" "G_DBUS_ERROR_TIMEOUT" "12")
+    '("no-network" "G_DBUS_ERROR_NO_NETWORK" "13")
+    '("address-in-use" "G_DBUS_ERROR_ADDRESS_IN_USE" "14")
+    '("disconnected" "G_DBUS_ERROR_DISCONNECTED" "15")
+    '("invalid-args" "G_DBUS_ERROR_INVALID_ARGS" "16")
+    '("file-not-found" "G_DBUS_ERROR_FILE_NOT_FOUND" "17")
+    '("file-exists" "G_DBUS_ERROR_FILE_EXISTS" "18")
+    '("unknown-method" "G_DBUS_ERROR_UNKNOWN_METHOD" "19")
+    '("timed-out" "G_DBUS_ERROR_TIMED_OUT" "20")
+    '("match-rule-not-found" "G_DBUS_ERROR_MATCH_RULE_NOT_FOUND" "21")
+    '("match-rule-invalid" "G_DBUS_ERROR_MATCH_RULE_INVALID" "22")
+    '("spawn-exec-failed" "G_DBUS_ERROR_SPAWN_EXEC_FAILED" "23")
+    '("spawn-fork-failed" "G_DBUS_ERROR_SPAWN_FORK_FAILED" "24")
+    '("spawn-child-exited" "G_DBUS_ERROR_SPAWN_CHILD_EXITED" "25")
+    '("spawn-child-signaled" "G_DBUS_ERROR_SPAWN_CHILD_SIGNALED" "26")
+    '("spawn-failed" "G_DBUS_ERROR_SPAWN_FAILED" "27")
+    '("spawn-setup-failed" "G_DBUS_ERROR_SPAWN_SETUP_FAILED" "28")
+    '("spawn-config-invalid" "G_DBUS_ERROR_SPAWN_CONFIG_INVALID" "29")
+    '("spawn-service-invalid" "G_DBUS_ERROR_SPAWN_SERVICE_INVALID" "30")
+    '("spawn-service-not-found" "G_DBUS_ERROR_SPAWN_SERVICE_NOT_FOUND" "31")
+    '("spawn-permissions-invalid" "G_DBUS_ERROR_SPAWN_PERMISSIONS_INVALID" "32")
+    '("spawn-file-invalid" "G_DBUS_ERROR_SPAWN_FILE_INVALID" "33")
+    '("spawn-no-memory" "G_DBUS_ERROR_SPAWN_NO_MEMORY" "34")
+    '("unix-process-id-unknown" "G_DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN" "35")
+    '("invalid-signature" "G_DBUS_ERROR_INVALID_SIGNATURE" "36")
+    '("invalid-file-content" "G_DBUS_ERROR_INVALID_FILE_CONTENT" "37")
+    '("selinux-security-context-unknown" "G_DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN" "38")
+    '("adt-audit-data-unknown" "G_DBUS_ERROR_ADT_AUDIT_DATA_UNKNOWN" "39")
+    '("object-path-in-use" "G_DBUS_ERROR_OBJECT_PATH_IN_USE" "40")
+  )
+)
+
+;; Original typedef:
+;; typedef enum {
+;;   G_DBUS_CONNECTION_FLAGS_NONE = 0,
+;;   G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT = (1<<0),
+;;   G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER = (1<<1),
+;;   G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS = (1<<2),
+;;   G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION = (1<<3),
+;;   G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING = (1<<4)
+;; } GDBusConnectionFlags;
+
+(define-flags-extended DBusConnectionFlags
+  (in-module "G")
+  (c-name "GDBusConnectionFlags")
+  (values
+    '("none" "G_DBUS_CONNECTION_FLAGS_NONE" "0x0")
+    '("authentication-client" "G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT" "(1<<0)")
+    '("authentication-server" "G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER" "(1<<1)")
+    '("authentication-allow-anonymous" "G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS" "(1<<2)")
+    '("message-bus-connection" "G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION" "(1<<3)")
+    '("delay-message-processing" "G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING" "(1<<4)")
+  )
+)
+
+;; Original typedef:
+;; typedef enum {
+;;   G_DBUS_CAPABILITY_FLAGS_NONE = 0,
+;;   G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING = (1<<0)
+;; } GDBusCapabilityFlags;
+
+(define-flags-extended DBusCapabilityFlags
+  (in-module "G")
+  (c-name "GDBusCapabilityFlags")
+  (values
+    '("none" "G_DBUS_CAPABILITY_FLAGS_NONE" "0x0")
+    '("unix-fd-passing" "G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING" "(1<<0)")
+  )
+)
+
+;; Original typedef:
+;; typedef enum {
+;;   G_DBUS_CALL_FLAGS_NONE = 0,
+;;   G_DBUS_CALL_FLAGS_NO_AUTO_START = (1<<0)
+;; } GDBusCallFlags;
+
+(define-flags-extended DBusCallFlags
+  (in-module "G")
+  (c-name "GDBusCallFlags")
+  (values
+    '("none" "G_DBUS_CALL_FLAGS_NONE" "0x0")
+    '("no-auto-start" "G_DBUS_CALL_FLAGS_NO_AUTO_START" "(1<<0)")
+  )
+)
+
+;; Original typedef:
+;; typedef enum {
+;;   G_DBUS_MESSAGE_TYPE_INVALID,
+;;   G_DBUS_MESSAGE_TYPE_METHOD_CALL,
+;;   G_DBUS_MESSAGE_TYPE_METHOD_RETURN,
+;;   G_DBUS_MESSAGE_TYPE_ERROR,
+;;   G_DBUS_MESSAGE_TYPE_SIGNAL
+;; } GDBusMessageType;
+
+(define-enum-extended DBusMessageType
+  (in-module "G")
+  (c-name "GDBusMessageType")
+  (values
+    '("invalid" "G_DBUS_MESSAGE_TYPE_INVALID" "0")
+    '("method-call" "G_DBUS_MESSAGE_TYPE_METHOD_CALL" "1")
+    '("method-return" "G_DBUS_MESSAGE_TYPE_METHOD_RETURN" "2")
+    '("error" "G_DBUS_MESSAGE_TYPE_ERROR" "3")
+    '("signal" "G_DBUS_MESSAGE_TYPE_SIGNAL" "4")
+  )
+)
+
+;; Original typedef:
+;; typedef enum {
+;;   G_DBUS_MESSAGE_FLAGS_NONE = 0,
+;;   G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED = (1<<0),
+;;   G_DBUS_MESSAGE_FLAGS_NO_AUTO_START = (1<<1)
+;; } GDBusMessageFlags;
+
+(define-flags-extended DBusMessageFlags
+  (in-module "G")
+  (c-name "GDBusMessageFlags")
+  (values
+    '("none" "G_DBUS_MESSAGE_FLAGS_NONE" "0x0")
+    '("no-reply-expected" "G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED" "(1<<0)")
+    '("no-auto-start" "G_DBUS_MESSAGE_FLAGS_NO_AUTO_START" "(1<<1)")
+  )
+)
+
+;; Original typedef:
+;; typedef enum {
+;;   G_DBUS_MESSAGE_HEADER_FIELD_INVALID,
+;;   G_DBUS_MESSAGE_HEADER_FIELD_PATH,
+;;   G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE,
+;;   G_DBUS_MESSAGE_HEADER_FIELD_MEMBER,
+;;   G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME,
+;;   G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL,
+;;   G_DBUS_MESSAGE_HEADER_FIELD_DESTINATION,
+;;   G_DBUS_MESSAGE_HEADER_FIELD_SENDER,
+;;   G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE,
+;;   G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS
+;; } GDBusMessageHeaderField;
+
+(define-enum-extended DBusMessageHeaderField
+  (in-module "G")
+  (c-name "GDBusMessageHeaderField")
+  (values
+    '("invalid" "G_DBUS_MESSAGE_HEADER_FIELD_INVALID" "0")
+    '("path" "G_DBUS_MESSAGE_HEADER_FIELD_PATH" "1")
+    '("interface" "G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE" "2")
+    '("member" "G_DBUS_MESSAGE_HEADER_FIELD_MEMBER" "3")
+    '("error-name" "G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME" "4")
+    '("reply-serial" "G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL" "5")
+    '("destination" "G_DBUS_MESSAGE_HEADER_FIELD_DESTINATION" "6")
+    '("sender" "G_DBUS_MESSAGE_HEADER_FIELD_SENDER" "7")
+    '("signature" "G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE" "8")
+    '("num-unix-fds" "G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS" "9")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   G_DBUS_PROPERTY_INFO_FLAGS_NONE = 0,
+;;   G_DBUS_PROPERTY_INFO_FLAGS_READABLE = (1<<0),
+;;   G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE = (1<<1)
+;; } GDBusPropertyInfoFlags;
+
+(define-flags-extended DBusPropertyInfoFlags
+  (in-module "G")
+  (c-name "GDBusPropertyInfoFlags")
+  (values
+    '("none" "G_DBUS_PROPERTY_INFO_FLAGS_NONE" "0x0")
+    '("readable" "G_DBUS_PROPERTY_INFO_FLAGS_READABLE" "(1<<0)")
+    '("writable" "G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE" "(1<<1)")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   G_DBUS_SUBTREE_FLAGS_NONE = 0,
+;;   G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES = (1<<0)
+;; } GDBusSubtreeFlags;
+
+(define-flags-extended DBusSubtreeFlags
+  (in-module "G")
+  (c-name "GDBusSubtreeFlags")
+  (values
+    '("none" "G_DBUS_SUBTREE_FLAGS_NONE" "0x0")
+    '("dispatch-to-unenumerated-nodes" "G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES" "(1<<0)")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   G_DBUS_SERVER_FLAGS_NONE = 0,
+;;   G_DBUS_SERVER_FLAGS_RUN_IN_THREAD = (1<<0),
+;;   G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS = (1<<1)
+;; } GDBusServerFlags;
+
+(define-flags-extended DBusServerFlags
+  (in-module "G")
+  (c-name "GDBusServerFlags")
+  (values
+    '("none" "G_DBUS_SERVER_FLAGS_NONE" "0x0")
+    '("run-in-thread" "G_DBUS_SERVER_FLAGS_RUN_IN_THREAD" "(1<<0)")
+    '("authentication-allow-anonymous" "G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS" "(1<<1)")
+  )
+)
+
+;; Original typedef:
+;; typedef enum /*< flags >*/
+;; {
+;;   G_DBUS_SIGNAL_FLAGS_NONE = 0,
+;; } GDBusSignalFlags;
+
+(define-flags-extended DBusSignalFlags
+  (in-module "G")
+  (c-name "GDBusSignalFlags")
+  (values
+    '("us-signal-flags-none" "G_DBUS_SIGNAL_FLAGS_NONE" "0x0")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   G_DBUS_SEND_MESSAGE_FLAGS_NONE = 0,
+;;   G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL = (1<<0)
+;; } GDBusSendMessageFlags;
+
+(define-flags-extended DBusSendMessageFlags
+  (in-module "G")
+  (c-name "GDBusSendMessageFlags")
+  (values
+    '("none" "G_DBUS_SEND_MESSAGE_FLAGS_NONE" "0x0")
+    '("preserve-serial" "G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL" "(1<<0)")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   G_CREDENTIALS_TYPE_INVALID,
+;;   G_CREDENTIALS_TYPE_LINUX_UCRED
+;; } GCredentialsType;
+
+(define-enum-extended CredentialsType
+  (in-module "G")
+  (c-name "GCredentialsType")
+  (values
+    '("invalid" "G_CREDENTIALS_TYPE_INVALID" "0")
+    '("linux-ucred" "G_CREDENTIALS_TYPE_LINUX_UCRED" "1")
+  )
+)
+
 ;; From gsettings.h
 
 ;; Original typedef:
diff --git a/gio/src/gio_methods.defs b/gio/src/gio_methods.defs
index d407f00..e800c61 100644
--- a/gio/src/gio_methods.defs
+++ b/gio/src/gio_methods.defs
@@ -13,6 +13,13 @@
   (gtype-id "G_TYPE_APP_LAUNCH_CONTEXT")
 )
 
+(define-object n
+  (in-module "GApplicatio")
+  (parent "GObject")
+  (c-name "GApplication")
+  (gtype-id "G_TYPE_APPLICATION")
+)
+
 (define-object Initable
   (in-module "GAsync")
   (c-name "GAsyncInitable")
@@ -38,10 +45,11 @@
   (gtype-id "G_TYPE_CONVERTER")
 )
 
-(define-object AppInfoLookup
-  (in-module "GDesktop")
-  (c-name "GDesktopAppInfoLookup")
-  (gtype-id "G_TYPE_DESKTOP_APP_INFO_LOOKUP")
+(define-object Proxy
+  (in-module "GDBus")
+  (parent "GObject")
+  (c-name "GDBusProxy")
+  (gtype-id "G_TYPE_D_BUS_PROXY")
 )
 
 (define-object e
@@ -56,12 +64,6 @@
   (gtype-id "G_TYPE_FILE")
 )
 
-(define-object DescriptorBased
-  (in-module "GFile")
-  (c-name "GFileDescriptorBased")
-  (gtype-id "G_TYPE_FILE_DESCRIPTOR_BASED")
-)
-
 (define-object Enumerator
   (in-module "GFile")
   (parent "GObject")
@@ -240,6 +242,13 @@
   (gtype-id "G_TYPE_FILE_OUTPUT_STREAM")
 )
 
+(define-object n
+  (in-module "GPermissio")
+  (parent "GObject")
+  (c-name "GPermission")
+  (gtype-id "G_TYPE_PERMISSION")
+)
+
 (define-object r
   (in-module "GResolve")
   (parent "GObject")
@@ -350,55 +359,6 @@
   (gtype-id "G_TYPE_THREADED_SOCKET_SERVICE")
 )
 
-(define-object Connection
-  (in-module "GUnix")
-  (parent "GSocketConnection")
-  (c-name "GUnixConnection")
-  (gtype-id "G_TYPE_UNIX_CONNECTION")
-)
-
-(define-object FDList
-  (in-module "GUnix")
-  (parent "GObject")
-  (c-name "GUnixFDList")
-  (gtype-id "G_TYPE_UNIX_FD_LIST")
-)
-
-(define-object FDMessage
-  (in-module "GUnix")
-  (parent "GSocketControlMessage")
-  (c-name "GUnixFDMessage")
-  (gtype-id "G_TYPE_UNIX_FD_MESSAGE")
-)
-
-(define-object InputStream
-  (in-module "GUnix")
-  (parent "GInputStream")
-  (c-name "GUnixInputStream")
-  (gtype-id "G_TYPE_UNIX_INPUT_STREAM")
-)
-
-(define-object OutputStream
-  (in-module "GUnix")
-  (parent "GOutputStream")
-  (c-name "GUnixOutputStream")
-  (gtype-id "G_TYPE_UNIX_OUTPUT_STREAM")
-)
-
-(define-object SocketAddress
-  (in-module "GUnix")
-  (parent "GSocketAddress")
-  (c-name "GUnixSocketAddress")
-  (gtype-id "G_TYPE_UNIX_SOCKET_ADDRESS")
-)
-
-(define-object 8InputStream
-  (in-module "GUtf")
-  (parent "GFilterInputStream")
-  (c-name "GUtf8InputStream")
-  (gtype-id "G_TYPE_UTF8_INPUT_STREAM")
-)
-
 (define-object s
   (in-module "GVf")
   (parent "GObject")
@@ -436,6 +396,7 @@
     '("none" "G_APP_INFO_CREATE_NONE")
     '("needs-terminal" "G_APP_INFO_CREATE_NEEDS_TERMINAL")
     '("supports-uris" "G_APP_INFO_CREATE_SUPPORTS_URIS")
+    '("supports-startup-notification" "G_APP_INFO_CREATE_SUPPORTS_STARTUP_NOTIFICATION")
   )
 )
 
@@ -696,6 +657,7 @@
     '("address-in-use" "G_IO_ERROR_ADDRESS_IN_USE")
     '("partial-input" "G_IO_ERROR_PARTIAL_INPUT")
     '("invalid-data" "G_IO_ERROR_INVALID_DATA")
+    '("dbus-error" "G_IO_ERROR_DBUS_ERROR")
   )
 )
 
@@ -828,6 +790,250 @@
   )
 )
 
+(define-enum SocketAddressType
+  (in-module "GUnix")
+  (c-name "GUnixSocketAddressType")
+  (gtype-id "G_TYPE_UNIX_SOCKET_ADDRESS_TYPE")
+  (values
+    '("invalid" "G_UNIX_SOCKET_ADDRESS_INVALID")
+    '("anonymous" "G_UNIX_SOCKET_ADDRESS_ANONYMOUS")
+    '("path" "G_UNIX_SOCKET_ADDRESS_PATH")
+    '("abstract" "G_UNIX_SOCKET_ADDRESS_ABSTRACT")
+    '("abstract-padded" "G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED")
+  )
+)
+
+(define-enum Type
+  (in-module "GBus")
+  (c-name "GBusType")
+  (gtype-id "G_TYPE_BUS_TYPE")
+  (values
+    '("starter" "G_BUS_TYPE_STARTER")
+    '("none" "G_BUS_TYPE_NONE")
+    '("system" "G_BUS_TYPE_SYSTEM")
+    '("session" "G_BUS_TYPE_SESSION")
+  )
+)
+
+(define-flags NameOwnerFlags
+  (in-module "GBus")
+  (c-name "GBusNameOwnerFlags")
+  (gtype-id "G_TYPE_BUS_NAME_OWNER_FLAGS")
+  (values
+    '("none" "G_BUS_NAME_OWNER_FLAGS_NONE")
+    '("allow-replacement" "G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT")
+    '("replace" "G_BUS_NAME_OWNER_FLAGS_REPLACE")
+  )
+)
+
+(define-flags NameWatcherFlags
+  (in-module "GBus")
+  (c-name "GBusNameWatcherFlags")
+  (gtype-id "G_TYPE_BUS_NAME_WATCHER_FLAGS")
+  (values
+    '("none" "G_BUS_NAME_WATCHER_FLAGS_NONE")
+    '("auto-start" "G_BUS_NAME_WATCHER_FLAGS_AUTO_START")
+  )
+)
+
+(define-flags ProxyFlags
+  (in-module "GDBus")
+  (c-name "GDBusProxyFlags")
+  (gtype-id "G_TYPE_D_BUS_PROXY_FLAGS")
+  (values
+    '("none" "G_DBUS_PROXY_FLAGS_NONE")
+    '("do-not-load-properties" "G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES")
+    '("do-not-connect-signals" "G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS")
+    '("do-not-auto-start" "G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START")
+  )
+)
+
+(define-enum Error
+  (in-module "GDBus")
+  (c-name "GDBusError")
+  (gtype-id "G_TYPE_D_BUS_ERROR")
+  (values
+    '("failed" "G_DBUS_ERROR_FAILED")
+    '("no-memory" "G_DBUS_ERROR_NO_MEMORY")
+    '("service-unknown" "G_DBUS_ERROR_SERVICE_UNKNOWN")
+    '("name-has-no-owner" "G_DBUS_ERROR_NAME_HAS_NO_OWNER")
+    '("no-reply" "G_DBUS_ERROR_NO_REPLY")
+    '("io-error" "G_DBUS_ERROR_IO_ERROR")
+    '("bad-address" "G_DBUS_ERROR_BAD_ADDRESS")
+    '("not-supported" "G_DBUS_ERROR_NOT_SUPPORTED")
+    '("limits-exceeded" "G_DBUS_ERROR_LIMITS_EXCEEDED")
+    '("access-denied" "G_DBUS_ERROR_ACCESS_DENIED")
+    '("auth-failed" "G_DBUS_ERROR_AUTH_FAILED")
+    '("no-server" "G_DBUS_ERROR_NO_SERVER")
+    '("timeout" "G_DBUS_ERROR_TIMEOUT")
+    '("no-network" "G_DBUS_ERROR_NO_NETWORK")
+    '("address-in-use" "G_DBUS_ERROR_ADDRESS_IN_USE")
+    '("disconnected" "G_DBUS_ERROR_DISCONNECTED")
+    '("invalid-args" "G_DBUS_ERROR_INVALID_ARGS")
+    '("file-not-found" "G_DBUS_ERROR_FILE_NOT_FOUND")
+    '("file-exists" "G_DBUS_ERROR_FILE_EXISTS")
+    '("unknown-method" "G_DBUS_ERROR_UNKNOWN_METHOD")
+    '("timed-out" "G_DBUS_ERROR_TIMED_OUT")
+    '("match-rule-not-found" "G_DBUS_ERROR_MATCH_RULE_NOT_FOUND")
+    '("match-rule-invalid" "G_DBUS_ERROR_MATCH_RULE_INVALID")
+    '("spawn-exec-failed" "G_DBUS_ERROR_SPAWN_EXEC_FAILED")
+    '("spawn-fork-failed" "G_DBUS_ERROR_SPAWN_FORK_FAILED")
+    '("spawn-child-exited" "G_DBUS_ERROR_SPAWN_CHILD_EXITED")
+    '("spawn-child-signaled" "G_DBUS_ERROR_SPAWN_CHILD_SIGNALED")
+    '("spawn-failed" "G_DBUS_ERROR_SPAWN_FAILED")
+    '("spawn-setup-failed" "G_DBUS_ERROR_SPAWN_SETUP_FAILED")
+    '("spawn-config-invalid" "G_DBUS_ERROR_SPAWN_CONFIG_INVALID")
+    '("spawn-service-invalid" "G_DBUS_ERROR_SPAWN_SERVICE_INVALID")
+    '("spawn-service-not-found" "G_DBUS_ERROR_SPAWN_SERVICE_NOT_FOUND")
+    '("spawn-permissions-invalid" "G_DBUS_ERROR_SPAWN_PERMISSIONS_INVALID")
+    '("spawn-file-invalid" "G_DBUS_ERROR_SPAWN_FILE_INVALID")
+    '("spawn-no-memory" "G_DBUS_ERROR_SPAWN_NO_MEMORY")
+    '("unix-process-id-unknown" "G_DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN")
+    '("invalid-signature" "G_DBUS_ERROR_INVALID_SIGNATURE")
+    '("invalid-file-content" "G_DBUS_ERROR_INVALID_FILE_CONTENT")
+    '("selinux-security-context-unknown" "G_DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN")
+    '("adt-audit-data-unknown" "G_DBUS_ERROR_ADT_AUDIT_DATA_UNKNOWN")
+    '("object-path-in-use" "G_DBUS_ERROR_OBJECT_PATH_IN_USE")
+  )
+)
+
+(define-flags ConnectionFlags
+  (in-module "GDBus")
+  (c-name "GDBusConnectionFlags")
+  (gtype-id "G_TYPE_D_BUS_CONNECTION_FLAGS")
+  (values
+    '("none" "G_DBUS_CONNECTION_FLAGS_NONE")
+    '("authentication-client" "G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT")
+    '("authentication-server" "G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER")
+    '("authentication-allow-anonymous" "G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS")
+    '("message-bus-connection" "G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION")
+    '("delay-message-processing" "G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING")
+  )
+)
+
+(define-flags CapabilityFlags
+  (in-module "GDBus")
+  (c-name "GDBusCapabilityFlags")
+  (gtype-id "G_TYPE_D_BUS_CAPABILITY_FLAGS")
+  (values
+    '("none" "G_DBUS_CAPABILITY_FLAGS_NONE")
+    '("unix-fd-passing" "G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING")
+  )
+)
+
+(define-flags CallFlags
+  (in-module "GDBus")
+  (c-name "GDBusCallFlags")
+  (gtype-id "G_TYPE_D_BUS_CALL_FLAGS")
+  (values
+    '("none" "G_DBUS_CALL_FLAGS_NONE")
+    '("no-auto-start" "G_DBUS_CALL_FLAGS_NO_AUTO_START")
+  )
+)
+
+(define-enum MessageType
+  (in-module "GDBus")
+  (c-name "GDBusMessageType")
+  (gtype-id "G_TYPE_D_BUS_MESSAGE_TYPE")
+  (values
+    '("invalid" "G_DBUS_MESSAGE_TYPE_INVALID")
+    '("method-call" "G_DBUS_MESSAGE_TYPE_METHOD_CALL")
+    '("method-return" "G_DBUS_MESSAGE_TYPE_METHOD_RETURN")
+    '("error" "G_DBUS_MESSAGE_TYPE_ERROR")
+    '("signal" "G_DBUS_MESSAGE_TYPE_SIGNAL")
+  )
+)
+
+(define-flags MessageFlags
+  (in-module "GDBus")
+  (c-name "GDBusMessageFlags")
+  (gtype-id "G_TYPE_D_BUS_MESSAGE_FLAGS")
+  (values
+    '("none" "G_DBUS_MESSAGE_FLAGS_NONE")
+    '("no-reply-expected" "G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED")
+    '("no-auto-start" "G_DBUS_MESSAGE_FLAGS_NO_AUTO_START")
+  )
+)
+
+(define-enum MessageHeaderField
+  (in-module "GDBus")
+  (c-name "GDBusMessageHeaderField")
+  (gtype-id "G_TYPE_D_BUS_MESSAGE_HEADER_FIELD")
+  (values
+    '("invalid" "G_DBUS_MESSAGE_HEADER_FIELD_INVALID")
+    '("path" "G_DBUS_MESSAGE_HEADER_FIELD_PATH")
+    '("interface" "G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE")
+    '("member" "G_DBUS_MESSAGE_HEADER_FIELD_MEMBER")
+    '("error-name" "G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME")
+    '("reply-serial" "G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL")
+    '("destination" "G_DBUS_MESSAGE_HEADER_FIELD_DESTINATION")
+    '("sender" "G_DBUS_MESSAGE_HEADER_FIELD_SENDER")
+    '("signature" "G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE")
+    '("num-unix-fds" "G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS")
+  )
+)
+
+(define-flags PropertyInfoFlags
+  (in-module "GDBus")
+  (c-name "GDBusPropertyInfoFlags")
+  (gtype-id "G_TYPE_D_BUS_PROPERTY_INFO_FLAGS")
+  (values
+    '("none" "G_DBUS_PROPERTY_INFO_FLAGS_NONE")
+    '("readable" "G_DBUS_PROPERTY_INFO_FLAGS_READABLE")
+    '("writable" "G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE")
+  )
+)
+
+(define-flags SubtreeFlags
+  (in-module "GDBus")
+  (c-name "GDBusSubtreeFlags")
+  (gtype-id "G_TYPE_D_BUS_SUBTREE_FLAGS")
+  (values
+    '("none" "G_DBUS_SUBTREE_FLAGS_NONE")
+    '("dispatch-to-unenumerated-nodes" "G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES")
+  )
+)
+
+(define-flags ServerFlags
+  (in-module "GDBus")
+  (c-name "GDBusServerFlags")
+  (gtype-id "G_TYPE_D_BUS_SERVER_FLAGS")
+  (values
+    '("none" "G_DBUS_SERVER_FLAGS_NONE")
+    '("run-in-thread" "G_DBUS_SERVER_FLAGS_RUN_IN_THREAD")
+    '("authentication-allow-anonymous" "G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS")
+  )
+)
+
+(define-enum SignalFlags
+  (in-module "GDBus")
+  (c-name "GDBusSignalFlags")
+  (gtype-id "G_TYPE_D_BUS_SIGNAL_FLAGS")
+  (values
+    '("none" "G_DBUS_SIGNAL_FLAGS_NONE")
+  )
+)
+
+(define-flags SendMessageFlags
+  (in-module "GDBus")
+  (c-name "GDBusSendMessageFlags")
+  (gtype-id "G_TYPE_D_BUS_SEND_MESSAGE_FLAGS")
+  (values
+    '("none" "G_DBUS_SEND_MESSAGE_FLAGS_NONE")
+    '("preserve-serial" "G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL")
+  )
+)
+
+(define-enum Type
+  (in-module "GCredentials")
+  (c-name "GCredentialsType")
+  (gtype-id "G_TYPE_CREDENTIALS_TYPE")
+  (values
+    '("invalid" "G_CREDENTIALS_TYPE_INVALID")
+    '("linux-ucred" "G_CREDENTIALS_TYPE_LINUX_UCRED")
+  )
+)
+
 (define-flags BindFlags
   (in-module "GSettings")
   (c-name "GSettingsBindFlags")
@@ -1105,6 +1311,151 @@
 
 
 
+;; From gapplication.h
+
+(define-function g_application_get_type
+  (c-name "g_application_get_type")
+  (return-type "GType")
+)
+
+(define-function g_application_new
+  (c-name "g_application_new")
+  (is-constructor-of "GApplication")
+  (return-type "GApplication*")
+  (parameters
+    '("const-gchar*" "appid")
+    '("int" "argc")
+    '("char**" "argv")
+  )
+)
+
+(define-function g_application_try_new
+  (c-name "g_application_try_new")
+  (is-constructor-of "GApplicationTry")
+  (return-type "GApplication*")
+  (parameters
+    '("const-gchar*" "appid")
+    '("int" "argc")
+    '("char**" "argv")
+    '("GError**" "error")
+  )
+)
+
+(define-function g_application_unregistered_try_new
+  (c-name "g_application_unregistered_try_new")
+  (is-constructor-of "GApplicationUnregisteredTry")
+  (return-type "GApplication*")
+  (parameters
+    '("const-gchar*" "appid")
+    '("int" "argc")
+    '("char**" "argv")
+    '("GError**" "error")
+  )
+)
+
+(define-method register
+  (of-object "GApplication")
+  (c-name "g_application_register")
+  (return-type "gboolean")
+)
+
+(define-function g_application_get_instance
+  (c-name "g_application_get_instance")
+  (return-type "GApplication*")
+)
+
+(define-method get_id
+  (of-object "GApplication")
+  (c-name "g_application_get_id")
+  (return-type "const-gchar*")
+)
+
+(define-method add_action
+  (of-object "GApplication")
+  (c-name "g_application_add_action")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-gchar*" "description")
+  )
+)
+
+(define-method remove_action
+  (of-object "GApplication")
+  (c-name "g_application_remove_action")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method list_actions
+  (of-object "GApplication")
+  (c-name "g_application_list_actions")
+  (return-type "gchar**")
+)
+
+(define-method set_action_enabled
+  (of-object "GApplication")
+  (c-name "g_application_set_action_enabled")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+    '("gboolean" "enabled")
+  )
+)
+
+(define-method get_action_enabled
+  (of-object "GApplication")
+  (c-name "g_application_get_action_enabled")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_action_description
+  (of-object "GApplication")
+  (c-name "g_application_get_action_description")
+  (return-type "const-gchar*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method invoke_action
+  (of-object "GApplication")
+  (c-name "g_application_invoke_action")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+    '("GVariant*" "platform_data")
+  )
+)
+
+(define-method run
+  (of-object "GApplication")
+  (c-name "g_application_run")
+  (return-type "none")
+)
+
+(define-method quit_with_data
+  (of-object "GApplication")
+  (c-name "g_application_quit_with_data")
+  (return-type "gboolean")
+  (parameters
+    '("GVariant*" "platform_data")
+  )
+)
+
+(define-method is_remote
+  (of-object "GApplication")
+  (c-name "g_application_is_remote")
+  (return-type "gboolean")
+)
+
+
+
 ;; From gasyncinitable.h
 
 (define-function g_async_initable_get_type
@@ -1524,8 +1875,8 @@
   (c-name "g_content_type_equals")
   (return-type "gboolean")
   (parameters
-    '("const-char*" "type1")
-    '("const-char*" "type2")
+    '("const-gchar*" "type1")
+    '("const-gchar*" "type2")
   )
 )
 
@@ -1533,8 +1884,8 @@
   (c-name "g_content_type_is_a")
   (return-type "gboolean")
   (parameters
-    '("const-char*" "type")
-    '("const-char*" "supertype")
+    '("const-gchar*" "type")
+    '("const-gchar*" "supertype")
   )
 )
 
@@ -1542,23 +1893,23 @@
   (c-name "g_content_type_is_unknown")
   (return-type "gboolean")
   (parameters
-    '("const-char*" "type")
+    '("const-gchar*" "type")
   )
 )
 
 (define-function g_content_type_get_description
   (c-name "g_content_type_get_description")
-  (return-type "char*")
+  (return-type "gchar*")
   (parameters
-    '("const-char*" "type")
+    '("const-gchar*" "type")
   )
 )
 
 (define-function g_content_type_get_mime_type
   (c-name "g_content_type_get_mime_type")
-  (return-type "char*")
+  (return-type "gchar*")
   (parameters
-    '("const-char*" "type")
+    '("const-gchar*" "type")
   )
 )
 
@@ -1566,7 +1917,7 @@
   (c-name "g_content_type_get_icon")
   (return-type "GIcon*")
   (parameters
-    '("const-char*" "type")
+    '("const-gchar*" "type")
   )
 )
 
@@ -1574,23 +1925,23 @@
   (c-name "g_content_type_can_be_executable")
   (return-type "gboolean")
   (parameters
-    '("const-char*" "type")
+    '("const-gchar*" "type")
   )
 )
 
 (define-function g_content_type_from_mime_type
   (c-name "g_content_type_from_mime_type")
-  (return-type "char*")
+  (return-type "gchar*")
   (parameters
-    '("const-char*" "mime_type")
+    '("const-gchar*" "mime_type")
   )
 )
 
 (define-function g_content_type_guess
   (c-name "g_content_type_guess")
-  (return-type "char*")
+  (return-type "gchar*")
   (parameters
-    '("const-char*" "filename")
+    '("const-gchar*" "filename")
     '("const-guchar*" "data")
     '("gsize" "data_size")
     '("gboolean*" "result_uncertain")
@@ -1599,7 +1950,7 @@
 
 (define-function g_content_type_guess_for_tree
   (c-name "g_content_type_guess_for_tree")
-  (return-type "char**")
+  (return-type "gchar**")
   (parameters
     '("GFile*" "root")
   )
@@ -1693,6 +2044,75 @@
 
 
 
+;; From gcredentials.h
+
+(define-function g_credentials_get_type
+  (c-name "g_credentials_get_type")
+  (return-type "GType")
+)
+
+(define-function g_credentials_new
+  (c-name "g_credentials_new")
+  (is-constructor-of "GCredentials")
+  (return-type "GCredentials*")
+)
+
+(define-method to_string
+  (of-object "GCredentials")
+  (c-name "g_credentials_to_string")
+  (return-type "gchar*")
+)
+
+(define-method get_native
+  (of-object "GCredentials")
+  (c-name "g_credentials_get_native")
+  (return-type "gpointer")
+  (parameters
+    '("GCredentialsType" "native_type")
+  )
+)
+
+(define-method set_native
+  (of-object "GCredentials")
+  (c-name "g_credentials_set_native")
+  (return-type "none")
+  (parameters
+    '("GCredentialsType" "native_type")
+    '("gpointer" "native")
+  )
+)
+
+(define-method is_same_user
+  (of-object "GCredentials")
+  (c-name "g_credentials_is_same_user")
+  (return-type "gboolean")
+  (parameters
+    '("GCredentials*" "other_credentials")
+    '("GError**" "error")
+  )
+)
+
+(define-method get_unix_user
+  (of-object "GCredentials")
+  (c-name "g_credentials_get_unix_user")
+  (return-type "uid_t")
+  (parameters
+    '("GError**" "error")
+  )
+)
+
+(define-method set_unix_user
+  (of-object "GCredentials")
+  (c-name "g_credentials_set_unix_user")
+  (return-type "gboolean")
+  (parameters
+    '("uid_t" "uid")
+    '("GError**" "error")
+  )
+)
+
+
+
 ;; From gdatainputstream.h
 
 (define-function g_data_input_stream_get_type
@@ -2002,6 +2422,1840 @@
 
 
 
+;; From gdbusaddress.h
+
+(define-function g_dbus_is_address
+  (c-name "g_dbus_is_address")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "string")
+  )
+)
+
+(define-function g_dbus_is_supported_address
+  (c-name "g_dbus_is_supported_address")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "string")
+    '("GError**" "error")
+  )
+)
+
+(define-function g_dbus_address_get_stream
+  (c-name "g_dbus_address_get_stream")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "address")
+    '("GCancellable*" "cancellable")
+    '("GAsyncReadyCallback" "callback")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-function g_dbus_address_get_stream_finish
+  (c-name "g_dbus_address_get_stream_finish")
+  (return-type "GIOStream*")
+  (parameters
+    '("GAsyncResult*" "res")
+    '("gchar**" "out_guid")
+    '("GError**" "error")
+  )
+)
+
+(define-function g_dbus_address_get_stream_sync
+  (c-name "g_dbus_address_get_stream_sync")
+  (return-type "GIOStream*")
+  (parameters
+    '("const-gchar*" "address")
+    '("gchar**" "out_guid")
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+(define-function g_dbus_address_get_for_bus_sync
+  (c-name "g_dbus_address_get_for_bus_sync")
+  (return-type "gchar*")
+  (parameters
+    '("GBusType" "bus_type")
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+
+
+;; From gdbusauthobserver.h
+
+(define-function g_dbus_auth_observer_get_type
+  (c-name "g_dbus_auth_observer_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_auth_observer_new
+  (c-name "g_dbus_auth_observer_new")
+  (is-constructor-of "GDbusAuthObserver")
+  (return-type "GDBusAuthObserver*")
+)
+
+(define-method authorize_authenticated_peer
+  (of-object "GDBusAuthObserver")
+  (c-name "g_dbus_auth_observer_authorize_authenticated_peer")
+  (return-type "gboolean")
+  (parameters
+    '("GIOStream*" "stream")
+    '("GCredentials*" "credentials")
+  )
+)
+
+
+
+;; From gdbusconnection.h
+
+(define-function g_dbus_connection_get_type
+  (c-name "g_dbus_connection_get_type")
+  (return-type "GType")
+)
+
+(define-function g_bus_get
+  (c-name "g_bus_get")
+  (return-type "none")
+  (parameters
+    '("GBusType" "bus_type")
+    '("GCancellable*" "cancellable")
+    '("GAsyncReadyCallback" "callback")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-function g_bus_get_finish
+  (c-name "g_bus_get_finish")
+  (return-type "GDBusConnection*")
+  (parameters
+    '("GAsyncResult*" "res")
+    '("GError**" "error")
+  )
+)
+
+(define-function g_bus_get_sync
+  (c-name "g_bus_get_sync")
+  (return-type "GDBusConnection*")
+  (parameters
+    '("GBusType" "bus_type")
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+(define-function g_dbus_connection_new
+  (c-name "g_dbus_connection_new")
+  (return-type "none")
+  (parameters
+    '("GIOStream*" "stream")
+    '("const-gchar*" "guid")
+    '("GDBusConnectionFlags" "flags")
+    '("GDBusAuthObserver*" "observer")
+    '("GCancellable*" "cancellable")
+    '("GAsyncReadyCallback" "callback")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-function g_dbus_connection_new_finish
+  (c-name "g_dbus_connection_new_finish")
+  (return-type "GDBusConnection*")
+  (parameters
+    '("GAsyncResult*" "res")
+    '("GError**" "error")
+  )
+)
+
+(define-function g_dbus_connection_new_sync
+  (c-name "g_dbus_connection_new_sync")
+  (return-type "GDBusConnection*")
+  (parameters
+    '("GIOStream*" "stream")
+    '("const-gchar*" "guid")
+    '("GDBusConnectionFlags" "flags")
+    '("GDBusAuthObserver*" "observer")
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+(define-function g_dbus_connection_new_for_address
+  (c-name "g_dbus_connection_new_for_address")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "address")
+    '("GDBusConnectionFlags" "flags")
+    '("GDBusAuthObserver*" "observer")
+    '("GCancellable*" "cancellable")
+    '("GAsyncReadyCallback" "callback")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-function g_dbus_connection_new_for_address_finish
+  (c-name "g_dbus_connection_new_for_address_finish")
+  (return-type "GDBusConnection*")
+  (parameters
+    '("GAsyncResult*" "res")
+    '("GError**" "error")
+  )
+)
+
+(define-function g_dbus_connection_new_for_address_sync
+  (c-name "g_dbus_connection_new_for_address_sync")
+  (return-type "GDBusConnection*")
+  (parameters
+    '("const-gchar*" "address")
+    '("GDBusConnectionFlags" "flags")
+    '("GDBusAuthObserver*" "observer")
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+(define-method start_message_processing
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_start_message_processing")
+  (return-type "none")
+)
+
+(define-method is_closed
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_is_closed")
+  (return-type "gboolean")
+)
+
+(define-method get_stream
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_get_stream")
+  (return-type "GIOStream*")
+)
+
+(define-method get_guid
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_get_guid")
+  (return-type "const-gchar*")
+)
+
+(define-method get_unique_name
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_get_unique_name")
+  (return-type "const-gchar*")
+)
+
+(define-method get_peer_credentials
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_get_peer_credentials")
+  (return-type "GCredentials*")
+)
+
+(define-method get_exit_on_close
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_get_exit_on_close")
+  (return-type "gboolean")
+)
+
+(define-method set_exit_on_close
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_set_exit_on_close")
+  (return-type "none")
+  (parameters
+    '("gboolean" "exit_on_close")
+  )
+)
+
+(define-method get_capabilities
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_get_capabilities")
+  (return-type "GDBusCapabilityFlags")
+)
+
+(define-method close
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_close")
+  (return-type "none")
+  (parameters
+    '("GCancellable*" "cancellable")
+    '("GAsyncReadyCallback" "callback")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method close_finish
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_close_finish")
+  (return-type "gboolean")
+  (parameters
+    '("GAsyncResult*" "res")
+    '("GError**" "error")
+  )
+)
+
+(define-method close_sync
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_close_sync")
+  (return-type "gboolean")
+  (parameters
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+(define-method flush
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_flush")
+  (return-type "none")
+  (parameters
+    '("GCancellable*" "cancellable")
+    '("GAsyncReadyCallback" "callback")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method flush_finish
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_flush_finish")
+  (return-type "gboolean")
+  (parameters
+    '("GAsyncResult*" "res")
+    '("GError**" "error")
+  )
+)
+
+(define-method flush_sync
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_flush_sync")
+  (return-type "gboolean")
+  (parameters
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+(define-method send_message
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_send_message")
+  (return-type "gboolean")
+  (parameters
+    '("GDBusMessage*" "message")
+    '("GDBusSendMessageFlags" "flags")
+    '("volatile-guint32*" "out_serial")
+    '("GError**" "error")
+  )
+)
+
+(define-method send_message_with_reply
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_send_message_with_reply")
+  (return-type "none")
+  (parameters
+    '("GDBusMessage*" "message")
+    '("GDBusSendMessageFlags" "flags")
+    '("gint" "timeout_msec")
+    '("volatile-guint32*" "out_serial")
+    '("GCancellable*" "cancellable")
+    '("GAsyncReadyCallback" "callback")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method send_message_with_reply_finish
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_send_message_with_reply_finish")
+  (return-type "GDBusMessage*")
+  (parameters
+    '("GAsyncResult*" "res")
+    '("GError**" "error")
+  )
+)
+
+(define-method send_message_with_reply_sync
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_send_message_with_reply_sync")
+  (return-type "GDBusMessage*")
+  (parameters
+    '("GDBusMessage*" "message")
+    '("GDBusSendMessageFlags" "flags")
+    '("gint" "timeout_msec")
+    '("volatile-guint32*" "out_serial")
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+(define-method emit_signal
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_emit_signal")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "destination_bus_name")
+    '("const-gchar*" "object_path")
+    '("const-gchar*" "interface_name")
+    '("const-gchar*" "signal_name")
+    '("GVariant*" "parameters")
+    '("GError**" "error")
+  )
+)
+
+(define-method call
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_call")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "bus_name")
+    '("const-gchar*" "object_path")
+    '("const-gchar*" "interface_name")
+    '("const-gchar*" "method_name")
+    '("GVariant*" "parameters")
+    '("const-GVariantType*" "reply_type")
+    '("GDBusCallFlags" "flags")
+    '("gint" "timeout_msec")
+    '("GCancellable*" "cancellable")
+    '("GAsyncReadyCallback" "callback")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method call_finish
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_call_finish")
+  (return-type "GVariant*")
+  (parameters
+    '("GAsyncResult*" "res")
+    '("GError**" "error")
+  )
+)
+
+(define-method call_sync
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_call_sync")
+  (return-type "GVariant*")
+  (parameters
+    '("const-gchar*" "bus_name")
+    '("const-gchar*" "object_path")
+    '("const-gchar*" "interface_name")
+    '("const-gchar*" "method_name")
+    '("GVariant*" "parameters")
+    '("const-GVariantType*" "reply_type")
+    '("GDBusCallFlags" "flags")
+    '("gint" "timeout_msec")
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+(define-method register_object
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_register_object")
+  (return-type "guint")
+  (parameters
+    '("const-gchar*" "object_path")
+    '("GDBusInterfaceInfo*" "interface_info")
+    '("const-GDBusInterfaceVTable*" "vtable")
+    '("gpointer" "user_data")
+    '("GDestroyNotify" "user_data_free_func")
+    '("GError**" "error")
+  )
+)
+
+(define-method unregister_object
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_unregister_object")
+  (return-type "gboolean")
+  (parameters
+    '("guint" "registration_id")
+  )
+)
+
+(define-method register_subtree
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_register_subtree")
+  (return-type "guint")
+  (parameters
+    '("const-gchar*" "object_path")
+    '("const-GDBusSubtreeVTable*" "vtable")
+    '("GDBusSubtreeFlags" "flags")
+    '("gpointer" "user_data")
+    '("GDestroyNotify" "user_data_free_func")
+    '("GError**" "error")
+  )
+)
+
+(define-method unregister_subtree
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_unregister_subtree")
+  (return-type "gboolean")
+  (parameters
+    '("guint" "registration_id")
+  )
+)
+
+(define-method signal_subscribe
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_signal_subscribe")
+  (return-type "guint")
+  (parameters
+    '("const-gchar*" "sender")
+    '("const-gchar*" "interface_name")
+    '("const-gchar*" "member")
+    '("const-gchar*" "object_path")
+    '("const-gchar*" "arg0")
+    '("GDBusSignalFlags" "flags")
+    '("GDBusSignalCallback" "callback")
+    '("gpointer" "user_data")
+    '("GDestroyNotify" "user_data_free_func")
+  )
+)
+
+(define-method signal_unsubscribe
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_signal_unsubscribe")
+  (return-type "none")
+  (parameters
+    '("guint" "subscription_id")
+  )
+)
+
+(define-method add_filter
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_add_filter")
+  (return-type "guint")
+  (parameters
+    '("GDBusMessageFilterFunction" "filter_function")
+    '("gpointer" "user_data")
+    '("GDestroyNotify" "user_data_free_func")
+  )
+)
+
+(define-method remove_filter
+  (of-object "GDBusConnection")
+  (c-name "g_dbus_connection_remove_filter")
+  (return-type "none")
+  (parameters
+    '("guint" "filter_id")
+  )
+)
+
+
+
+;; From gdbuserror.h
+
+(define-function g_dbus_error_quark
+  (c-name "g_dbus_error_quark")
+  (return-type "GQuark")
+)
+
+(define-function g_dbus_error_is_remote_error
+  (c-name "g_dbus_error_is_remote_error")
+  (return-type "gboolean")
+  (parameters
+    '("const-GError*" "error")
+  )
+)
+
+(define-function g_dbus_error_get_remote_error
+  (c-name "g_dbus_error_get_remote_error")
+  (return-type "gchar*")
+  (parameters
+    '("const-GError*" "error")
+  )
+)
+
+(define-function g_dbus_error_strip_remote_error
+  (c-name "g_dbus_error_strip_remote_error")
+  (return-type "gboolean")
+  (parameters
+    '("GError*" "error")
+  )
+)
+
+(define-function g_dbus_error_register_error
+  (c-name "g_dbus_error_register_error")
+  (return-type "gboolean")
+  (parameters
+    '("GQuark" "error_domain")
+    '("gint" "error_code")
+    '("const-gchar*" "dbus_error_name")
+  )
+)
+
+(define-function g_dbus_error_unregister_error
+  (c-name "g_dbus_error_unregister_error")
+  (return-type "gboolean")
+  (parameters
+    '("GQuark" "error_domain")
+    '("gint" "error_code")
+    '("const-gchar*" "dbus_error_name")
+  )
+)
+
+(define-function g_dbus_error_register_error_domain
+  (c-name "g_dbus_error_register_error_domain")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "error_domain_quark_name")
+    '("volatile-gsize*" "quark_volatile")
+    '("const-GDBusErrorEntry*" "entries")
+    '("guint" "num_entries")
+  )
+)
+
+(define-function g_dbus_error_new_for_dbus_error
+  (c-name "g_dbus_error_new_for_dbus_error")
+  (return-type "GError*")
+  (parameters
+    '("const-gchar*" "dbus_error_name")
+    '("const-gchar*" "dbus_error_message")
+  )
+)
+
+(define-function g_dbus_error_set_dbus_error
+  (c-name "g_dbus_error_set_dbus_error")
+  (return-type "none")
+  (parameters
+    '("GError**" "error")
+    '("const-gchar*" "dbus_error_name")
+    '("const-gchar*" "dbus_error_message")
+    '("const-gchar*" "format")
+  )
+  (varargs #t)
+)
+
+(define-function g_dbus_error_set_dbus_error_valist
+  (c-name "g_dbus_error_set_dbus_error_valist")
+  (return-type "none")
+  (parameters
+    '("GError**" "error")
+    '("const-gchar*" "dbus_error_name")
+    '("const-gchar*" "dbus_error_message")
+    '("const-gchar*" "format")
+    '("va_list" "var_args")
+  )
+)
+
+(define-function g_dbus_error_encode_gerror
+  (c-name "g_dbus_error_encode_gerror")
+  (return-type "gchar*")
+  (parameters
+    '("const-GError*" "error")
+  )
+)
+
+
+
+;; From gdbusintrospection.h
+
+(define-function g_dbus_annotation_info_lookup
+  (c-name "g_dbus_annotation_info_lookup")
+  (return-type "const-gchar*")
+  (parameters
+    '("GDBusAnnotationInfo**" "annotations")
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method lookup_method
+  (of-object "GDBusInterfaceInfo")
+  (c-name "g_dbus_interface_info_lookup_method")
+  (return-type "GDBusMethodInfo*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method lookup_signal
+  (of-object "GDBusInterfaceInfo")
+  (c-name "g_dbus_interface_info_lookup_signal")
+  (return-type "GDBusSignalInfo*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method lookup_property
+  (of-object "GDBusInterfaceInfo")
+  (c-name "g_dbus_interface_info_lookup_property")
+  (return-type "GDBusPropertyInfo*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method generate_xml
+  (of-object "GDBusInterfaceInfo")
+  (c-name "g_dbus_interface_info_generate_xml")
+  (return-type "none")
+  (parameters
+    '("guint" "indent")
+    '("GString*" "string_builder")
+  )
+)
+
+(define-function g_dbus_node_info_new_for_xml
+  (c-name "g_dbus_node_info_new_for_xml")
+  (return-type "GDBusNodeInfo*")
+  (parameters
+    '("const-gchar*" "xml_data")
+    '("GError**" "error")
+  )
+)
+
+(define-method lookup_interface
+  (of-object "GDBusNodeInfo")
+  (c-name "g_dbus_node_info_lookup_interface")
+  (return-type "GDBusInterfaceInfo*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method generate_xml
+  (of-object "GDBusNodeInfo")
+  (c-name "g_dbus_node_info_generate_xml")
+  (return-type "none")
+  (parameters
+    '("guint" "indent")
+    '("GString*" "string_builder")
+  )
+)
+
+(define-method ref
+  (of-object "GDBusNodeInfo")
+  (c-name "g_dbus_node_info_ref")
+  (return-type "GDBusNodeInfo*")
+)
+
+(define-method ref
+  (of-object "GDBusInterfaceInfo")
+  (c-name "g_dbus_interface_info_ref")
+  (return-type "GDBusInterfaceInfo*")
+)
+
+(define-method ref
+  (of-object "GDBusMethodInfo")
+  (c-name "g_dbus_method_info_ref")
+  (return-type "GDBusMethodInfo*")
+)
+
+(define-method ref
+  (of-object "GDBusSignalInfo")
+  (c-name "g_dbus_signal_info_ref")
+  (return-type "GDBusSignalInfo*")
+)
+
+(define-method ref
+  (of-object "GDBusPropertyInfo")
+  (c-name "g_dbus_property_info_ref")
+  (return-type "GDBusPropertyInfo*")
+)
+
+(define-method ref
+  (of-object "GDBusArgInfo")
+  (c-name "g_dbus_arg_info_ref")
+  (return-type "GDBusArgInfo*")
+)
+
+(define-method ref
+  (of-object "GDBusAnnotationInfo")
+  (c-name "g_dbus_annotation_info_ref")
+  (return-type "GDBusAnnotationInfo*")
+)
+
+(define-method unref
+  (of-object "GDBusNodeInfo")
+  (c-name "g_dbus_node_info_unref")
+  (return-type "none")
+)
+
+(define-method unref
+  (of-object "GDBusInterfaceInfo")
+  (c-name "g_dbus_interface_info_unref")
+  (return-type "none")
+)
+
+(define-method unref
+  (of-object "GDBusMethodInfo")
+  (c-name "g_dbus_method_info_unref")
+  (return-type "none")
+)
+
+(define-method unref
+  (of-object "GDBusSignalInfo")
+  (c-name "g_dbus_signal_info_unref")
+  (return-type "none")
+)
+
+(define-method unref
+  (of-object "GDBusPropertyInfo")
+  (c-name "g_dbus_property_info_unref")
+  (return-type "none")
+)
+
+(define-method unref
+  (of-object "GDBusArgInfo")
+  (c-name "g_dbus_arg_info_unref")
+  (return-type "none")
+)
+
+(define-method unref
+  (of-object "GDBusAnnotationInfo")
+  (c-name "g_dbus_annotation_info_unref")
+  (return-type "none")
+)
+
+(define-function g_dbus_node_info_get_type
+  (c-name "g_dbus_node_info_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_interface_info_get_type
+  (c-name "g_dbus_interface_info_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_method_info_get_type
+  (c-name "g_dbus_method_info_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_signal_info_get_type
+  (c-name "g_dbus_signal_info_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_property_info_get_type
+  (c-name "g_dbus_property_info_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_arg_info_get_type
+  (c-name "g_dbus_arg_info_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_annotation_info_get_type
+  (c-name "g_dbus_annotation_info_get_type")
+  (return-type "GType")
+)
+
+
+
+;; From gdbusmessage.h
+
+(define-function g_dbus_message_get_type
+  (c-name "g_dbus_message_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_message_new
+  (c-name "g_dbus_message_new")
+  (is-constructor-of "GDbusMessage")
+  (return-type "GDBusMessage*")
+)
+
+(define-function g_dbus_message_new_signal
+  (c-name "g_dbus_message_new_signal")
+  (return-type "GDBusMessage*")
+  (parameters
+    '("const-gchar*" "path")
+    '("const-gchar*" "interface_")
+    '("const-gchar*" "signal")
+  )
+)
+
+(define-function g_dbus_message_new_method_call
+  (c-name "g_dbus_message_new_method_call")
+  (return-type "GDBusMessage*")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-gchar*" "path")
+    '("const-gchar*" "interface_")
+    '("const-gchar*" "method")
+  )
+)
+
+(define-method new_method_reply
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_new_method_reply")
+  (return-type "GDBusMessage*")
+)
+
+(define-method new_method_error
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_new_method_error")
+  (return-type "GDBusMessage*")
+  (parameters
+    '("const-gchar*" "error_name")
+    '("const-gchar*" "error_message_format")
+  )
+  (varargs #t)
+)
+
+(define-method new_method_error_valist
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_new_method_error_valist")
+  (return-type "GDBusMessage*")
+  (parameters
+    '("const-gchar*" "error_name")
+    '("const-gchar*" "error_message_format")
+    '("va_list" "var_args")
+  )
+)
+
+(define-method new_method_error_literal
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_new_method_error_literal")
+  (return-type "GDBusMessage*")
+  (parameters
+    '("const-gchar*" "error_name")
+    '("const-gchar*" "error_message")
+  )
+)
+
+(define-method print
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_print")
+  (return-type "gchar*")
+  (parameters
+    '("guint" "indent")
+  )
+)
+
+(define-method get_message_type
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_get_message_type")
+  (return-type "GDBusMessageType")
+)
+
+(define-method set_message_type
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_set_message_type")
+  (return-type "none")
+  (parameters
+    '("GDBusMessageType" "type")
+  )
+)
+
+(define-method get_flags
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_get_flags")
+  (return-type "GDBusMessageFlags")
+)
+
+(define-method set_flags
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_set_flags")
+  (return-type "none")
+  (parameters
+    '("GDBusMessageFlags" "flags")
+  )
+)
+
+(define-method get_serial
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_get_serial")
+  (return-type "guint32")
+)
+
+(define-method set_serial
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_set_serial")
+  (return-type "none")
+  (parameters
+    '("guint32" "serial")
+  )
+)
+
+(define-method get_header
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_get_header")
+  (return-type "GVariant*")
+  (parameters
+    '("GDBusMessageHeaderField" "header_field")
+  )
+)
+
+(define-method set_header
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_set_header")
+  (return-type "none")
+  (parameters
+    '("GDBusMessageHeaderField" "header_field")
+    '("GVariant*" "value")
+  )
+)
+
+(define-method get_header_fields
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_get_header_fields")
+  (return-type "guchar*")
+)
+
+(define-method get_body
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_get_body")
+  (return-type "GVariant*")
+)
+
+(define-method set_body
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_set_body")
+  (return-type "none")
+  (parameters
+    '("GVariant*" "body")
+  )
+)
+
+(define-method get_unix_fd_list
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_get_unix_fd_list")
+  (return-type "GUnixFDList*")
+)
+
+(define-method set_unix_fd_list
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_set_unix_fd_list")
+  (return-type "none")
+  (parameters
+    '("GUnixFDList*" "fd_list")
+  )
+)
+
+(define-method get_reply_serial
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_get_reply_serial")
+  (return-type "guint32")
+)
+
+(define-method set_reply_serial
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_set_reply_serial")
+  (return-type "none")
+  (parameters
+    '("guint32" "value")
+  )
+)
+
+(define-method get_interface
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_get_interface")
+  (return-type "const-gchar*")
+)
+
+(define-method set_interface
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_set_interface")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "value")
+  )
+)
+
+(define-method get_member
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_get_member")
+  (return-type "const-gchar*")
+)
+
+(define-method set_member
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_set_member")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "value")
+  )
+)
+
+(define-method get_path
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_get_path")
+  (return-type "const-gchar*")
+)
+
+(define-method set_path
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_set_path")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "value")
+  )
+)
+
+(define-method get_sender
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_get_sender")
+  (return-type "const-gchar*")
+)
+
+(define-method set_sender
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_set_sender")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "value")
+  )
+)
+
+(define-method get_destination
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_get_destination")
+  (return-type "const-gchar*")
+)
+
+(define-method set_destination
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_set_destination")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "value")
+  )
+)
+
+(define-method get_error_name
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_get_error_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_error_name
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_set_error_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "value")
+  )
+)
+
+(define-method get_signature
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_get_signature")
+  (return-type "const-gchar*")
+)
+
+(define-method set_signature
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_set_signature")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "value")
+  )
+)
+
+(define-method get_num_unix_fds
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_get_num_unix_fds")
+  (return-type "guint32")
+)
+
+(define-method set_num_unix_fds
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_set_num_unix_fds")
+  (return-type "none")
+  (parameters
+    '("guint32" "value")
+  )
+)
+
+(define-method get_arg0
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_get_arg0")
+  (return-type "const-gchar*")
+)
+
+(define-function g_dbus_message_new_from_blob
+  (c-name "g_dbus_message_new_from_blob")
+  (return-type "GDBusMessage*")
+  (parameters
+    '("guchar*" "blob")
+    '("gsize" "blob_len")
+    '("GDBusCapabilityFlags" "capabilities")
+    '("GError**" "error")
+  )
+)
+
+(define-function g_dbus_message_bytes_needed
+  (c-name "g_dbus_message_bytes_needed")
+  (return-type "gssize")
+  (parameters
+    '("guchar*" "blob")
+    '("gsize" "blob_len")
+    '("GError**" "error")
+  )
+)
+
+(define-method to_blob
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_to_blob")
+  (return-type "guchar*")
+  (parameters
+    '("gsize*" "out_size")
+    '("GDBusCapabilityFlags" "capabilities")
+    '("GError**" "error")
+  )
+)
+
+(define-method to_gerror
+  (of-object "GDBusMessage")
+  (c-name "g_dbus_message_to_gerror")
+  (return-type "gboolean")
+  (parameters
+    '("GError**" "error")
+  )
+)
+
+
+
+;; From gdbusmethodinvocation.h
+
+(define-function g_dbus_method_invocation_get_type
+  (c-name "g_dbus_method_invocation_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_method_invocation_new
+  (c-name "g_dbus_method_invocation_new")
+  (is-constructor-of "GDbusMethodInvocation")
+  (return-type "GDBusMethodInvocation*")
+  (parameters
+    '("const-gchar*" "sender")
+    '("const-gchar*" "object_path")
+    '("const-gchar*" "interface_name")
+    '("const-gchar*" "method_name")
+    '("const-GDBusMethodInfo*" "method_info")
+    '("GDBusConnection*" "connection")
+    '("GDBusMessage*" "message")
+    '("GVariant*" "parameters")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method get_sender
+  (of-object "GDBusMethodInvocation")
+  (c-name "g_dbus_method_invocation_get_sender")
+  (return-type "const-gchar*")
+)
+
+(define-method get_object_path
+  (of-object "GDBusMethodInvocation")
+  (c-name "g_dbus_method_invocation_get_object_path")
+  (return-type "const-gchar*")
+)
+
+(define-method get_interface_name
+  (of-object "GDBusMethodInvocation")
+  (c-name "g_dbus_method_invocation_get_interface_name")
+  (return-type "const-gchar*")
+)
+
+(define-method get_method_name
+  (of-object "GDBusMethodInvocation")
+  (c-name "g_dbus_method_invocation_get_method_name")
+  (return-type "const-gchar*")
+)
+
+(define-method get_method_info
+  (of-object "GDBusMethodInvocation")
+  (c-name "g_dbus_method_invocation_get_method_info")
+  (return-type "const-GDBusMethodInfo*")
+)
+
+(define-method get_connection
+  (of-object "GDBusMethodInvocation")
+  (c-name "g_dbus_method_invocation_get_connection")
+  (return-type "GDBusConnection*")
+)
+
+(define-method get_message
+  (of-object "GDBusMethodInvocation")
+  (c-name "g_dbus_method_invocation_get_message")
+  (return-type "GDBusMessage*")
+)
+
+(define-method get_parameters
+  (of-object "GDBusMethodInvocation")
+  (c-name "g_dbus_method_invocation_get_parameters")
+  (return-type "GVariant*")
+)
+
+(define-method get_user_data
+  (of-object "GDBusMethodInvocation")
+  (c-name "g_dbus_method_invocation_get_user_data")
+  (return-type "gpointer")
+)
+
+(define-method return_value
+  (of-object "GDBusMethodInvocation")
+  (c-name "g_dbus_method_invocation_return_value")
+  (return-type "none")
+  (parameters
+    '("GVariant*" "parameters")
+  )
+)
+
+(define-method return_error
+  (of-object "GDBusMethodInvocation")
+  (c-name "g_dbus_method_invocation_return_error")
+  (return-type "none")
+  (parameters
+    '("GQuark" "domain")
+    '("gint" "code")
+    '("const-gchar*" "format")
+  )
+  (varargs #t)
+)
+
+(define-method return_error_valist
+  (of-object "GDBusMethodInvocation")
+  (c-name "g_dbus_method_invocation_return_error_valist")
+  (return-type "none")
+  (parameters
+    '("GQuark" "domain")
+    '("gint" "code")
+    '("const-gchar*" "format")
+    '("va_list" "var_args")
+  )
+)
+
+(define-method return_error_literal
+  (of-object "GDBusMethodInvocation")
+  (c-name "g_dbus_method_invocation_return_error_literal")
+  (return-type "none")
+  (parameters
+    '("GQuark" "domain")
+    '("gint" "code")
+    '("const-gchar*" "message")
+  )
+)
+
+(define-method return_gerror
+  (of-object "GDBusMethodInvocation")
+  (c-name "g_dbus_method_invocation_return_gerror")
+  (return-type "none")
+  (parameters
+    '("const-GError*" "error")
+  )
+)
+
+(define-method return_dbus_error
+  (of-object "GDBusMethodInvocation")
+  (c-name "g_dbus_method_invocation_return_dbus_error")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "error_name")
+    '("const-gchar*" "error_message")
+  )
+)
+
+
+
+;; From gdbusnameowning.h
+
+(define-function g_bus_own_name
+  (c-name "g_bus_own_name")
+  (return-type "guint")
+  (parameters
+    '("GBusType" "bus_type")
+    '("const-gchar*" "name")
+    '("GBusNameOwnerFlags" "flags")
+    '("GBusAcquiredCallback" "bus_acquired_handler")
+    '("GBusNameAcquiredCallback" "name_acquired_handler")
+    '("GBusNameLostCallback" "name_lost_handler")
+    '("gpointer" "user_data")
+    '("GDestroyNotify" "user_data_free_func")
+  )
+)
+
+(define-function g_bus_own_name_on_connection
+  (c-name "g_bus_own_name_on_connection")
+  (return-type "guint")
+  (parameters
+    '("GDBusConnection*" "connection")
+    '("const-gchar*" "name")
+    '("GBusNameOwnerFlags" "flags")
+    '("GBusNameAcquiredCallback" "name_acquired_handler")
+    '("GBusNameLostCallback" "name_lost_handler")
+    '("gpointer" "user_data")
+    '("GDestroyNotify" "user_data_free_func")
+  )
+)
+
+(define-function g_bus_own_name_with_closures
+  (c-name "g_bus_own_name_with_closures")
+  (return-type "guint")
+  (parameters
+    '("GBusType" "bus_type")
+    '("const-gchar*" "name")
+    '("GBusNameOwnerFlags" "flags")
+    '("GClosure*" "bus_acquired_closure")
+    '("GClosure*" "name_acquired_closure")
+    '("GClosure*" "name_lost_closure")
+  )
+)
+
+(define-function g_bus_own_name_on_connection_with_closures
+  (c-name "g_bus_own_name_on_connection_with_closures")
+  (return-type "guint")
+  (parameters
+    '("GDBusConnection*" "connection")
+    '("const-gchar*" "name")
+    '("GBusNameOwnerFlags" "flags")
+    '("GClosure*" "name_acquired_closure")
+    '("GClosure*" "name_lost_closure")
+  )
+)
+
+(define-function g_bus_unown_name
+  (c-name "g_bus_unown_name")
+  (return-type "none")
+  (parameters
+    '("guint" "owner_id")
+  )
+)
+
+
+
+;; From gdbusnamewatching.h
+
+(define-function g_bus_watch_name
+  (c-name "g_bus_watch_name")
+  (return-type "guint")
+  (parameters
+    '("GBusType" "bus_type")
+    '("const-gchar*" "name")
+    '("GBusNameWatcherFlags" "flags")
+    '("GBusNameAppearedCallback" "name_appeared_handler")
+    '("GBusNameVanishedCallback" "name_vanished_handler")
+    '("gpointer" "user_data")
+    '("GDestroyNotify" "user_data_free_func")
+  )
+)
+
+(define-function g_bus_watch_name_on_connection
+  (c-name "g_bus_watch_name_on_connection")
+  (return-type "guint")
+  (parameters
+    '("GDBusConnection*" "connection")
+    '("const-gchar*" "name")
+    '("GBusNameWatcherFlags" "flags")
+    '("GBusNameAppearedCallback" "name_appeared_handler")
+    '("GBusNameVanishedCallback" "name_vanished_handler")
+    '("gpointer" "user_data")
+    '("GDestroyNotify" "user_data_free_func")
+  )
+)
+
+(define-function g_bus_watch_name_with_closures
+  (c-name "g_bus_watch_name_with_closures")
+  (return-type "guint")
+  (parameters
+    '("GBusType" "bus_type")
+    '("const-gchar*" "name")
+    '("GBusNameWatcherFlags" "flags")
+    '("GClosure*" "name_appeared_closure")
+    '("GClosure*" "name_vanished_closure")
+  )
+)
+
+(define-function g_bus_watch_name_on_connection_with_closures
+  (c-name "g_bus_watch_name_on_connection_with_closures")
+  (return-type "guint")
+  (parameters
+    '("GDBusConnection*" "connection")
+    '("const-gchar*" "name")
+    '("GBusNameWatcherFlags" "flags")
+    '("GClosure*" "name_appeared_closure")
+    '("GClosure*" "name_vanished_closure")
+  )
+)
+
+(define-function g_bus_unwatch_name
+  (c-name "g_bus_unwatch_name")
+  (return-type "none")
+  (parameters
+    '("guint" "watcher_id")
+  )
+)
+
+
+
+;; From gdbusproxy.h
+
+(define-function g_dbus_proxy_get_type
+  (c-name "g_dbus_proxy_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_proxy_new
+  (c-name "g_dbus_proxy_new")
+  (return-type "none")
+  (parameters
+    '("GDBusConnection*" "connection")
+    '("GDBusProxyFlags" "flags")
+    '("GDBusInterfaceInfo*" "info")
+    '("const-gchar*" "name")
+    '("const-gchar*" "object_path")
+    '("const-gchar*" "interface_name")
+    '("GCancellable*" "cancellable")
+    '("GAsyncReadyCallback" "callback")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-function g_dbus_proxy_new_finish
+  (c-name "g_dbus_proxy_new_finish")
+  (return-type "GDBusProxy*")
+  (parameters
+    '("GAsyncResult*" "res")
+    '("GError**" "error")
+  )
+)
+
+(define-function g_dbus_proxy_new_sync
+  (c-name "g_dbus_proxy_new_sync")
+  (return-type "GDBusProxy*")
+  (parameters
+    '("GDBusConnection*" "connection")
+    '("GDBusProxyFlags" "flags")
+    '("GDBusInterfaceInfo*" "info")
+    '("const-gchar*" "name")
+    '("const-gchar*" "object_path")
+    '("const-gchar*" "interface_name")
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+(define-function g_dbus_proxy_new_for_bus
+  (c-name "g_dbus_proxy_new_for_bus")
+  (return-type "none")
+  (parameters
+    '("GBusType" "bus_type")
+    '("GDBusProxyFlags" "flags")
+    '("GDBusInterfaceInfo*" "info")
+    '("const-gchar*" "name")
+    '("const-gchar*" "object_path")
+    '("const-gchar*" "interface_name")
+    '("GCancellable*" "cancellable")
+    '("GAsyncReadyCallback" "callback")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-function g_dbus_proxy_new_for_bus_finish
+  (c-name "g_dbus_proxy_new_for_bus_finish")
+  (return-type "GDBusProxy*")
+  (parameters
+    '("GAsyncResult*" "res")
+    '("GError**" "error")
+  )
+)
+
+(define-function g_dbus_proxy_new_for_bus_sync
+  (c-name "g_dbus_proxy_new_for_bus_sync")
+  (return-type "GDBusProxy*")
+  (parameters
+    '("GBusType" "bus_type")
+    '("GDBusProxyFlags" "flags")
+    '("GDBusInterfaceInfo*" "info")
+    '("const-gchar*" "name")
+    '("const-gchar*" "object_path")
+    '("const-gchar*" "interface_name")
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+(define-method get_connection
+  (of-object "GDBusProxy")
+  (c-name "g_dbus_proxy_get_connection")
+  (return-type "GDBusConnection*")
+)
+
+(define-method get_flags
+  (of-object "GDBusProxy")
+  (c-name "g_dbus_proxy_get_flags")
+  (return-type "GDBusProxyFlags")
+)
+
+(define-method get_name
+  (of-object "GDBusProxy")
+  (c-name "g_dbus_proxy_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method get_name_owner
+  (of-object "GDBusProxy")
+  (c-name "g_dbus_proxy_get_name_owner")
+  (return-type "gchar*")
+)
+
+(define-method get_object_path
+  (of-object "GDBusProxy")
+  (c-name "g_dbus_proxy_get_object_path")
+  (return-type "const-gchar*")
+)
+
+(define-method get_interface_name
+  (of-object "GDBusProxy")
+  (c-name "g_dbus_proxy_get_interface_name")
+  (return-type "const-gchar*")
+)
+
+(define-method get_default_timeout
+  (of-object "GDBusProxy")
+  (c-name "g_dbus_proxy_get_default_timeout")
+  (return-type "gint")
+)
+
+(define-method set_default_timeout
+  (of-object "GDBusProxy")
+  (c-name "g_dbus_proxy_set_default_timeout")
+  (return-type "none")
+  (parameters
+    '("gint" "timeout_msec")
+  )
+)
+
+(define-method get_interface_info
+  (of-object "GDBusProxy")
+  (c-name "g_dbus_proxy_get_interface_info")
+  (return-type "GDBusInterfaceInfo*")
+)
+
+(define-method set_interface_info
+  (of-object "GDBusProxy")
+  (c-name "g_dbus_proxy_set_interface_info")
+  (return-type "none")
+  (parameters
+    '("GDBusInterfaceInfo*" "info")
+  )
+)
+
+(define-method get_cached_property
+  (of-object "GDBusProxy")
+  (c-name "g_dbus_proxy_get_cached_property")
+  (return-type "GVariant*")
+  (parameters
+    '("const-gchar*" "property_name")
+  )
+)
+
+(define-method set_cached_property
+  (of-object "GDBusProxy")
+  (c-name "g_dbus_proxy_set_cached_property")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "property_name")
+    '("GVariant*" "value")
+  )
+)
+
+(define-method get_cached_property_names
+  (of-object "GDBusProxy")
+  (c-name "g_dbus_proxy_get_cached_property_names")
+  (return-type "gchar**")
+)
+
+(define-method call
+  (of-object "GDBusProxy")
+  (c-name "g_dbus_proxy_call")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "method_name")
+    '("GVariant*" "parameters")
+    '("GDBusCallFlags" "flags")
+    '("gint" "timeout_msec")
+    '("GCancellable*" "cancellable")
+    '("GAsyncReadyCallback" "callback")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method call_finish
+  (of-object "GDBusProxy")
+  (c-name "g_dbus_proxy_call_finish")
+  (return-type "GVariant*")
+  (parameters
+    '("GAsyncResult*" "res")
+    '("GError**" "error")
+  )
+)
+
+(define-method call_sync
+  (of-object "GDBusProxy")
+  (c-name "g_dbus_proxy_call_sync")
+  (return-type "GVariant*")
+  (parameters
+    '("const-gchar*" "method_name")
+    '("GVariant*" "parameters")
+    '("GDBusCallFlags" "flags")
+    '("gint" "timeout_msec")
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+
+
+;; From gdbusproxywatching.h
+
+(define-function g_bus_watch_proxy
+  (c-name "g_bus_watch_proxy")
+  (return-type "guint")
+  (parameters
+    '("GBusType" "bus_type")
+    '("const-gchar*" "name")
+    '("GBusNameWatcherFlags" "flags")
+    '("const-gchar*" "object_path")
+    '("const-gchar*" "interface_name")
+    '("GType" "interface_type")
+    '("GDBusProxyFlags" "proxy_flags")
+    '("GBusProxyAppearedCallback" "proxy_appeared_handler")
+    '("GBusProxyVanishedCallback" "proxy_vanished_handler")
+    '("gpointer" "user_data")
+    '("GDestroyNotify" "user_data_free_func")
+  )
+)
+
+(define-function g_bus_watch_proxy_on_connection
+  (c-name "g_bus_watch_proxy_on_connection")
+  (return-type "guint")
+  (parameters
+    '("GDBusConnection*" "connection")
+    '("const-gchar*" "name")
+    '("GBusNameWatcherFlags" "flags")
+    '("const-gchar*" "object_path")
+    '("const-gchar*" "interface_name")
+    '("GType" "interface_type")
+    '("GDBusProxyFlags" "proxy_flags")
+    '("GBusProxyAppearedCallback" "proxy_appeared_handler")
+    '("GBusProxyVanishedCallback" "proxy_vanished_handler")
+    '("gpointer" "user_data")
+    '("GDestroyNotify" "user_data_free_func")
+  )
+)
+
+(define-function g_bus_unwatch_proxy
+  (c-name "g_bus_unwatch_proxy")
+  (return-type "none")
+  (parameters
+    '("guint" "watcher_id")
+  )
+)
+
+
+
+;; From gdbusserver.h
+
+(define-function g_dbus_server_get_type
+  (c-name "g_dbus_server_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_server_new_sync
+  (c-name "g_dbus_server_new_sync")
+  (return-type "GDBusServer*")
+  (parameters
+    '("const-gchar*" "address")
+    '("GDBusServerFlags" "flags")
+    '("const-gchar*" "guid")
+    '("GDBusAuthObserver*" "observer")
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+(define-method get_client_address
+  (of-object "GDBusServer")
+  (c-name "g_dbus_server_get_client_address")
+  (return-type "const-gchar*")
+)
+
+(define-method get_guid
+  (of-object "GDBusServer")
+  (c-name "g_dbus_server_get_guid")
+  (return-type "const-gchar*")
+)
+
+(define-method get_flags
+  (of-object "GDBusServer")
+  (c-name "g_dbus_server_get_flags")
+  (return-type "GDBusServerFlags")
+)
+
+(define-method start
+  (of-object "GDBusServer")
+  (c-name "g_dbus_server_start")
+  (return-type "none")
+)
+
+(define-method stop
+  (of-object "GDBusServer")
+  (c-name "g_dbus_server_stop")
+  (return-type "none")
+)
+
+(define-method is_active
+  (of-object "GDBusServer")
+  (c-name "g_dbus_server_is_active")
+  (return-type "gboolean")
+)
+
+
+
+;; From gdbusutils.h
+
+(define-function g_dbus_is_guid
+  (c-name "g_dbus_is_guid")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "string")
+  )
+)
+
+(define-function g_dbus_generate_guid
+  (c-name "g_dbus_generate_guid")
+  (return-type "gchar*")
+)
+
+(define-function g_dbus_is_name
+  (c-name "g_dbus_is_name")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "string")
+  )
+)
+
+(define-function g_dbus_is_unique_name
+  (c-name "g_dbus_is_unique_name")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "string")
+  )
+)
+
+(define-function g_dbus_is_member_name
+  (c-name "g_dbus_is_member_name")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "string")
+  )
+)
+
+(define-function g_dbus_is_interface_name
+  (c-name "g_dbus_is_interface_name")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "string")
+  )
+)
+
+
+
 ;; From gdrive.h
 
 (define-function g_drive_get_type
@@ -4207,6 +6461,11 @@
   )
 )
 
+(define-function g_file_attribute_matcher_get_type
+  (c-name "g_file_attribute_matcher_get_type")
+  (return-type "GType")
+)
+
 (define-function g_file_attribute_matcher_new
   (c-name "g_file_attribute_matcher_new")
   (is-constructor-of "GFileAttributeMatcher")
@@ -5112,6 +7371,96 @@
   (return-type "GType")
 )
 
+(define-function g_unix_socket_address_type_get_type
+  (c-name "g_unix_socket_address_type_get_type")
+  (return-type "GType")
+)
+
+(define-function g_bus_type_get_type
+  (c-name "g_bus_type_get_type")
+  (return-type "GType")
+)
+
+(define-function g_bus_name_owner_flags_get_type
+  (c-name "g_bus_name_owner_flags_get_type")
+  (return-type "GType")
+)
+
+(define-function g_bus_name_watcher_flags_get_type
+  (c-name "g_bus_name_watcher_flags_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_proxy_flags_get_type
+  (c-name "g_dbus_proxy_flags_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_error_get_type
+  (c-name "g_dbus_error_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_connection_flags_get_type
+  (c-name "g_dbus_connection_flags_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_capability_flags_get_type
+  (c-name "g_dbus_capability_flags_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_call_flags_get_type
+  (c-name "g_dbus_call_flags_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_message_type_get_type
+  (c-name "g_dbus_message_type_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_message_flags_get_type
+  (c-name "g_dbus_message_flags_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_message_header_field_get_type
+  (c-name "g_dbus_message_header_field_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_property_info_flags_get_type
+  (c-name "g_dbus_property_info_flags_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_subtree_flags_get_type
+  (c-name "g_dbus_subtree_flags_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_server_flags_get_type
+  (c-name "g_dbus_server_flags_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_signal_flags_get_type
+  (c-name "g_dbus_signal_flags_get_type")
+  (return-type "GType")
+)
+
+(define-function g_dbus_send_message_flags_get_type
+  (c-name "g_dbus_send_message_flags_get_type")
+  (return-type "GType")
+)
+
+(define-function g_credentials_type_get_type
+  (c-name "g_credentials_type_get_type")
+  (return-type "GType")
+)
+
 (define-function g_settings_bind_flags_get_type
   (c-name "g_settings_bind_flags_get_type")
   (return-type "GType")
@@ -6146,6 +8495,106 @@
 
 
 
+;; From gpermission.h
+
+(define-function g_permission_get_type
+  (c-name "g_permission_get_type")
+  (return-type "GType")
+)
+
+(define-method acquire
+  (of-object "GPermission")
+  (c-name "g_permission_acquire")
+  (return-type "gboolean")
+  (parameters
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+(define-method acquire_async
+  (of-object "GPermission")
+  (c-name "g_permission_acquire_async")
+  (return-type "none")
+  (parameters
+    '("GCancellable*" "cancellable")
+    '("GAsyncReadyCallback" "callback")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method acquire_finish
+  (of-object "GPermission")
+  (c-name "g_permission_acquire_finish")
+  (return-type "gboolean")
+  (parameters
+    '("GAsyncResult*" "result")
+    '("GError**" "error")
+  )
+)
+
+(define-method release
+  (of-object "GPermission")
+  (c-name "g_permission_release")
+  (return-type "gboolean")
+  (parameters
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+(define-method release_async
+  (of-object "GPermission")
+  (c-name "g_permission_release_async")
+  (return-type "none")
+  (parameters
+    '("GCancellable*" "cancellable")
+    '("GAsyncReadyCallback" "callback")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method release_finish
+  (of-object "GPermission")
+  (c-name "g_permission_release_finish")
+  (return-type "gboolean")
+  (parameters
+    '("GAsyncResult*" "result")
+    '("GError**" "error")
+  )
+)
+
+(define-method get_allowed
+  (of-object "GPermission")
+  (c-name "g_permission_get_allowed")
+  (return-type "gboolean")
+)
+
+(define-method get_can_acquire
+  (of-object "GPermission")
+  (c-name "g_permission_get_can_acquire")
+  (return-type "gboolean")
+)
+
+(define-method get_can_release
+  (of-object "GPermission")
+  (c-name "g_permission_get_can_release")
+  (return-type "gboolean")
+)
+
+(define-method impl_update
+  (of-object "GPermission")
+  (c-name "g_permission_impl_update")
+  (return-type "none")
+  (parameters
+    '("gboolean" "allowed")
+    '("gboolean" "can_acquire")
+    '("gboolean" "can_release")
+  )
+)
+
+
+
 ;; From gresolver.h
 
 (define-function g_resolver_get_type
@@ -6347,24 +8796,6 @@
   (return-type "GType")
 )
 
-(define-function g_settings_backend_setup
-  (c-name "g_settings_backend_setup")
-  (return-type "none")
-  (parameters
-    '("const-gchar*" "context")
-    '("GSettingsBackend*" "backend")
-  )
-)
-
-(define-function g_settings_backend_setup_keyfile
-  (c-name "g_settings_backend_setup_keyfile")
-  (return-type "none")
-  (parameters
-    '("const-gchar*" "context")
-    '("const-gchar*" "filename")
-  )
-)
-
 (define-method changed
   (of-object "GSettingsBackend")
   (c-name "g_settings_backend_changed")
@@ -6385,6 +8816,17 @@
   )
 )
 
+(define-function g_settings_backend_flatten_tree
+  (c-name "g_settings_backend_flatten_tree")
+  (return-type "none")
+  (parameters
+    '("GTree*" "tree")
+    '("gchar**" "path")
+    '("const-gchar***" "keys")
+    '("GVariant***" "values")
+  )
+)
+
 (define-method keys_changed
   (of-object "GSettingsBackend")
   (c-name "g_settings_backend_keys_changed")
@@ -6424,6 +8866,17 @@
   )
 )
 
+(define-function g_keyfile_settings_backend_new
+  (c-name "g_keyfile_settings_backend_new")
+  (is-constructor-of "GKeyfileSettingsBackend")
+  (return-type "GSettingsBackend*")
+  (parameters
+    '("const-gchar*" "filename")
+    '("const-gchar*" "root_path")
+    '("const-gchar*" "root_group")
+  )
+)
+
 
 
 ;; From gsettings.h
@@ -6451,33 +8904,31 @@
   )
 )
 
-(define-function g_settings_supports_context
-  (c-name "g_settings_supports_context")
-  (return-type "gboolean")
-  (parameters
-    '("const-gchar*" "context")
-  )
-)
-
-(define-function g_settings_new_with_context
-  (c-name "g_settings_new_with_context")
+(define-function g_settings_new_with_backend
+  (c-name "g_settings_new_with_backend")
   (return-type "GSettings*")
   (parameters
     '("const-gchar*" "schema")
-    '("const-gchar*" "context")
+    '("GSettingsBackend*" "backend")
   )
 )
 
-(define-function g_settings_new_with_context_and_path
-  (c-name "g_settings_new_with_context_and_path")
+(define-function g_settings_new_with_backend_and_path
+  (c-name "g_settings_new_with_backend_and_path")
   (return-type "GSettings*")
   (parameters
     '("const-gchar*" "schema")
-    '("const-gchar*" "context")
+    '("GSettingsBackend*" "backend")
     '("const-gchar*" "path")
   )
 )
 
+(define-method list_items
+  (of-object "GSettings")
+  (c-name "g_settings_list_items")
+  (return-type "const-gchar**")
+)
+
 (define-method set_value
   (of-object "GSettings")
   (c-name "g_settings_set_value")
@@ -6614,6 +9065,44 @@
   )
 )
 
+(define-method get_enum
+  (of-object "GSettings")
+  (c-name "g_settings_get_enum")
+  (return-type "gint")
+  (parameters
+    '("const-gchar*" "key")
+  )
+)
+
+(define-method set_enum
+  (of-object "GSettings")
+  (c-name "g_settings_set_enum")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "key")
+    '("gint" "value")
+  )
+)
+
+(define-method get_flags
+  (of-object "GSettings")
+  (c-name "g_settings_get_flags")
+  (return-type "guint")
+  (parameters
+    '("const-gchar*" "key")
+  )
+)
+
+(define-method set_flags
+  (of-object "GSettings")
+  (c-name "g_settings_set_flags")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "key")
+    '("guint" "value")
+  )
+)
+
 (define-method get_child
   (of-object "GSettings")
   (c-name "g_settings_get_child")
@@ -6656,6 +9145,11 @@
   (return-type "gboolean")
 )
 
+(define-function g_settings_sync
+  (c-name "g_settings_sync")
+  (return-type "none")
+)
+
 (define-method bind
   (of-object "GSettings")
   (c-name "g_settings_bind")
@@ -6705,6 +9199,17 @@
   )
 )
 
+(define-method get_mapped
+  (of-object "GSettings")
+  (c-name "g_settings_get_mapped")
+  (return-type "gpointer")
+  (parameters
+    '("const-gchar*" "key")
+    '("GSettingsGetMapping" "mapping")
+    '("gpointer" "user_data")
+  )
+)
+
 
 
 ;; From gsimpleasyncresult.h
@@ -6914,6 +9419,24 @@
 
 
 
+;; From gsimplepermission.h
+
+(define-function g_simple_permission_get_type
+  (c-name "g_simple_permission_get_type")
+  (return-type "GType")
+)
+
+(define-function g_simple_permission_new
+  (c-name "g_simple_permission_new")
+  (is-constructor-of "GSimplePermission")
+  (return-type "GPermission*")
+  (parameters
+    '("gboolean" "allowed")
+  )
+)
+
+
+
 ;; From gsocketaddressenumerator.h
 
 (define-function g_socket_address_enumerator_get_type
@@ -7410,6 +9933,21 @@
   )
 )
 
+(define-method get_timeout
+  (of-object "GSocket")
+  (c-name "g_socket_get_timeout")
+  (return-type "guint")
+)
+
+(define-method set_timeout
+  (of-object "GSocket")
+  (c-name "g_socket_set_timeout")
+  (return-type "none")
+  (parameters
+    '("guint" "timeout")
+  )
+)
+
 (define-method is_connected
   (of-object "GSocket")
   (c-name "g_socket_is_connected")
@@ -7610,6 +10148,15 @@
   (return-type "gboolean")
 )
 
+(define-method get_credentials
+  (of-object "GSocket")
+  (c-name "g_socket_get_credentials")
+  (return-type "GCredentials*")
+  (parameters
+    '("GError**" "error")
+  )
+)
+
 
 
 ;; From gsocketlistener.h
@@ -7947,24 +10494,6 @@
 
 
 
-;; From gutf8inputstream.h
-
-(define-function g_utf8_input_stream_get_type
-  (c-name "g_utf8_input_stream_get_type")
-  (return-type "GType")
-)
-
-(define-function g_utf8_input_stream_new
-  (c-name "g_utf8_input_stream_new")
-  (is-constructor-of "GUtf8InputStream")
-  (return-type "GInputStream*")
-  (parameters
-    '("GInputStream*" "base_stream")
-  )
-)
-
-
-
 ;; From gvfs.h
 
 (define-function g_vfs_get_type
@@ -8257,593 +10786,3 @@
 )
 
 
-
-;; From gdesktopappinfo.h
-
-(define-function g_desktop_app_info_get_type
-  (c-name "g_desktop_app_info_get_type")
-  (return-type "GType")
-)
-
-(define-function g_desktop_app_info_new_from_filename
-  (c-name "g_desktop_app_info_new_from_filename")
-  (return-type "GDesktopAppInfo*")
-  (parameters
-    '("const-char*" "filename")
-  )
-)
-
-(define-function g_desktop_app_info_new_from_keyfile
-  (c-name "g_desktop_app_info_new_from_keyfile")
-  (return-type "GDesktopAppInfo*")
-  (parameters
-    '("GKeyFile*" "key_file")
-  )
-)
-
-(define-method get_filename
-  (of-object "GDesktopAppInfo")
-  (c-name "g_desktop_app_info_get_filename")
-  (return-type "const-char*")
-)
-
-(define-function g_desktop_app_info_new
-  (c-name "g_desktop_app_info_new")
-  (is-constructor-of "GDesktopAppInfo")
-  (return-type "GDesktopAppInfo*")
-  (parameters
-    '("const-char*" "desktop_id")
-  )
-)
-
-(define-method get_is_hidden
-  (of-object "GDesktopAppInfo")
-  (c-name "g_desktop_app_info_get_is_hidden")
-  (return-type "gboolean")
-)
-
-(define-function g_desktop_app_info_set_desktop_env
-  (c-name "g_desktop_app_info_set_desktop_env")
-  (return-type "none")
-  (parameters
-    '("const-char*" "desktop_env")
-  )
-)
-
-(define-function g_desktop_app_info_lookup_get_type
-  (c-name "g_desktop_app_info_lookup_get_type")
-  (return-type "GType")
-)
-
-(define-method get_default_for_uri_scheme
-  (of-object "GDesktopAppInfoLookup")
-  (c-name "g_desktop_app_info_lookup_get_default_for_uri_scheme")
-  (return-type "GAppInfo*")
-  (parameters
-    '("const-char*" "uri_scheme")
-  )
-)
-
-
-
-;; From gfiledescriptorbased.h
-
-(define-function g_file_descriptor_based_get_type
-  (c-name "g_file_descriptor_based_get_type")
-  (return-type "GType")
-)
-
-(define-method get_fd
-  (of-object "GFileDescriptorBased")
-  (c-name "g_file_descriptor_based_get_fd")
-  (return-type "int")
-)
-
-
-
-;; From gunixconnection.h
-
-(define-function g_unix_connection_get_type
-  (c-name "g_unix_connection_get_type")
-  (return-type "GType")
-)
-
-(define-method send_fd
-  (of-object "GUnixConnection")
-  (c-name "g_unix_connection_send_fd")
-  (return-type "gboolean")
-  (parameters
-    '("gint" "fd")
-    '("GCancellable*" "cancellable")
-    '("GError**" "error")
-  )
-)
-
-(define-method receive_fd
-  (of-object "GUnixConnection")
-  (c-name "g_unix_connection_receive_fd")
-  (return-type "gint")
-  (parameters
-    '("GCancellable*" "cancellable")
-    '("GError**" "error")
-  )
-)
-
-
-
-;; From gunixfdlist.h
-
-(define-function g_unix_fd_list_get_type
-  (c-name "g_unix_fd_list_get_type")
-  (return-type "GType")
-)
-
-(define-function g_unix_fd_list_new
-  (c-name "g_unix_fd_list_new")
-  (is-constructor-of "GUnixFdList")
-  (return-type "GUnixFDList*")
-)
-
-(define-function g_unix_fd_list_new_from_array
-  (c-name "g_unix_fd_list_new_from_array")
-  (return-type "GUnixFDList*")
-  (parameters
-    '("const-gint*" "fds")
-    '("gint" "n_fds")
-  )
-)
-
-(define-method append
-  (of-object "GUnixFDList")
-  (c-name "g_unix_fd_list_append")
-  (return-type "gint")
-  (parameters
-    '("gint" "fd")
-    '("GError**" "error")
-  )
-)
-
-(define-method get_length
-  (of-object "GUnixFDList")
-  (c-name "g_unix_fd_list_get_length")
-  (return-type "gint")
-)
-
-(define-method get
-  (of-object "GUnixFDList")
-  (c-name "g_unix_fd_list_get")
-  (return-type "gint")
-  (parameters
-    '("gint" "index_")
-    '("GError**" "error")
-  )
-)
-
-(define-method peek_fds
-  (of-object "GUnixFDList")
-  (c-name "g_unix_fd_list_peek_fds")
-  (return-type "const-gint*")
-  (parameters
-    '("gint*" "length")
-  )
-)
-
-(define-method steal_fds
-  (of-object "GUnixFDList")
-  (c-name "g_unix_fd_list_steal_fds")
-  (return-type "gint*")
-  (parameters
-    '("gint*" "length")
-  )
-)
-
-
-
-;; From gunixfdmessage.h
-
-(define-function g_unix_fd_message_get_type
-  (c-name "g_unix_fd_message_get_type")
-  (return-type "GType")
-)
-
-(define-function g_unix_fd_message_new_with_fd_list
-  (c-name "g_unix_fd_message_new_with_fd_list")
-  (return-type "GSocketControlMessage*")
-  (parameters
-    '("GUnixFDList*" "fd_list")
-  )
-)
-
-(define-function g_unix_fd_message_new
-  (c-name "g_unix_fd_message_new")
-  (is-constructor-of "GUnixFdMessage")
-  (return-type "GSocketControlMessage*")
-)
-
-(define-method get_fd_list
-  (of-object "GUnixFDMessage")
-  (c-name "g_unix_fd_message_get_fd_list")
-  (return-type "GUnixFDList*")
-)
-
-(define-method steal_fds
-  (of-object "GUnixFDMessage")
-  (c-name "g_unix_fd_message_steal_fds")
-  (return-type "gint*")
-  (parameters
-    '("gint*" "length")
-  )
-)
-
-(define-method append_fd
-  (of-object "GUnixFDMessage")
-  (c-name "g_unix_fd_message_append_fd")
-  (return-type "gboolean")
-  (parameters
-    '("gint" "fd")
-    '("GError**" "error")
-  )
-)
-
-
-
-;; From gunixinputstream.h
-
-(define-function g_unix_input_stream_get_type
-  (c-name "g_unix_input_stream_get_type")
-  (return-type "GType")
-)
-
-(define-function g_unix_input_stream_new
-  (c-name "g_unix_input_stream_new")
-  (is-constructor-of "GUnixInputStream")
-  (return-type "GInputStream*")
-  (parameters
-    '("gint" "fd")
-    '("gboolean" "close_fd")
-  )
-)
-
-(define-method set_close_fd
-  (of-object "GUnixInputStream")
-  (c-name "g_unix_input_stream_set_close_fd")
-  (return-type "none")
-  (parameters
-    '("gboolean" "close_fd")
-  )
-)
-
-(define-method get_close_fd
-  (of-object "GUnixInputStream")
-  (c-name "g_unix_input_stream_get_close_fd")
-  (return-type "gboolean")
-)
-
-(define-method get_fd
-  (of-object "GUnixInputStream")
-  (c-name "g_unix_input_stream_get_fd")
-  (return-type "gint")
-)
-
-
-
-;; From gunixmounts.h
-
-(define-function g_unix_mount_free
-  (c-name "g_unix_mount_free")
-  (return-type "none")
-  (parameters
-    '("GUnixMountEntry*" "mount_entry")
-  )
-)
-
-(define-method free
-  (of-object "GUnixMountPoint")
-  (c-name "g_unix_mount_point_free")
-  (return-type "none")
-)
-
-(define-function g_unix_mount_compare
-  (c-name "g_unix_mount_compare")
-  (return-type "gint")
-  (parameters
-    '("GUnixMountEntry*" "mount1")
-    '("GUnixMountEntry*" "mount2")
-  )
-)
-
-(define-function g_unix_mount_get_mount_path
-  (c-name "g_unix_mount_get_mount_path")
-  (return-type "const-char*")
-  (parameters
-    '("GUnixMountEntry*" "mount_entry")
-  )
-)
-
-(define-function g_unix_mount_get_device_path
-  (c-name "g_unix_mount_get_device_path")
-  (return-type "const-char*")
-  (parameters
-    '("GUnixMountEntry*" "mount_entry")
-  )
-)
-
-(define-function g_unix_mount_get_fs_type
-  (c-name "g_unix_mount_get_fs_type")
-  (return-type "const-char*")
-  (parameters
-    '("GUnixMountEntry*" "mount_entry")
-  )
-)
-
-(define-function g_unix_mount_is_readonly
-  (c-name "g_unix_mount_is_readonly")
-  (return-type "gboolean")
-  (parameters
-    '("GUnixMountEntry*" "mount_entry")
-  )
-)
-
-(define-function g_unix_mount_is_system_internal
-  (c-name "g_unix_mount_is_system_internal")
-  (return-type "gboolean")
-  (parameters
-    '("GUnixMountEntry*" "mount_entry")
-  )
-)
-
-(define-function g_unix_mount_guess_can_eject
-  (c-name "g_unix_mount_guess_can_eject")
-  (return-type "gboolean")
-  (parameters
-    '("GUnixMountEntry*" "mount_entry")
-  )
-)
-
-(define-function g_unix_mount_guess_should_display
-  (c-name "g_unix_mount_guess_should_display")
-  (return-type "gboolean")
-  (parameters
-    '("GUnixMountEntry*" "mount_entry")
-  )
-)
-
-(define-function g_unix_mount_guess_name
-  (c-name "g_unix_mount_guess_name")
-  (return-type "char*")
-  (parameters
-    '("GUnixMountEntry*" "mount_entry")
-  )
-)
-
-(define-function g_unix_mount_guess_icon
-  (c-name "g_unix_mount_guess_icon")
-  (return-type "GIcon*")
-  (parameters
-    '("GUnixMountEntry*" "mount_entry")
-  )
-)
-
-(define-method compare
-  (of-object "GUnixMountPoint")
-  (c-name "g_unix_mount_point_compare")
-  (return-type "gint")
-  (parameters
-    '("GUnixMountPoint*" "mount2")
-  )
-)
-
-(define-method get_mount_path
-  (of-object "GUnixMountPoint")
-  (c-name "g_unix_mount_point_get_mount_path")
-  (return-type "const-char*")
-)
-
-(define-method get_device_path
-  (of-object "GUnixMountPoint")
-  (c-name "g_unix_mount_point_get_device_path")
-  (return-type "const-char*")
-)
-
-(define-method get_fs_type
-  (of-object "GUnixMountPoint")
-  (c-name "g_unix_mount_point_get_fs_type")
-  (return-type "const-char*")
-)
-
-(define-method is_readonly
-  (of-object "GUnixMountPoint")
-  (c-name "g_unix_mount_point_is_readonly")
-  (return-type "gboolean")
-)
-
-(define-method is_user_mountable
-  (of-object "GUnixMountPoint")
-  (c-name "g_unix_mount_point_is_user_mountable")
-  (return-type "gboolean")
-)
-
-(define-method is_loopback
-  (of-object "GUnixMountPoint")
-  (c-name "g_unix_mount_point_is_loopback")
-  (return-type "gboolean")
-)
-
-(define-method guess_can_eject
-  (of-object "GUnixMountPoint")
-  (c-name "g_unix_mount_point_guess_can_eject")
-  (return-type "gboolean")
-)
-
-(define-method guess_name
-  (of-object "GUnixMountPoint")
-  (c-name "g_unix_mount_point_guess_name")
-  (return-type "char*")
-)
-
-(define-method guess_icon
-  (of-object "GUnixMountPoint")
-  (c-name "g_unix_mount_point_guess_icon")
-  (return-type "GIcon*")
-)
-
-(define-function g_unix_mount_points_get
-  (c-name "g_unix_mount_points_get")
-  (return-type "GList*")
-  (parameters
-    '("guint64*" "time_read")
-  )
-)
-
-(define-function g_unix_mounts_get
-  (c-name "g_unix_mounts_get")
-  (return-type "GList*")
-  (parameters
-    '("guint64*" "time_read")
-  )
-)
-
-(define-function g_unix_mount_at
-  (c-name "g_unix_mount_at")
-  (return-type "GUnixMountEntry*")
-  (parameters
-    '("const-char*" "mount_path")
-    '("guint64*" "time_read")
-  )
-)
-
-(define-function g_unix_mounts_changed_since
-  (c-name "g_unix_mounts_changed_since")
-  (return-type "gboolean")
-  (parameters
-    '("guint64" "time")
-  )
-)
-
-(define-function g_unix_mount_points_changed_since
-  (c-name "g_unix_mount_points_changed_since")
-  (return-type "gboolean")
-  (parameters
-    '("guint64" "time")
-  )
-)
-
-(define-function g_unix_mount_monitor_get_type
-  (c-name "g_unix_mount_monitor_get_type")
-  (return-type "GType")
-)
-
-(define-function g_unix_mount_monitor_new
-  (c-name "g_unix_mount_monitor_new")
-  (is-constructor-of "GUnixMountMonitor")
-  (return-type "GUnixMountMonitor*")
-)
-
-(define-method set_rate_limit
-  (of-object "GUnixMountMonitor")
-  (c-name "g_unix_mount_monitor_set_rate_limit")
-  (return-type "none")
-  (parameters
-    '("int" "limit_msec")
-  )
-)
-
-(define-function g_unix_is_mount_path_system_internal
-  (c-name "g_unix_is_mount_path_system_internal")
-  (return-type "gboolean")
-  (parameters
-    '("const-char*" "mount_path")
-  )
-)
-
-
-
-;; From gunixoutputstream.h
-
-(define-function g_unix_output_stream_get_type
-  (c-name "g_unix_output_stream_get_type")
-  (return-type "GType")
-)
-
-(define-function g_unix_output_stream_new
-  (c-name "g_unix_output_stream_new")
-  (is-constructor-of "GUnixOutputStream")
-  (return-type "GOutputStream*")
-  (parameters
-    '("gint" "fd")
-    '("gboolean" "close_fd")
-  )
-)
-
-(define-method set_close_fd
-  (of-object "GUnixOutputStream")
-  (c-name "g_unix_output_stream_set_close_fd")
-  (return-type "none")
-  (parameters
-    '("gboolean" "close_fd")
-  )
-)
-
-(define-method get_close_fd
-  (of-object "GUnixOutputStream")
-  (c-name "g_unix_output_stream_get_close_fd")
-  (return-type "gboolean")
-)
-
-(define-method get_fd
-  (of-object "GUnixOutputStream")
-  (c-name "g_unix_output_stream_get_fd")
-  (return-type "gint")
-)
-
-
-
-;; From gunixsocketaddress.h
-
-(define-function g_unix_socket_address_get_type
-  (c-name "g_unix_socket_address_get_type")
-  (return-type "GType")
-)
-
-(define-function g_unix_socket_address_new
-  (c-name "g_unix_socket_address_new")
-  (is-constructor-of "GUnixSocketAddress")
-  (return-type "GSocketAddress*")
-  (parameters
-    '("const-gchar*" "path")
-  )
-)
-
-(define-function g_unix_socket_address_new_abstract
-  (c-name "g_unix_socket_address_new_abstract")
-  (return-type "GSocketAddress*")
-  (parameters
-    '("const-gchar*" "path")
-    '("int" "path_len")
-  )
-)
-
-(define-method get_path
-  (of-object "GUnixSocketAddress")
-  (c-name "g_unix_socket_address_get_path")
-  (return-type "const-char*")
-)
-
-(define-method get_path_len
-  (of-object "GUnixSocketAddress")
-  (c-name "g_unix_socket_address_get_path_len")
-  (return-type "gsize")
-)
-
-(define-method get_is_abstract
-  (of-object "GUnixSocketAddress")
-  (c-name "g_unix_socket_address_get_is_abstract")
-  (return-type "gboolean")
-)
-
-(define-function g_unix_socket_address_abstract_names_supported
-  (c-name "g_unix_socket_address_abstract_names_supported")
-  (return-type "gboolean")
-)
-
-
diff --git a/gio/src/gio_signals.defs b/gio/src/gio_signals.defs
index ace64e9..8dc10f0 100644
--- a/gio/src/gio_signals.defs
+++ b/gio/src/gio_signals.defs
@@ -664,6 +664,18 @@
   )
 )
 
+;; From GDBusAuthObserver
+
+(define-signal authorize-authenticated-peer
+  (of-object "GDBusAuthObserver")
+  (return-type "gboolean")
+  (when "last")
+  (parameters
+    '("GIOStream*" "p0")
+    '("GCredentials*" "p1")
+  )
+)
+
 ;; From GInetAddress
 
 (define-property family
@@ -925,10 +937,10 @@
   (construct-only #t)
 )
 
-(define-property context
+(define-property backend
   (of-object "GSettings")
-  (prop-type "GParamString")
-  (docs "The name of the context for this settings object")
+  (prop-type "GParamObject")
+  (docs "The GSettingsBackend for this settings object")
   (readable #t)
   (writable #t)
   (construct-only #t)
@@ -1035,6 +1047,15 @@
   (construct-only #f)
 )
 
+(define-property timeout
+  (of-object "GSocket")
+  (prop-type "GParamUInt")
+  (docs "The timeout in seconds on socket I/O")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
 ;; From GSocketClient
 
 (define-property family
diff --git a/gio/src/gio_unix_functions.defs b/gio/src/gio_unix_functions.defs
new file mode 100644
index 0000000..73bed33
--- /dev/null
+++ b/gio/src/gio_unix_functions.defs
@@ -0,0 +1,725 @@
+;; -*- scheme -*-
+; object definitions ...
+(define-object AppInfoLookup
+  (in-module "GDesktop")
+  (c-name "GDesktopAppInfoLookup")
+  (gtype-id "G_TYPE_DESKTOP_APP_INFO_LOOKUP")
+)
+
+(define-object DescriptorBased
+  (in-module "GFile")
+  (c-name "GFileDescriptorBased")
+  (gtype-id "G_TYPE_FILE_DESCRIPTOR_BASED")
+)
+
+(define-object Connection
+  (in-module "GUnix")
+  (parent "GSocketConnection")
+  (c-name "GUnixConnection")
+  (gtype-id "G_TYPE_UNIX_CONNECTION")
+)
+
+(define-object CredentialsMessage
+  (in-module "GUnix")
+  (parent "GSocketControlMessage")
+  (c-name "GUnixCredentialsMessage")
+  (gtype-id "G_TYPE_UNIX_CREDENTIALS_MESSAGE")
+)
+
+(define-object FDList
+  (in-module "GUnix")
+  (parent "GObject")
+  (c-name "GUnixFDList")
+  (gtype-id "G_TYPE_UNIX_FD_LIST")
+)
+
+(define-object FDMessage
+  (in-module "GUnix")
+  (parent "GSocketControlMessage")
+  (c-name "GUnixFDMessage")
+  (gtype-id "G_TYPE_UNIX_FD_MESSAGE")
+)
+
+(define-object InputStream
+  (in-module "GUnix")
+  (parent "GInputStream")
+  (c-name "GUnixInputStream")
+  (gtype-id "G_TYPE_UNIX_INPUT_STREAM")
+)
+
+(define-object OutputStream
+  (in-module "GUnix")
+  (parent "GOutputStream")
+  (c-name "GUnixOutputStream")
+  (gtype-id "G_TYPE_UNIX_OUTPUT_STREAM")
+)
+
+(define-object SocketAddress
+  (in-module "GUnix")
+  (parent "GSocketAddress")
+  (c-name "GUnixSocketAddress")
+  (gtype-id "G_TYPE_UNIX_SOCKET_ADDRESS")
+)
+
+;; Enumerations and flags ...
+
+
+;; From gdesktopappinfo.h
+
+(define-function g_desktop_app_info_get_type
+  (c-name "g_desktop_app_info_get_type")
+  (return-type "GType")
+)
+
+(define-function g_desktop_app_info_new_from_filename
+  (c-name "g_desktop_app_info_new_from_filename")
+  (return-type "GDesktopAppInfo*")
+  (parameters
+    '("const-char*" "filename")
+  )
+)
+
+(define-function g_desktop_app_info_new_from_keyfile
+  (c-name "g_desktop_app_info_new_from_keyfile")
+  (return-type "GDesktopAppInfo*")
+  (parameters
+    '("GKeyFile*" "key_file")
+  )
+)
+
+(define-method get_filename
+  (of-object "GDesktopAppInfo")
+  (c-name "g_desktop_app_info_get_filename")
+  (return-type "const-char*")
+)
+
+(define-function g_desktop_app_info_new
+  (c-name "g_desktop_app_info_new")
+  (is-constructor-of "GDesktopAppInfo")
+  (return-type "GDesktopAppInfo*")
+  (parameters
+    '("const-char*" "desktop_id")
+  )
+)
+
+(define-method get_is_hidden
+  (of-object "GDesktopAppInfo")
+  (c-name "g_desktop_app_info_get_is_hidden")
+  (return-type "gboolean")
+)
+
+(define-function g_desktop_app_info_set_desktop_env
+  (c-name "g_desktop_app_info_set_desktop_env")
+  (return-type "none")
+  (parameters
+    '("const-char*" "desktop_env")
+  )
+)
+
+(define-function g_desktop_app_info_lookup_get_type
+  (c-name "g_desktop_app_info_lookup_get_type")
+  (return-type "GType")
+)
+
+(define-method get_default_for_uri_scheme
+  (of-object "GDesktopAppInfoLookup")
+  (c-name "g_desktop_app_info_lookup_get_default_for_uri_scheme")
+  (return-type "GAppInfo*")
+  (parameters
+    '("const-char*" "uri_scheme")
+  )
+)
+
+
+
+;; From gfiledescriptorbased.h
+
+(define-function g_file_descriptor_based_get_type
+  (c-name "g_file_descriptor_based_get_type")
+  (return-type "GType")
+)
+
+(define-method get_fd
+  (of-object "GFileDescriptorBased")
+  (c-name "g_file_descriptor_based_get_fd")
+  (return-type "int")
+)
+
+
+
+;; From gunixconnection.h
+
+(define-function g_unix_connection_get_type
+  (c-name "g_unix_connection_get_type")
+  (return-type "GType")
+)
+
+(define-method send_fd
+  (of-object "GUnixConnection")
+  (c-name "g_unix_connection_send_fd")
+  (return-type "gboolean")
+  (parameters
+    '("gint" "fd")
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+(define-method receive_fd
+  (of-object "GUnixConnection")
+  (c-name "g_unix_connection_receive_fd")
+  (return-type "gint")
+  (parameters
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+(define-method send_credentials
+  (of-object "GUnixConnection")
+  (c-name "g_unix_connection_send_credentials")
+  (return-type "gboolean")
+  (parameters
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+(define-method receive_credentials
+  (of-object "GUnixConnection")
+  (c-name "g_unix_connection_receive_credentials")
+  (return-type "GCredentials*")
+  (parameters
+    '("GCancellable*" "cancellable")
+    '("GError**" "error")
+  )
+)
+
+
+
+;; From gunixcredentialsmessage.h
+
+(define-function g_unix_credentials_message_get_type
+  (c-name "g_unix_credentials_message_get_type")
+  (return-type "GType")
+)
+
+(define-function g_unix_credentials_message_new
+  (c-name "g_unix_credentials_message_new")
+  (is-constructor-of "GUnixCredentialsMessage")
+  (return-type "GSocketControlMessage*")
+)
+
+(define-function g_unix_credentials_message_new_with_credentials
+  (c-name "g_unix_credentials_message_new_with_credentials")
+  (return-type "GSocketControlMessage*")
+  (parameters
+    '("GCredentials*" "credentials")
+  )
+)
+
+(define-method get_credentials
+  (of-object "GUnixCredentialsMessage")
+  (c-name "g_unix_credentials_message_get_credentials")
+  (return-type "GCredentials*")
+)
+
+(define-function g_unix_credentials_message_is_supported
+  (c-name "g_unix_credentials_message_is_supported")
+  (return-type "gboolean")
+)
+
+
+
+;; From gunixfdlist.h
+
+(define-function g_unix_fd_list_get_type
+  (c-name "g_unix_fd_list_get_type")
+  (return-type "GType")
+)
+
+(define-function g_unix_fd_list_new
+  (c-name "g_unix_fd_list_new")
+  (is-constructor-of "GUnixFdList")
+  (return-type "GUnixFDList*")
+)
+
+(define-function g_unix_fd_list_new_from_array
+  (c-name "g_unix_fd_list_new_from_array")
+  (return-type "GUnixFDList*")
+  (parameters
+    '("const-gint*" "fds")
+    '("gint" "n_fds")
+  )
+)
+
+(define-method append
+  (of-object "GUnixFDList")
+  (c-name "g_unix_fd_list_append")
+  (return-type "gint")
+  (parameters
+    '("gint" "fd")
+    '("GError**" "error")
+  )
+)
+
+(define-method get_length
+  (of-object "GUnixFDList")
+  (c-name "g_unix_fd_list_get_length")
+  (return-type "gint")
+)
+
+(define-method get
+  (of-object "GUnixFDList")
+  (c-name "g_unix_fd_list_get")
+  (return-type "gint")
+  (parameters
+    '("gint" "index_")
+    '("GError**" "error")
+  )
+)
+
+(define-method peek_fds
+  (of-object "GUnixFDList")
+  (c-name "g_unix_fd_list_peek_fds")
+  (return-type "const-gint*")
+  (parameters
+    '("gint*" "length")
+  )
+)
+
+(define-method steal_fds
+  (of-object "GUnixFDList")
+  (c-name "g_unix_fd_list_steal_fds")
+  (return-type "gint*")
+  (parameters
+    '("gint*" "length")
+  )
+)
+
+
+
+;; From gunixfdmessage.h
+
+(define-function g_unix_fd_message_get_type
+  (c-name "g_unix_fd_message_get_type")
+  (return-type "GType")
+)
+
+(define-function g_unix_fd_message_new_with_fd_list
+  (c-name "g_unix_fd_message_new_with_fd_list")
+  (return-type "GSocketControlMessage*")
+  (parameters
+    '("GUnixFDList*" "fd_list")
+  )
+)
+
+(define-function g_unix_fd_message_new
+  (c-name "g_unix_fd_message_new")
+  (is-constructor-of "GUnixFdMessage")
+  (return-type "GSocketControlMessage*")
+)
+
+(define-method get_fd_list
+  (of-object "GUnixFDMessage")
+  (c-name "g_unix_fd_message_get_fd_list")
+  (return-type "GUnixFDList*")
+)
+
+(define-method steal_fds
+  (of-object "GUnixFDMessage")
+  (c-name "g_unix_fd_message_steal_fds")
+  (return-type "gint*")
+  (parameters
+    '("gint*" "length")
+  )
+)
+
+(define-method append_fd
+  (of-object "GUnixFDMessage")
+  (c-name "g_unix_fd_message_append_fd")
+  (return-type "gboolean")
+  (parameters
+    '("gint" "fd")
+    '("GError**" "error")
+  )
+)
+
+
+
+;; From gunixinputstream.h
+
+(define-function g_unix_input_stream_get_type
+  (c-name "g_unix_input_stream_get_type")
+  (return-type "GType")
+)
+
+(define-function g_unix_input_stream_new
+  (c-name "g_unix_input_stream_new")
+  (is-constructor-of "GUnixInputStream")
+  (return-type "GInputStream*")
+  (parameters
+    '("gint" "fd")
+    '("gboolean" "close_fd")
+  )
+)
+
+(define-method set_close_fd
+  (of-object "GUnixInputStream")
+  (c-name "g_unix_input_stream_set_close_fd")
+  (return-type "none")
+  (parameters
+    '("gboolean" "close_fd")
+  )
+)
+
+(define-method get_close_fd
+  (of-object "GUnixInputStream")
+  (c-name "g_unix_input_stream_get_close_fd")
+  (return-type "gboolean")
+)
+
+(define-method get_fd
+  (of-object "GUnixInputStream")
+  (c-name "g_unix_input_stream_get_fd")
+  (return-type "gint")
+)
+
+
+
+;; From gunixmounts.h
+
+(define-function g_unix_mount_free
+  (c-name "g_unix_mount_free")
+  (return-type "none")
+  (parameters
+    '("GUnixMountEntry*" "mount_entry")
+  )
+)
+
+(define-method free
+  (of-object "GUnixMountPoint")
+  (c-name "g_unix_mount_point_free")
+  (return-type "none")
+)
+
+(define-function g_unix_mount_compare
+  (c-name "g_unix_mount_compare")
+  (return-type "gint")
+  (parameters
+    '("GUnixMountEntry*" "mount1")
+    '("GUnixMountEntry*" "mount2")
+  )
+)
+
+(define-function g_unix_mount_get_mount_path
+  (c-name "g_unix_mount_get_mount_path")
+  (return-type "const-char*")
+  (parameters
+    '("GUnixMountEntry*" "mount_entry")
+  )
+)
+
+(define-function g_unix_mount_get_device_path
+  (c-name "g_unix_mount_get_device_path")
+  (return-type "const-char*")
+  (parameters
+    '("GUnixMountEntry*" "mount_entry")
+  )
+)
+
+(define-function g_unix_mount_get_fs_type
+  (c-name "g_unix_mount_get_fs_type")
+  (return-type "const-char*")
+  (parameters
+    '("GUnixMountEntry*" "mount_entry")
+  )
+)
+
+(define-function g_unix_mount_is_readonly
+  (c-name "g_unix_mount_is_readonly")
+  (return-type "gboolean")
+  (parameters
+    '("GUnixMountEntry*" "mount_entry")
+  )
+)
+
+(define-function g_unix_mount_is_system_internal
+  (c-name "g_unix_mount_is_system_internal")
+  (return-type "gboolean")
+  (parameters
+    '("GUnixMountEntry*" "mount_entry")
+  )
+)
+
+(define-function g_unix_mount_guess_can_eject
+  (c-name "g_unix_mount_guess_can_eject")
+  (return-type "gboolean")
+  (parameters
+    '("GUnixMountEntry*" "mount_entry")
+  )
+)
+
+(define-function g_unix_mount_guess_should_display
+  (c-name "g_unix_mount_guess_should_display")
+  (return-type "gboolean")
+  (parameters
+    '("GUnixMountEntry*" "mount_entry")
+  )
+)
+
+(define-function g_unix_mount_guess_name
+  (c-name "g_unix_mount_guess_name")
+  (return-type "char*")
+  (parameters
+    '("GUnixMountEntry*" "mount_entry")
+  )
+)
+
+(define-function g_unix_mount_guess_icon
+  (c-name "g_unix_mount_guess_icon")
+  (return-type "GIcon*")
+  (parameters
+    '("GUnixMountEntry*" "mount_entry")
+  )
+)
+
+(define-method compare
+  (of-object "GUnixMountPoint")
+  (c-name "g_unix_mount_point_compare")
+  (return-type "gint")
+  (parameters
+    '("GUnixMountPoint*" "mount2")
+  )
+)
+
+(define-method get_mount_path
+  (of-object "GUnixMountPoint")
+  (c-name "g_unix_mount_point_get_mount_path")
+  (return-type "const-char*")
+)
+
+(define-method get_device_path
+  (of-object "GUnixMountPoint")
+  (c-name "g_unix_mount_point_get_device_path")
+  (return-type "const-char*")
+)
+
+(define-method get_fs_type
+  (of-object "GUnixMountPoint")
+  (c-name "g_unix_mount_point_get_fs_type")
+  (return-type "const-char*")
+)
+
+(define-method is_readonly
+  (of-object "GUnixMountPoint")
+  (c-name "g_unix_mount_point_is_readonly")
+  (return-type "gboolean")
+)
+
+(define-method is_user_mountable
+  (of-object "GUnixMountPoint")
+  (c-name "g_unix_mount_point_is_user_mountable")
+  (return-type "gboolean")
+)
+
+(define-method is_loopback
+  (of-object "GUnixMountPoint")
+  (c-name "g_unix_mount_point_is_loopback")
+  (return-type "gboolean")
+)
+
+(define-method guess_can_eject
+  (of-object "GUnixMountPoint")
+  (c-name "g_unix_mount_point_guess_can_eject")
+  (return-type "gboolean")
+)
+
+(define-method guess_name
+  (of-object "GUnixMountPoint")
+  (c-name "g_unix_mount_point_guess_name")
+  (return-type "char*")
+)
+
+(define-method guess_icon
+  (of-object "GUnixMountPoint")
+  (c-name "g_unix_mount_point_guess_icon")
+  (return-type "GIcon*")
+)
+
+(define-function g_unix_mount_points_get
+  (c-name "g_unix_mount_points_get")
+  (return-type "GList*")
+  (parameters
+    '("guint64*" "time_read")
+  )
+)
+
+(define-function g_unix_mounts_get
+  (c-name "g_unix_mounts_get")
+  (return-type "GList*")
+  (parameters
+    '("guint64*" "time_read")
+  )
+)
+
+(define-function g_unix_mount_at
+  (c-name "g_unix_mount_at")
+  (return-type "GUnixMountEntry*")
+  (parameters
+    '("const-char*" "mount_path")
+    '("guint64*" "time_read")
+  )
+)
+
+(define-function g_unix_mounts_changed_since
+  (c-name "g_unix_mounts_changed_since")
+  (return-type "gboolean")
+  (parameters
+    '("guint64" "time")
+  )
+)
+
+(define-function g_unix_mount_points_changed_since
+  (c-name "g_unix_mount_points_changed_since")
+  (return-type "gboolean")
+  (parameters
+    '("guint64" "time")
+  )
+)
+
+(define-function g_unix_mount_monitor_get_type
+  (c-name "g_unix_mount_monitor_get_type")
+  (return-type "GType")
+)
+
+(define-function g_unix_mount_monitor_new
+  (c-name "g_unix_mount_monitor_new")
+  (is-constructor-of "GUnixMountMonitor")
+  (return-type "GUnixMountMonitor*")
+)
+
+(define-method set_rate_limit
+  (of-object "GUnixMountMonitor")
+  (c-name "g_unix_mount_monitor_set_rate_limit")
+  (return-type "none")
+  (parameters
+    '("int" "limit_msec")
+  )
+)
+
+(define-function g_unix_is_mount_path_system_internal
+  (c-name "g_unix_is_mount_path_system_internal")
+  (return-type "gboolean")
+  (parameters
+    '("const-char*" "mount_path")
+  )
+)
+
+
+
+;; From gunixoutputstream.h
+
+(define-function g_unix_output_stream_get_type
+  (c-name "g_unix_output_stream_get_type")
+  (return-type "GType")
+)
+
+(define-function g_unix_output_stream_new
+  (c-name "g_unix_output_stream_new")
+  (is-constructor-of "GUnixOutputStream")
+  (return-type "GOutputStream*")
+  (parameters
+    '("gint" "fd")
+    '("gboolean" "close_fd")
+  )
+)
+
+(define-method set_close_fd
+  (of-object "GUnixOutputStream")
+  (c-name "g_unix_output_stream_set_close_fd")
+  (return-type "none")
+  (parameters
+    '("gboolean" "close_fd")
+  )
+)
+
+(define-method get_close_fd
+  (of-object "GUnixOutputStream")
+  (c-name "g_unix_output_stream_get_close_fd")
+  (return-type "gboolean")
+)
+
+(define-method get_fd
+  (of-object "GUnixOutputStream")
+  (c-name "g_unix_output_stream_get_fd")
+  (return-type "gint")
+)
+
+
+
+;; From gunixsocketaddress.h
+
+(define-function g_unix_socket_address_get_type
+  (c-name "g_unix_socket_address_get_type")
+  (return-type "GType")
+)
+
+(define-function g_unix_socket_address_new
+  (c-name "g_unix_socket_address_new")
+  (is-constructor-of "GUnixSocketAddress")
+  (return-type "GSocketAddress*")
+  (parameters
+    '("const-gchar*" "path")
+  )
+)
+
+(define-function g_unix_socket_address_new_abstract
+  (c-name "g_unix_socket_address_new_abstract")
+  (return-type "GSocketAddress*")
+  (parameters
+    '("const-gchar*" "path")
+    '("gint" "path_len")
+  )
+)
+
+(define-function g_unix_socket_address_new_with_type
+  (c-name "g_unix_socket_address_new_with_type")
+  (return-type "GSocketAddress*")
+  (parameters
+    '("const-gchar*" "path")
+    '("gint" "path_len")
+    '("GUnixSocketAddressType" "type")
+  )
+)
+
+(define-method get_path
+  (of-object "GUnixSocketAddress")
+  (c-name "g_unix_socket_address_get_path")
+  (return-type "const-char*")
+)
+
+(define-method get_path_len
+  (of-object "GUnixSocketAddress")
+  (c-name "g_unix_socket_address_get_path_len")
+  (return-type "gsize")
+)
+
+(define-method get_address_type
+  (of-object "GUnixSocketAddress")
+  (c-name "g_unix_socket_address_get_address_type")
+  (return-type "GUnixSocketAddressType")
+)
+
+(define-method get_is_abstract
+  (of-object "GUnixSocketAddress")
+  (c-name "g_unix_socket_address_get_is_abstract")
+  (return-type "gboolean")
+)
+
+(define-function g_unix_socket_address_abstract_names_supported
+  (c-name "g_unix_socket_address_abstract_names_supported")
+  (return-type "gboolean")
+)
+
+
diff --git a/gio/src/settings.ccg b/gio/src/settings.ccg
index 6fceed5..8174ecc 100644
--- a/gio/src/settings.ccg
+++ b/gio/src/settings.ccg
@@ -3,10 +3,13 @@
 namespace Gio
 {
 
-Glib::RefPtr<Settings> Settings::create_with_context(const Glib::ustring& schema,
-                                                     const Glib::ustring& context)
+void Settings::get_value(const Glib::ustring& key, Glib::VariantBase& value) const
 {
-    return Glib::RefPtr<Settings>(new Settings(g_settings_new_with_context(schema.c_str(), context.c_str())));
+  GVariant* const g_value = g_settings_get_value(const_cast<GSettings*>(gobj()), key.c_str());
+  if(!g_value)
+    return;
+
+  value.init(g_value, false /* don't take a reference */);
 }
 
 void Settings::bind(const Glib::ustring& key,
diff --git a/gio/src/settings.hg b/gio/src/settings.hg
index e6a61e5..562eeb0 100644
--- a/gio/src/settings.hg
+++ b/gio/src/settings.hg
@@ -16,6 +16,8 @@
  */
 
 #include <glibmm/object.h>
+#include <glibmm/variant.h>
+#include <giomm/settingsbackend.h>
 
 _DEFS(giomm,gio)
 _PINCLUDE(glibmm/private/object_p.h)
@@ -39,18 +41,24 @@ class Settings : public Glib::Object
 protected:
   _WRAP_CTOR(Settings(const Glib::ustring& schema), g_settings_new)
   _WRAP_CTOR(Settings(const Glib::ustring& schema, const Glib::ustring& path), g_settings_new_with_path)
-  // can't wrap both new_with_path and new_with_context since they both have the
-  // same signature...
-  _WRAP_CTOR(Settings(const Glib::ustring& schema, const Glib::ustring& context, const Glib::ustring& path), g_settings_new_with_context_and_path)
+  _WRAP_CTOR(Settings(const Glib::ustring& schema, const Glib::RefPtr<SettingsBackend>& backend), g_settings_new_with_backend)
+  _WRAP_CTOR(Settings(const Glib::ustring& schema, const Glib::RefPtr<SettingsBackend>& backend, const Glib::ustring& path), g_settings_new_with_backend_and_path)
 
 public:
   _WRAP_CREATE(const Glib::ustring& schema)
   _WRAP_CREATE(const Glib::ustring& schema, const Glib::ustring& path)
-  _WRAP_CREATE(const Glib::ustring& schema, const Glib::ustring& context, const Glib::ustring& path)
-  static Glib::RefPtr<Settings> create_with_context(const Glib::ustring& schema, const Glib::ustring& context);
+  _WRAP_CREATE(const Glib::ustring& schema, const Glib::RefPtr<SettingsBackend>& backend)
+  _WRAP_CREATE(const Glib::ustring& schema, const Glib::RefPtr<SettingsBackend>& backend, const Glib::ustring& path)
 
   // FIXME: implement the GVariant stuff
 
+  _WRAP_METHOD(bool set_value(const Glib::ustring& key, const Glib::VariantBase& value),  g_settings_set_value)
+  
+  /** TODO: Documentation.
+   */
+  void get_value(const Glib::ustring& key, Glib::VariantBase& value) const;
+  _IGNORE(g_settings_get_value)
+
   _WRAP_METHOD(int get_int(const Glib::ustring& key) const, g_settings_get_int)
   _WRAP_METHOD(void set_int(const Glib::ustring& key, int value), g_settings_set_int)
   _WRAP_METHOD(bool get_boolean(const Glib::ustring& key) const, g_settings_get_boolean)
@@ -65,6 +73,11 @@ public:
 
   _WRAP_METHOD(bool set_string_array(const Glib::ustring& key,  const Glib::StringArrayHandle& value), g_settings_set_strv)
 
+  _WRAP_METHOD(int get_enum(const Glib::ustring& key) const, g_settings_get_enum )
+  _WRAP_METHOD(bool get_enum(const Glib::ustring& key, int value), g_settings_set_enum)
+  _WRAP_METHOD(guint get_flags(const Glib::ustring& key) const, g_settings_get_flags)
+  _WRAP_METHOD(bool get_flags(const Glib::ustring& key, guint value), g_settings_set_flags)
+                                                                         
   // Ignore varargs functions.
   _IGNORE(g_settings_get, g_settings_set)
 
diff --git a/glib/src/filelist.am b/glib/src/filelist.am
index 8d25bfc..ca45a59 100644
--- a/glib/src/filelist.am
+++ b/glib/src/filelist.am
@@ -33,9 +33,10 @@ glibmm_files_hg =		\
 	thread.hg		\
 	unicode.hg		\
 	uriutils.hg		\
-	valuearray.hg
+	valuearray.hg \
+	variant.hg
 
 glibmm_files_ccg = $(glibmm_files_hg:.hg=.ccg)
 
 glibmm_files_cc_m4 = value_basictypes.cc.m4
-glibmm_files_h_m4  = signalproxy.h.m4 value_basictypes.h.m4
+glibmm_files_h_m4  = signalproxy.h.m4 value_basictypes.h.m4 variant_basictypes.h.m4
diff --git a/glib/src/variant.ccg b/glib/src/variant.ccg
new file mode 100644
index 0000000..6f1a683
--- /dev/null
+++ b/glib/src/variant.ccg
@@ -0,0 +1,71 @@
+/* Copyright 2010 The glibmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/variant.h>
+#include <glibmm/utility.h>
+#include <glib/gvariant.h>
+
+namespace Glib
+{
+
+
+/****************** Specializations ***********************************/
+
+void VariantBase::init(const GVariant* cobject, bool take_a_reference)
+{
+  if(gobject_)
+    g_variant_unref(gobject_);
+
+  gobject_ = const_cast<GVariant*>(cobject);
+  if(take_a_reference)
+    g_variant_ref(gobject_);
+}
+
+// static
+const GVariantType* Variant<VariantBase>::variant_type()
+{
+  return G_VARIANT_TYPE_VARIANT;
+}
+
+Variant<VariantBase> Variant<VariantBase>::create(const VariantBase& data)
+{
+  return Variant<VariantBase>(g_variant_new_variant(const_cast<GVariant*>(data.gobj())));
+}
+
+VariantBase Variant<VariantBase>::get() const
+{
+  return VariantBase(g_variant_get_variant(gobject_));
+}
+
+// static
+const GVariantType* Variant<Glib::ustring>::variant_type()
+{
+  return G_VARIANT_TYPE_STRING;
+}
+
+Variant<Glib::ustring>
+Variant<Glib::ustring>::create(const Glib::ustring& data)
+{
+  return Variant<Glib::ustring>(g_variant_new_string(data.c_str()));
+}
+
+Glib::ustring Variant<Glib::ustring>::get() const
+{
+  return Glib::ustring(g_variant_get_string(gobject_, 0));
+}
+
+} // namespace Glib
diff --git a/glib/src/variant.hg b/glib/src/variant.hg
new file mode 100644
index 0000000..6f45b6b
--- /dev/null
+++ b/glib/src/variant.hg
@@ -0,0 +1,159 @@
+/* Copyright 2010 The glibmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+_DEFS(glibmm,glib)
+
+#include <glibmmconfig.h>
+#include <glibmm/ustring.h>
+
+namespace Glib
+{
+
+/** @defgroup glibmmVariant Variant Datatype
+ *
+ * Glib::Variant<> are specialized classes that deal with strongly typed
+ * variant data.  They are used to wrap glib's GVariant API.  For more
+ * information see the <a
+ * href="http://library.gnome.org/devel/glib/stable/glib-GVariant.html";>glib
+ * variant
+ * API</a>.
+ */
+
+/** The base class used to wrap glib's GVariant API.
+ * @newin{2,26}
+ * @ingroup glibmmVariant
+ */
+class VariantBase
+{
+  _CLASS_OPAQUE_COPYABLE(VariantBase, GVariant, NONE, g_variant_ref_sink, g_variant_unref)
+  _IGNORE(g_variant_ref, g_variant_ref_sink, g_variant_unref,
+    g_variant_get, g_variant_get_va)
+public:
+
+  /** Replace the underlying GVariant.
+   * This is for use by methods that take a VariantBase& as an output parameter.
+   *
+   * @param cobject The GVariant* obtained from a C function.
+   * @param take_a_reference Whether this method should take a reference, for instance if the C function has not given one.
+   */
+  void init(const GVariant* cobject, bool take_a_reference = false);
+
+  _WRAP_METHOD(bool is_container() const, g_variant_is_container)
+  _WRAP_METHOD(GVariantClass classify() const, g_variant_classify)
+  
+  _WRAP_METHOD(Glib::ustring print(bool type_annotate = false) const, g_variant_print)
+  _IGNORE(g_variant_print_string)
+  
+  #m4 _CONVERSION(`const VariantBase&',`gconstpointer',`const_cast<GVariant*>(($3).gobj())')
+  _WRAP_METHOD(guint hash() const, g_variant_hash)
+  _WRAP_METHOD(bool equal(const VariantBase& other) const, g_variant_equal)
+
+  _WRAP_METHOD(VariantBase get_normal_form() const, g_variant_get_normal_form)
+  _WRAP_METHOD(bool is_normal_form() const, g_variant_is_normal_form)
+  _WRAP_METHOD(VariantBase byteswap() const, g_variant_byteswap)
+};
+
+/** Template class from which other Glib::Variant<> specializations derive.
+ * @newin{2,26}
+ * @ingroup glibmmVariant
+ */
+template <class T>
+class Variant : public VariantBase
+{
+public:
+  typedef T CppType;
+};
+
+
+// Each specialization has (or should have) a variant_type() method that gets
+// the type. So the C g_variant_get_type() function can be ignored.
+_IGNORE(g_variant_get_type)
+
+/****************** Specializations ***********************************/
+
+/** Specialization of Glib::Variant containing a Glib::VariantBase.
+ * @newin{2,26}
+ * @ingroup glibmmVariant
+ */
+template <>
+class Variant<VariantBase> : public VariantBase
+{
+public:
+  typedef GVariant* CType;
+
+  Variant<VariantBase>()
+  : VariantBase()
+  {}
+  
+  explicit Variant<VariantBase>(GVariant* castitem)
+  : VariantBase(castitem)
+  {}
+  
+  static const GVariantType* variant_type() G_GNUC_CONST;
+
+  //This must have a create() method because otherwise it would be a copy constructor.
+  static Variant<VariantBase> create(const Glib::VariantBase& data);
+  _IGNORE(g_variant_new_variant)
+
+  VariantBase get() const;
+  _IGNORE(g_variant_get_variant)
+};
+
+/** Specialization of Glib::Variant containing a Glib::ustring.
+ * @newin{2,26}
+ * @ingroup glibmmVariant
+ */
+template <>
+class Variant<Glib::ustring> : public VariantBase
+{
+public:
+  typedef char* CType;
+
+  Variant<Glib::ustring>()
+  : VariantBase()
+  {}
+  
+  explicit Variant<Glib::ustring>(GVariant* castitem)
+  : VariantBase(castitem)
+  {}
+  
+  static const GVariantType* variant_type() G_GNUC_CONST;
+  static Variant<Glib::ustring> create(const Glib::ustring& data);
+
+  Glib::ustring get() const;
+  _IGNORE(g_variant_get_string, g_variant_dup_string)
+};
+
+} // namespace Glib
+
+
+_IGNORE(
+  g_variant_get_boolean,
+  g_variant_get_uint16,
+  g_variant_get_int64,
+  g_variant_get_int32,
+  g_variant_get_int16,
+  g_variant_get_uint32,
+  g_variant_get_uint64,
+  g_variant_get_double
+)
+
+/* Include generated specializations of Glib::Variant<> for fundamental types:
+ */
+#define _GLIBMM_VARIANT_H_INCLUDE_VARIANT_BASICTYPES_H
+#include <glibmm/variant_basictypes.h>
+#undef _GLIBMM_VARIANT_H_INCLUDE_VARIANT_BASICTYPES_H
diff --git a/glib/src/variant_basictypes.h.m4 b/glib/src/variant_basictypes.h.m4
new file mode 100644
index 0000000..84847e9
--- /dev/null
+++ b/glib/src/variant_basictypes.h.m4
@@ -0,0 +1,92 @@
+divert(-1)
+
+dnl $Id$
+
+dnl  Glib::Variant specializations for fundamental types
+dnl
+dnl  Copyright 2010 The gtkmm Development Team
+dnl
+dnl  This library is free software; you can redistribute it and/or
+dnl  modify it under the terms of the GNU Lesser General Public
+dnl  License as published by the Free Software Foundation; either
+dnl  version 2.1 of the License, or (at your option) any later version.
+dnl
+dnl  This library is distributed in the hope that it will be useful,
+dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl  Lesser General Public License for more details.
+dnl
+dnl  You should have received a copy of the GNU Lesser General Public
+dnl  License along with this library; if not, write to the Free
+dnl  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+include(template.macros.m4)
+
+dnl
+dnl GLIB_VARIANT_BASIC(bool, boolean)
+dnl
+define([GLIB_VARIANT_BASIC],[dnl
+LINE(]__line__[)dnl
+
+/** Specialization of Glib::Variant containing a $1 type.
+ * @newin{2,26}
+ * @ingroup glibmmVariant
+ */
+template <>
+class Variant<$1> : public VariantBase
+{
+public:
+  typedef g$2 CType;
+
+  /// Default constructor.
+  Variant<$1>()
+  : VariantBase()
+  {}
+
+  /** GVariant constructor.
+   * @param castitem The GVariant to wrap.
+   */
+  explicit Variant<$1>(GVariant* castitem)
+  : VariantBase(castitem)
+  {}
+
+  /** Gets the GVariantType.
+   * @return The GVariantType.
+   */
+  static const GVariantType* variant_type() G_GNUC_CONST;
+
+  /** Creates a new Glib::Variant<$1>.
+   * @param data The value of the new Glib::Variant<$1>.
+   * @return The new Glib::Variant<$1>.
+   */
+  static Variant<$1> create($1 data);
+
+  /** Gets the value of the Glib::Variant<$1>.
+   * @return The $1 value of the Glib::Variant<$1>.
+   */
+  $1 get() const;
+};
+])
+
+divert[]dnl
+// This is a generated file. Do not edit it.  Generated from __file__
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+#ifndef _GLIBMM_VARIANT_H_INCLUDE_VARIANT_BASICTYPES_H
+#error "glibmm/variant_basictypes.h cannot be included directly"
+#endif
+#endif
+
+namespace Glib
+{
+GLIB_VARIANT_BASIC(bool, boolean)
+dnl GLIB_VARIANT_BASIC(unsigned char, byte)
+GLIB_VARIANT_BASIC(gint16, int16)
+GLIB_VARIANT_BASIC(guint16, uint16)
+GLIB_VARIANT_BASIC(gint32, int32)
+GLIB_VARIANT_BASIC(guint32, uint32)
+GLIB_VARIANT_BASIC(gint64, int64)
+GLIB_VARIANT_BASIC(guint64, uint64)
+dnl GLIB_VARIANT_BASIC(gint32, handle)
+GLIB_VARIANT_BASIC(double, double)
+} // namespace Glib
diff --git a/tools/m4/convert_gio.m4 b/tools/m4/convert_gio.m4
index 78542ac..432a019 100644
--- a/tools/m4/convert_gio.m4
+++ b/tools/m4/convert_gio.m4
@@ -128,6 +128,11 @@ _CONVERSION(`const Glib::RefPtr<OutputStream>&',`GOutputStream*',__CONVERT_CONST
 #Settings
 _CONVERSION(`GSettings*',`Glib::RefPtr<Settings>',`Glib::wrap($3)')
 _CONVERSION(`const Glib::StringArrayHandle&',`const gchar*-const*',`($3).data()')
+_CONVERSION(`const Glib::RefPtr<SettingsBackend>&',`GSettingsBackend*',__CONVERT_REFPTR_TO_P)
+
+_CONVERSION(`GVariant*',`Glib::VariantBase',`Glib::wrap($3, true)')
+_CONVERSION(`GVariant*',`VariantBase',`Glib::wrap($3, true)')
+_CONVERSION(`const Glib::VariantBase&',`GVariant*',`const_cast<GVariant*>(($3).gobj())')
 
 #Socket
 _CONVERSION(`const Glib::RefPtr<Socket>&',`GSocket*',__CONVERT_CONST_REFPTR_TO_P)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]