<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:doc="http://www.gtk.org/introspection/doc/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GLib" version="2.0"/>
  <include name="GModule" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <package name="gio-unix-2.0"/>
  <c:include name="gio/gdesktopappinfo.h"/>
  <c:include name="gio/gfiledescriptorbased.h"/>
  <c:include name="gio/gio.h"/>
  <c:include name="gio/gunixfdmessage.h"/>
  <c:include name="gio/gunixinputstream.h"/>
  <c:include name="gio/gunixmounts.h"/>
  <c:include name="gio/gunixoutputstream.h"/>
  <doc:format name="gi-docgen"/>
  <namespace name="GioUnix"
             version="2.0"
             shared-library="libgio-2.0.so.4200.23"
             c:identifier-prefixes="GUnix,G"
             c:symbol-prefixes="gio,g_unix,g">
    <function-macro name="DESKTOP_APP_INFO"
                    c:identifier="G_DESKTOP_APP_INFO"
                    introspectable="0">
      <source-position filename="gio/gdesktopappinfo.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DESKTOP_APP_INFO_CLASS"
                    c:identifier="G_DESKTOP_APP_INFO_CLASS"
                    introspectable="0">
      <source-position filename="gio/gdesktopappinfo.h" line="32"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DESKTOP_APP_INFO_GET_CLASS"
                    c:identifier="G_DESKTOP_APP_INFO_GET_CLASS"
                    introspectable="0">
      <source-position filename="gio/gdesktopappinfo.h" line="35"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DESKTOP_APP_INFO_LOOKUP"
                    c:identifier="G_DESKTOP_APP_INFO_LOOKUP"
                    introspectable="0">
      <source-position filename="gio/gdesktopappinfo.h" line="112"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME"
              value="gio-desktop-app-info-lookup"
              c:type="G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME"
              deprecated="1"
              deprecated-version="2.28">
      <doc xml:space="preserve"
           filename="gio/gdesktopappinfo.h"
           line="116">Extension point for default handler to URI association. See
[Extending GIO](overview.html#extending-gio).</doc>
      <doc-deprecated xml:space="preserve">The #GDesktopAppInfoLookup interface is deprecated and
   unused by GIO.</doc-deprecated>
      <source-position filename="gio/gdesktopappinfo.h" line="125"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <function-macro name="DESKTOP_APP_INFO_LOOKUP_GET_IFACE"
                    c:identifier="G_DESKTOP_APP_INFO_LOOKUP_GET_IFACE"
                    introspectable="0">
      <source-position filename="gio/gdesktopappinfo.h" line="114"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="DesktopAppInfo"
           c:symbol-prefix="desktop_app_info"
           c:type="GDesktopAppInfo"
           parent="GObject.Object"
           glib:type-name="GDesktopAppInfo"
           glib:get-type="g_desktop_app_info_get_type"
           glib:type-struct="DesktopAppInfoClass">
      <doc xml:space="preserve"
           filename="gio/gdesktopappinfo.c"
           line="65">`GDesktopAppInfo` is an implementation of [iface@Gio.AppInfo] based on
desktop files.

Note that `&lt;gio/gdesktopappinfo.h&gt;` belongs to the UNIX-specific
GIO interfaces, thus you have to use the `gio-unix-2.0.pc` pkg-config
file or the `GioUnix-2.0` GIR namespace when using it.</doc>
      <source-position filename="gio/gdesktopappinfo.h" line="45"/>
      <implements name="Gio.AppInfo"/>
      <constructor name="new" c:identifier="g_desktop_app_info_new">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="2166">Creates a new [class@GioUnix.DesktopAppInfo] based on a desktop file ID.

A desktop file ID is the basename of the desktop file, including the
`.desktop` extension. GIO is looking for a desktop file with this name
in the `applications` subdirectories of the XDG
data directories (i.e. the directories specified in the `XDG_DATA_HOME`
and `XDG_DATA_DIRS` environment variables). GIO also supports the
prefix-to-subdirectory mapping that is described in the
[Menu Spec](http://standards.freedesktop.org/menu-spec/latest/)
(i.e. a desktop ID of `kde-foo.desktop` will match
`/usr/share/applications/kde/foo.desktop`).</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="74"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="2182">a new [class@GioUnix.DesktopAppInfo], or `NULL` if no
   desktop file with that ID exists.</doc>
          <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
        </return-value>
        <parameters>
          <parameter name="desktop_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="2168">the desktop file ID</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_filename"
                   c:identifier="g_desktop_app_info_new_from_filename">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="2143">Creates a new [class@GioUnix.DesktopAppInfo].</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="52"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="2150">a new [class@GioUnix.DesktopAppInfo] or `NULL` on error.</doc>
          <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="2145">the path of a desktop file, in the GLib
     filename encoding</doc>
            <type name="filename" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_keyfile"
                   c:identifier="g_desktop_app_info_new_from_keyfile"
                   version="2.18">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="2115">Creates a new [class@GioUnix.DesktopAppInfo].</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="54"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="2121">a new [class@GioUnix.DesktopAppInfo] or `NULL` on error.</doc>
          <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
        </return-value>
        <parameters>
          <parameter name="key_file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="2117">an opened [type@GLib.KeyFile]</doc>
            <type name="GLib.KeyFile" c:type="GKeyFile*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="get_implementations"
                c:identifier="g_desktop_app_info_get_implementations"
                version="2.42">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="4776">Gets all applications that implement @interface.

An application implements an interface if that interface is listed in
the `Implements` line of the desktop file of the application.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="196"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="4785">a list of
  [class@GioUnix.DesktopAppInfo] objects.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="DesktopAppInfo"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="interface" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="4778">the name of the interface</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="search" c:identifier="g_desktop_app_info_search">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="4825">Searches desktop files for ones that match @search_string.

The return value is an array of strvs.  Each strv contains a list of
applications that matched @search_string with an equal score.  The
outer list is sorted by score so that the first strv contains the
best-matching applications, and so on.
The algorithm for determining matches is undefined and may change at
any time.

None of the search results are subjected to the normal validation
checks performed by [ctor@GioUnix.DesktopAppInfo.new] (for example,
checking that the executable referenced by a result exists), and so it is
possible for [ctor@GioUnix.DesktopAppInfo.new] to return `NULL` when passed
an app ID returned by this function. It is expected that calling code will
do this when subsequently creating a [class@GioUnix.DesktopAppInfo] for
each result.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="193"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="4846">a
  list of strvs.  Free each item with [func@GLib.strfreev] and free the outer
  list with [func@GLib.free].</doc>
          <array c:type="gchar***">
            <array>
              <type name="utf8"/>
            </array>
          </array>
        </return-value>
        <parameters>
          <parameter name="search_string" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="4827">the search string to use</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="set_desktop_env"
                c:identifier="g_desktop_app_info_set_desktop_env"
                deprecated="1"
                deprecated-version="2.42">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="3757">Sets the name of the desktop that the application is running in.

This is used by [method@Gio.AppInfo.should_show] and
[method@GioUnix.DesktopAppInfo.get_show_in] to evaluate the
[`OnlyShowIn`](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-onlyshowin)
and [`NotShowIn`](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-notshowin)
keys.

Should be called only once; subsequent calls are ignored.</doc>
        <doc-deprecated xml:space="preserve">do not use this API.  Since 2.42 the value of the
  `XDG_CURRENT_DESKTOP` environment variable will be used.</doc-deprecated>
        <source-position filename="gio/gdesktopappinfo.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="desktop_env" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3759">a string specifying what desktop this is</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_action_name"
              c:identifier="g_desktop_app_info_get_action_name"
              version="2.38">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="5208">Gets the user-visible display name of the
[‘additional application actions’](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s11.html)
specified by @action_name.

This corresponds to the `Name` key within the keyfile group for the
action.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="108"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="5221">the locale-specific action name</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5210">a [class@GioUnix.DesktopAppInfo]</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
          <parameter name="action_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5211">the name of the action as from
  [method@GioUnix.DesktopAppInfo.list_actions]</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_boolean"
              c:identifier="g_desktop_app_info_get_boolean"
              version="2.36">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="5096">Looks up a boolean value in the keyfile backing @info.

The @key is looked up in the `Desktop Entry` group.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="91"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="5105">the boolean value, or `FALSE` if the key is not found</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5098">a [class@GioUnix.DesktopAppInfo]</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5099">the key to look up</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_categories"
              c:identifier="g_desktop_app_info_get_categories">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="2367">Gets the categories from the desktop file.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="62"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="2373">The unparsed
  [`Categories` key](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-categories)
  from the desktop file;
  i.e. no attempt is made to split it by `;` or validate it.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="2369">a [class@GioUnix.DesktopAppInfo]</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_filename"
              c:identifier="g_desktop_app_info_get_filename"
              glib:get-property="filename"
              version="2.24">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="2315">When @info was created from a known filename, return it.

In some situations such as a [class@GioUnix.DesktopAppInfo] returned
from [ctor@GioUnix.DesktopAppInfo.new_from_keyfile], this function
will return `NULL`.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="57"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="2325">The full path to the file for @info,
  or `NULL` if not known.</doc>
          <type name="filename" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="2317">a [class@GioUnix.DesktopAppInfo]</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_generic_name"
              c:identifier="g_desktop_app_info_get_generic_name">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="2401">Gets the generic name from the desktop file.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="60"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="2407">The value of the
  [`GenericName` key](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-genericname)</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="2403">a [class@GioUnix.DesktopAppInfo]</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_hidden"
              c:identifier="g_desktop_app_info_get_is_hidden">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="2299">A desktop file is hidden if the
[`Hidden` key](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-hidden)
in it is set to `True`.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="2307">`TRUE` if hidden, `FALSE` otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="2301">a [class@GioUnix.DesktopAppInfo].</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_keywords"
              c:identifier="g_desktop_app_info_get_keywords"
              version="2.32">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="2384">Gets the keywords from the desktop file.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="64"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="2390">The value of the
  [`Keywords` key](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-keywords)</doc>
          <array c:type="const char* const*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="2386">a [class@GioUnix.DesktopAppInfo]</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_locale_string"
              c:identifier="g_desktop_app_info_get_locale_string"
              version="2.56">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="5069">Looks up a localized string value in the keyfile backing @info
translated to the current locale.

The @key is looked up in the `Desktop Entry` group.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="88"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="5079">a newly allocated string, or `NULL` if the key is not
  found</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5071">a [class@GioUnix.DesktopAppInfo]</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5072">the key to look up</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_nodisplay"
              c:identifier="g_desktop_app_info_get_nodisplay"
              version="2.30">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="2416">Gets the value of the
[`NoDisplay` key](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-nodisplay)
 which helps determine if the application info should be shown in menus. See
`G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY` and [method@Gio.AppInfo.should_show].</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="66"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="2425">The value of the `NoDisplay` key</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="2418">a [class@GioUnix.DesktopAppInfo]</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_in"
              c:identifier="g_desktop_app_info_get_show_in"
              version="2.30">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="2435">Checks if the application info should be shown in menus that list available
applications for a specific name of the desktop, based on the
[`OnlyShowIn`](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-onlyshowin)
and [`NotShowIn`](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-notshowin)
keys.

@desktop_env should typically be given as `NULL`, in which case the
`XDG_CURRENT_DESKTOP` environment variable is consulted.  If you want
to override the default mechanism then you may specify @desktop_env,
but this is not recommended.

Note that [method@Gio.AppInfo.should_show] for @info will include this check
(with `NULL` for @desktop_env) as well as additional checks.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="2454">`TRUE` if the @info should be shown in @desktop_env according to the
`OnlyShowIn` and `NotShowIn` keys, `FALSE` otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="2437">a [class@GioUnix.DesktopAppInfo]</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
          <parameter name="desktop_env"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="2438">a string specifying a desktop name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_startup_wm_class"
              c:identifier="g_desktop_app_info_get_startup_wm_class"
              version="2.34">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="5024">Retrieves the `StartupWMClass` field from @info. This represents the
`WM_CLASS` property of the main window of the application, if launched
through @info.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="71"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="5032">the startup WM class, or `NULL` if none
  is set in the desktop file.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5026">a [class@GioUnix.DesktopAppInfo] that supports startup notify</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_string"
              c:identifier="g_desktop_app_info_get_string"
              version="2.36">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="5045">Looks up a string value in the keyfile backing @info.

The @key is looked up in the `Desktop Entry` group.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="85"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="5054">a newly allocated string, or `NULL` if the key is not
  found</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5047">a [class@GioUnix.DesktopAppInfo]</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5048">the key to look up</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_string_list"
              c:identifier="g_desktop_app_info_get_string_list"
              version="2.60">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="5119">Looks up a string list value in the keyfile backing @info.

The @key is looked up in the `Desktop Entry` group.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="95"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="5130">
  a `NULL`-terminated string array or `NULL` if the specified
  key cannot be found. The array should be freed with [func@GLib.strfreev].</doc>
          <array length="1" zero-terminated="1" c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5121">a [class@GioUnix.DesktopAppInfo]</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5122">the key to look up</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="length"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5123">return location for the number of returned
  strings, or `NULL`</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_key"
              c:identifier="g_desktop_app_info_has_key"
              version="2.36">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="5147">Returns whether @key exists in the `Desktop Entry` group
of the keyfile backing @info.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="82"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="5155">`TRUE` if the @key exists</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5149">a [class@GioUnix.DesktopAppInfo]</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5150">the key to look up</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="launch_action"
              c:identifier="g_desktop_app_info_launch_action"
              version="2.38">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="5251">Activates the named application action.

You may only call this function on action names that were
returned from [method@GioUnix.DesktopAppInfo.list_actions].

Note that if the main entry of the desktop file indicates that the
application supports startup notification, and @launch_context is
non-`NULL`, then startup notification will be used when activating the
action (and as such, invocation of the action on the receiving side
must signal the end of startup notification when it is completed).
This is the expected behaviour of applications declaring additional
actions, as per the
[desktop file specification](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s11.html).

As with [method@Gio.AppInfo.launch] there is no way to detect failures that
occur while using this function.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5253">a [class@GioUnix.DesktopAppInfo]</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
          <parameter name="action_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5254">the name of the action as from
  [method@GioUnix.DesktopAppInfo.list_actions]</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="launch_context"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5256">a [class@Gio.AppLaunchContext]</doc>
            <type name="Gio.AppLaunchContext" c:type="GAppLaunchContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="launch_uris_as_manager"
              c:identifier="g_desktop_app_info_launch_uris_as_manager"
              throws="1">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="3700">This function performs the equivalent of [method@Gio.AppInfo.launch_uris],
but is intended primarily for operating system components that
launch applications.  Ordinary applications should use
[method@Gio.AppInfo.launch_uris].

If the application is launched via GSpawn, then @spawn_flags, @user_setup
and @user_setup_data are used for the call to [func@GLib.spawn_async].
Additionally, @pid_callback (with @pid_callback_data) will be called to
inform about the PID of the created process. See
[func@GLib.spawn_async_with_pipes] for information on certain parameter
conditions that can enable an optimized [`posix_spawn()`](man:posix_spawn(3))
code path to be used.

If application launching occurs via some other mechanism (for example, D-Bus
activation) then @spawn_flags, @user_setup, @user_setup_data,
@pid_callback and @pid_callback_data are ignored.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="168"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="3730">`TRUE` on successful launch, `FALSE` otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="appinfo" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3702">a [class@GioUnix.DesktopAppInfo]</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
          <parameter name="uris" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3703">List of URIs</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="launch_context"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3704">a [class@Gio.AppLaunchContext]</doc>
            <type name="Gio.AppLaunchContext" c:type="GAppLaunchContext*"/>
          </parameter>
          <parameter name="spawn_flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3705">[flags@GLib.SpawnFlags], used for each process</doc>
            <type name="GLib.SpawnFlags" c:type="GSpawnFlags"/>
          </parameter>
          <parameter name="user_setup"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3706">a [callback@GLib.SpawnChildSetupFunc],
  used once  for each process.</doc>
            <type name="GLib.SpawnChildSetupFunc"
                  c:type="GSpawnChildSetupFunc"/>
          </parameter>
          <parameter name="user_setup_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3708">User data for @user_setup</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="pid_callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="6">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3709">Callback for child processes</doc>
            <type name="DesktopAppLaunchCallback"
                  c:type="GDesktopAppLaunchCallback"/>
          </parameter>
          <parameter name="pid_callback_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3710">User data for @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="launch_uris_as_manager_with_fds"
              c:identifier="g_desktop_app_info_launch_uris_as_manager_with_fds"
              version="2.58"
              throws="1">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="3645">Equivalent to [method@GioUnix.DesktopAppInfo.launch_uris_as_manager] but
allows you to pass in file descriptors for the stdin, stdout and stderr
streams of the launched process.

If application launching occurs via some non-spawn mechanism (e.g. D-Bus
activation) then @stdin_fd, @stdout_fd and @stderr_fd are ignored.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="179"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="3668">`TRUE` on successful launch, `FALSE` otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="appinfo" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3647">a [class@GioUnix.DesktopAppInfo]</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
          <parameter name="uris" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3648">List of URIs</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="launch_context"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3649">a [class@Gio.AppLaunchContext]</doc>
            <type name="Gio.AppLaunchContext" c:type="GAppLaunchContext*"/>
          </parameter>
          <parameter name="spawn_flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3650">[flags@GLib.SpawnFlags], used for each process</doc>
            <type name="GLib.SpawnFlags" c:type="GSpawnFlags"/>
          </parameter>
          <parameter name="user_setup"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3651">a
  [callback@GLib.SpawnChildSetupFunc], used once for each process.</doc>
            <type name="GLib.SpawnChildSetupFunc"
                  c:type="GSpawnChildSetupFunc"/>
          </parameter>
          <parameter name="user_setup_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3653">User data for @user_setup</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="pid_callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="6">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3654">Callback for child processes</doc>
            <type name="DesktopAppLaunchCallback"
                  c:type="GDesktopAppLaunchCallback"/>
          </parameter>
          <parameter name="pid_callback_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3655">User data for @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="stdin_fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3656">file descriptor to use for child’s stdin, or `-1`</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="stdout_fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3657">file descriptor to use for child’s stdout, or `-1`</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="stderr_fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="3658">file descriptor to use for child’s stderr, or `-1`</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_actions"
              c:identifier="g_desktop_app_info_list_actions"
              version="2.38">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="5171">Returns the list of
[‘additional application actions’](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s11.html)
supported on the desktop file, as per the desktop file specification.

As per the specification, this is the list of actions that are
explicitly listed in the `Actions` key of the `Desktop Entry` group.</doc>
        <source-position filename="gio/gdesktopappinfo.h" line="100"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="5182">a
  list of strings, always non-`NULL`</doc>
          <array c:type="const gchar* const*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5173">a [class@GioUnix.DesktopAppInfo]</doc>
            <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="filename"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_filename"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="1794">The origin filename of this [class@GioUnix.DesktopAppInfo]</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="DesktopAppInfoClass"
            c:type="GDesktopAppInfoClass"
            glib:is-gtype-struct-for="DesktopAppInfo">
      <source-position filename="gio/gdesktopappinfo.h" line="45"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <interface name="DesktopAppInfoLookup"
               c:symbol-prefix="desktop_app_info_lookup"
               c:type="GDesktopAppInfoLookup"
               deprecated="1"
               deprecated-version="2.28"
               glib:type-name="GDesktopAppInfoLookup"
               glib:get-type="g_desktop_app_info_lookup_get_type"
               glib:type-struct="DesktopAppInfoLookupIface">
      <doc xml:space="preserve"
           filename="gio/gdesktopappinfo.c"
           line="4964">#GDesktopAppInfoLookup is an opaque data structure and can only be accessed
using the following functions.</doc>
      <doc-deprecated xml:space="preserve">The [iface@GioUnix.DesktopAppInfoLookup] interface is
  deprecated and unused by GIO.</doc-deprecated>
      <source-position filename="gio/gdesktopappinfo.h" line="144"/>
      <virtual-method name="get_default_for_uri_scheme"
                      invoker="get_default_for_uri_scheme"
                      deprecated="1"
                      deprecated-version="2.28">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="4986">Gets the default application for launching applications
using this URI scheme for a particular [iface@GioUnix.DesktopAppInfoLookup]
implementation.

The [iface@GioUnix.DesktopAppInfoLookup] interface and this function is used
to implement [func@Gio.AppInfo.get_default_for_uri_scheme] backends
in a GIO module. There is no reason for applications to use it
directly. Applications should use
[func@Gio.AppInfo.get_default_for_uri_scheme].</doc>
        <doc-deprecated xml:space="preserve">The [iface@GioUnix.DesktopAppInfoLookup] interface is
  deprecated and unused by GIO.</doc-deprecated>
        <source-position filename="gio/gdesktopappinfo.h" line="142"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="5001">[iface@Gio.AppInfo] for given
  @uri_scheme or `NULL` on error.</doc>
          <type name="Gio.AppInfo" c:type="GAppInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="lookup" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="4988">a [iface@GioUnix.DesktopAppInfoLookup]</doc>
            <type name="DesktopAppInfoLookup" c:type="GDesktopAppInfoLookup*"/>
          </instance-parameter>
          <parameter name="uri_scheme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="4989">a string containing a URI scheme.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_default_for_uri_scheme"
              c:identifier="g_desktop_app_info_lookup_get_default_for_uri_scheme"
              deprecated="1"
              deprecated-version="2.28">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.c"
             line="4986">Gets the default application for launching applications
using this URI scheme for a particular [iface@GioUnix.DesktopAppInfoLookup]
implementation.

The [iface@GioUnix.DesktopAppInfoLookup] interface and this function is used
to implement [func@Gio.AppInfo.get_default_for_uri_scheme] backends
in a GIO module. There is no reason for applications to use it
directly. Applications should use
[func@Gio.AppInfo.get_default_for_uri_scheme].</doc>
        <doc-deprecated xml:space="preserve">The [iface@GioUnix.DesktopAppInfoLookup] interface is
  deprecated and unused by GIO.</doc-deprecated>
        <source-position filename="gio/gdesktopappinfo.h" line="150"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.c"
               line="5001">[iface@Gio.AppInfo] for given
  @uri_scheme or `NULL` on error.</doc>
          <type name="Gio.AppInfo" c:type="GAppInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="lookup" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="4988">a [iface@GioUnix.DesktopAppInfoLookup]</doc>
            <type name="DesktopAppInfoLookup" c:type="GDesktopAppInfoLookup*"/>
          </instance-parameter>
          <parameter name="uri_scheme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="4989">a string containing a URI scheme.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DesktopAppInfoLookupIface"
            c:type="GDesktopAppInfoLookupIface"
            glib:is-gtype-struct-for="DesktopAppInfoLookup">
      <doc xml:space="preserve"
           filename="gio/gdesktopappinfo.h"
           line="127">Interface that is used by backends to associate default
handlers with URI schemes.</doc>
      <source-position filename="gio/gdesktopappinfo.h" line="144"/>
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_default_for_uri_scheme">
        <doc xml:space="preserve"
             filename="gio/gdesktopappinfo.h"
             line="129">Virtual method for
 g_desktop_app_info_lookup_get_default_for_uri_scheme().</doc>
        <callback name="get_default_for_uri_scheme">
          <source-position filename="gio/gdesktopappinfo.h" line="142"/>
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve"
                 filename="gio/gdesktopappinfo.c"
                 line="5001">[iface@Gio.AppInfo] for given
  @uri_scheme or `NULL` on error.</doc>
            <type name="Gio.AppInfo" c:type="GAppInfo*"/>
          </return-value>
          <parameters>
            <parameter name="lookup" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gio/gdesktopappinfo.c"
                   line="4988">a [iface@GioUnix.DesktopAppInfoLookup]</doc>
              <type name="DesktopAppInfoLookup"
                    c:type="GDesktopAppInfoLookup*"/>
            </parameter>
            <parameter name="uri_scheme" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gio/gdesktopappinfo.c"
                   line="4989">a string containing a URI scheme.</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <callback name="DesktopAppLaunchCallback"
              c:type="GDesktopAppLaunchCallback">
      <doc xml:space="preserve"
           filename="gio/gdesktopappinfo.h"
           line="153">During invocation, g_desktop_app_info_launch_uris_as_manager() may
create one or more child processes.  This callback is invoked once
for each, providing the process ID.</doc>
      <source-position filename="gio/gdesktopappinfo.h" line="163"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="appinfo" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.h"
               line="155">a #GDesktopAppInfo</doc>
          <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
        </parameter>
        <parameter name="pid" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.h"
               line="156">Process identifier</doc>
          <type name="GLib.Pid" c:type="GPid"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="gio/gdesktopappinfo.h"
               line="157">User data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="FDMessage"
           c:symbol-prefix="fd_message"
           c:type="GUnixFDMessage"
           parent="Gio.SocketControlMessage"
           glib:type-name="GUnixFDMessage"
           glib:get-type="g_unix_fd_message_get_type"
           glib:type-struct="FDMessageClass">
      <doc xml:space="preserve"
           filename="gio/gunixfdmessage.c"
           line="17">This [class@Gio.SocketControlMessage] contains a [class@Gio.UnixFDList].
It may be sent using [method@Gio.Socket.send_message] and received using
[method@Gio.Socket.receive_message] over UNIX sockets (ie: sockets in the
`G_SOCKET_FAMILY_UNIX` family). The file descriptors are copied
between processes by the kernel.

For an easier way to send and receive file descriptors over
stream-oriented UNIX sockets, see [method@Gio.UnixConnection.send_fd] and
[method@Gio.UnixConnection.receive_fd].

Note that `&lt;gio/gunixfdmessage.h&gt;` belongs to the UNIX-specific GIO
interfaces, thus you have to use the `gio-unix-2.0.pc` pkg-config
file or the `GioUnix-2.0` GIR namespace when using it.</doc>
      <source-position filename="gio/gunixfdmessage.h" line="58"/>
      <constructor name="new"
                   c:identifier="g_unix_fd_message_new"
                   version="2.22">
        <doc xml:space="preserve"
             filename="gio/gunixfdmessage.c"
             line="229">Creates a new #GUnixFDMessage containing an empty file descriptor
list.</doc>
        <source-position filename="gio/gunixfdmessage.h" line="71"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gunixfdmessage.c"
               line="235">a new #GUnixFDMessage</doc>
          <type name="Gio.SocketControlMessage"
                c:type="GSocketControlMessage*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_fd_list"
                   c:identifier="g_unix_fd_message_new_with_fd_list"
                   version="2.24">
        <doc xml:space="preserve"
             filename="gio/gunixfdmessage.c"
             line="245">Creates a new #GUnixFDMessage containing @list.</doc>
        <source-position filename="gio/gunixfdmessage.h" line="69"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gunixfdmessage.c"
               line="251">a new #GUnixFDMessage</doc>
          <type name="Gio.SocketControlMessage"
                c:type="GSocketControlMessage*"/>
        </return-value>
        <parameters>
          <parameter name="fd_list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixfdmessage.c"
                 line="247">a #GUnixFDList</doc>
            <type name="Gio.UnixFDList" c:type="GUnixFDList*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="append_fd"
              c:identifier="g_unix_fd_message_append_fd"
              version="2.22"
              throws="1">
        <doc xml:space="preserve"
             filename="gio/gunixfdmessage.c"
             line="301">Adds a file descriptor to @message.

The file descriptor is duplicated using dup(). You keep your copy
of the descriptor and the copy contained in @message will be closed
when @message is finalized.

A possible cause of failure is exceeding the per-process or
system-wide file descriptor limit.</doc>
        <source-position filename="gio/gunixfdmessage.h" line="80"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixfdmessage.c"
               line="316">%TRUE in case of success, else %FALSE (and @error is set)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixfdmessage.c"
                 line="303">a #GUnixFDMessage</doc>
            <type name="FDMessage" c:type="GUnixFDMessage*"/>
          </instance-parameter>
          <parameter name="fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixfdmessage.c"
                 line="304">a valid open file descriptor</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_fd_list"
              c:identifier="g_unix_fd_message_get_fd_list"
              glib:get-property="fd-list"
              version="2.24">
        <doc xml:space="preserve"
             filename="gio/gunixfdmessage.c"
             line="155">Gets the #GUnixFDList contained in @message.  This function does not
return a reference to the caller, but the returned list is valid for
the lifetime of @message.</doc>
        <source-position filename="gio/gunixfdmessage.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixfdmessage.c"
               line="163">the #GUnixFDList from @message</doc>
          <type name="Gio.UnixFDList" c:type="GUnixFDList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixfdmessage.c"
                 line="157">a #GUnixFDMessage</doc>
            <type name="FDMessage" c:type="GUnixFDMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="steal_fds"
              c:identifier="g_unix_fd_message_steal_fds"
              version="2.22">
        <doc xml:space="preserve"
             filename="gio/gunixfdmessage.c"
             line="263">Returns the array of file descriptors that is contained in this
object.

After this call, the descriptors are no longer contained in
@message. Further calls will return an empty list (unless more
descriptors have been added).

The return result of this function must be freed with g_free().
The caller is also responsible for closing all of the file
descriptors.

If @length is non-%NULL then it is set to the number of file
descriptors in the returned array. The returned array is also
terminated with -1.

This function never returns %NULL. In case there are no file
descriptors contained in @message, an empty array is returned.</doc>
        <source-position filename="gio/gunixfdmessage.h" line="77"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gunixfdmessage.c"
               line="287">an array of file
    descriptors</doc>
          <array length="0" zero-terminated="0" c:type="gint*">
            <type name="gint" c:type="gint"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixfdmessage.c"
                 line="265">a #GUnixFDMessage</doc>
            <type name="FDMessage" c:type="GUnixFDMessage*"/>
          </instance-parameter>
          <parameter name="length"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gio/gunixfdmessage.c"
                 line="266">pointer to the length of the returned
    array, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <property name="fd-list"
                version="2.22"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_fd_list">
        <doc xml:space="preserve"
             filename="gio/gunixfdmessage.c"
             line="216">The [class@Gio.UnixFDList] object to send with the message.</doc>
        <type name="Gio.UnixFDList"/>
      </property>
      <field name="parent_instance">
        <type name="Gio.SocketControlMessage" c:type="GSocketControlMessage"/>
      </field>
      <field name="priv">
        <type name="FDMessagePrivate" c:type="GUnixFDMessagePrivate*"/>
      </field>
    </class>
    <record name="FDMessageClass"
            c:type="GUnixFDMessageClass"
            glib:is-gtype-struct-for="FDMessage">
      <source-position filename="gio/gunixfdmessage.h" line="58"/>
      <field name="parent_class">
        <type name="Gio.SocketControlMessageClass"
              c:type="GSocketControlMessageClass"/>
      </field>
      <field name="_g_reserved1" introspectable="0">
        <callback name="_g_reserved1">
          <source-position filename="gio/gunixfdmessage.h" line="56"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_g_reserved2" introspectable="0">
        <callback name="_g_reserved2">
          <source-position filename="gio/gunixfdmessage.h" line="57"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="FDMessagePrivate"
            c:type="GUnixFDMessagePrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gio/gunixfdmessage.h" line="43"/>
    </record>
    <function-macro name="FD_MESSAGE"
                    c:identifier="G_UNIX_FD_MESSAGE"
                    introspectable="0">
      <source-position filename="gio/gunixfdmessage.h" line="32"/>
      <parameters>
        <parameter name="inst">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FD_MESSAGE_CLASS"
                    c:identifier="G_UNIX_FD_MESSAGE_CLASS"
                    introspectable="0">
      <source-position filename="gio/gunixfdmessage.h" line="34"/>
      <parameters>
        <parameter name="class">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FD_MESSAGE_GET_CLASS"
                    c:identifier="G_UNIX_FD_MESSAGE_GET_CLASS"
                    introspectable="0">
      <source-position filename="gio/gunixfdmessage.h" line="40"/>
      <parameters>
        <parameter name="inst">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILE_DESCRIPTOR_BASED"
                    c:identifier="G_FILE_DESCRIPTOR_BASED"
                    introspectable="0">
      <source-position filename="gio/gfiledescriptorbased.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILE_DESCRIPTOR_BASED_GET_IFACE"
                    c:identifier="G_FILE_DESCRIPTOR_BASED_GET_IFACE"
                    introspectable="0">
      <source-position filename="gio/gfiledescriptorbased.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <interface name="FileDescriptorBased"
               c:symbol-prefix="file_descriptor_based"
               c:type="GFileDescriptorBased"
               version="2.24"
               glib:type-name="GFileDescriptorBased"
               glib:get-type="g_file_descriptor_based_get_type"
               glib:type-struct="FileDescriptorBasedIface">
      <doc xml:space="preserve"
           filename="gio/gfiledescriptorbased.c"
           line="28">`GFileDescriptorBased` is an interface for file descriptor based IO.

It is implemented by streams (implementations of [class@Gio.InputStream] or
[class@Gio.OutputStream]) that are based on file descriptors.

Note that `&lt;gio/gfiledescriptorbased.h&gt;` belongs to the UNIX-specific
GIO interfaces, thus you have to use the `gio-unix-2.0.pc` pkg-config
file or the `GioUnix-2.0` GIR namespace when using it.</doc>
      <source-position filename="gio/gfiledescriptorbased.h" line="52"/>
      <virtual-method name="get_fd" invoker="get_fd" version="2.24">
        <doc xml:space="preserve"
             filename="gio/gfiledescriptorbased.c"
             line="51">Gets the underlying file descriptor.</doc>
        <source-position filename="gio/gfiledescriptorbased.h" line="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gfiledescriptorbased.c"
               line="57">The file descriptor</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="fd_based" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gfiledescriptorbased.c"
                 line="53">a #GFileDescriptorBased.</doc>
            <type name="FileDescriptorBased" c:type="GFileDescriptorBased*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_fd"
              c:identifier="g_file_descriptor_based_get_fd"
              version="2.24">
        <doc xml:space="preserve"
             filename="gio/gfiledescriptorbased.c"
             line="51">Gets the underlying file descriptor.</doc>
        <source-position filename="gio/gfiledescriptorbased.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gfiledescriptorbased.c"
               line="57">The file descriptor</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="fd_based" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gfiledescriptorbased.c"
                 line="53">a #GFileDescriptorBased.</doc>
            <type name="FileDescriptorBased" c:type="GFileDescriptorBased*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <record name="FileDescriptorBasedIface"
            c:type="GFileDescriptorBasedIface"
            glib:is-gtype-struct-for="FileDescriptorBased">
      <doc xml:space="preserve"
           filename="gio/gfiledescriptorbased.h"
           line="39">An interface for file descriptor based io objects.</doc>
      <source-position filename="gio/gfiledescriptorbased.h" line="52"/>
      <field name="g_iface">
        <doc xml:space="preserve"
             filename="gio/gfiledescriptorbased.h"
             line="41">The parent interface.</doc>
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_fd">
        <doc xml:space="preserve"
             filename="gio/gfiledescriptorbased.h"
             line="42">Gets the underlying file descriptor.</doc>
        <callback name="get_fd">
          <source-position filename="gio/gfiledescriptorbased.h" line="51"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gfiledescriptorbased.c"
                 line="57">The file descriptor</doc>
            <type name="gint" c:type="int"/>
          </return-value>
          <parameters>
            <parameter name="fd_based" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gio/gfiledescriptorbased.c"
                   line="53">a #GFileDescriptorBased.</doc>
              <type name="FileDescriptorBased" c:type="GFileDescriptorBased*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <function-macro name="INPUT_STREAM"
                    c:identifier="G_UNIX_INPUT_STREAM"
                    introspectable="0">
      <source-position filename="gio/gunixinputstream.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INPUT_STREAM_CLASS"
                    c:identifier="G_UNIX_INPUT_STREAM_CLASS"
                    introspectable="0">
      <source-position filename="gio/gunixinputstream.h" line="32"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INPUT_STREAM_GET_CLASS"
                    c:identifier="G_UNIX_INPUT_STREAM_GET_CLASS"
                    introspectable="0">
      <source-position filename="gio/gunixinputstream.h" line="35"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_DESKTOP_APP_INFO"
                    c:identifier="G_IS_DESKTOP_APP_INFO"
                    introspectable="0">
      <source-position filename="gio/gdesktopappinfo.h" line="33"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_DESKTOP_APP_INFO_CLASS"
                    c:identifier="G_IS_DESKTOP_APP_INFO_CLASS"
                    introspectable="0">
      <source-position filename="gio/gdesktopappinfo.h" line="34"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_DESKTOP_APP_INFO_LOOKUP"
                    c:identifier="G_IS_DESKTOP_APP_INFO_LOOKUP"
                    introspectable="0">
      <source-position filename="gio/gdesktopappinfo.h" line="113"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILE_DESCRIPTOR_BASED"
                    c:identifier="G_IS_FILE_DESCRIPTOR_BASED"
                    introspectable="0">
      <source-position filename="gio/gfiledescriptorbased.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_UNIX_FD_MESSAGE"
                    c:identifier="G_IS_UNIX_FD_MESSAGE"
                    introspectable="0">
      <source-position filename="gio/gunixfdmessage.h" line="36"/>
      <parameters>
        <parameter name="inst">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_UNIX_FD_MESSAGE_CLASS"
                    c:identifier="G_IS_UNIX_FD_MESSAGE_CLASS"
                    introspectable="0">
      <source-position filename="gio/gunixfdmessage.h" line="38"/>
      <parameters>
        <parameter name="class">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_UNIX_INPUT_STREAM"
                    c:identifier="G_IS_UNIX_INPUT_STREAM"
                    introspectable="0">
      <source-position filename="gio/gunixinputstream.h" line="33"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_UNIX_INPUT_STREAM_CLASS"
                    c:identifier="G_IS_UNIX_INPUT_STREAM_CLASS"
                    introspectable="0">
      <source-position filename="gio/gunixinputstream.h" line="34"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_UNIX_MOUNT_MONITOR"
                    c:identifier="G_IS_UNIX_MOUNT_MONITOR"
                    introspectable="0">
      <source-position filename="gio/gunixmounts.h" line="73"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_UNIX_MOUNT_MONITOR_CLASS"
                    c:identifier="G_IS_UNIX_MOUNT_MONITOR_CLASS"
                    introspectable="0">
      <source-position filename="gio/gunixmounts.h" line="74"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_UNIX_OUTPUT_STREAM"
                    c:identifier="G_IS_UNIX_OUTPUT_STREAM"
                    introspectable="0">
      <source-position filename="gio/gunixoutputstream.h" line="33"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_UNIX_OUTPUT_STREAM_CLASS"
                    c:identifier="G_IS_UNIX_OUTPUT_STREAM_CLASS"
                    introspectable="0">
      <source-position filename="gio/gunixoutputstream.h" line="34"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <class name="InputStream"
           c:symbol-prefix="input_stream"
           c:type="GUnixInputStream"
           parent="Gio.InputStream"
           glib:type-name="GUnixInputStream"
           glib:get-type="g_unix_input_stream_get_type"
           glib:type-struct="InputStreamClass">
      <doc xml:space="preserve"
           filename="gio/gunixinputstream.c"
           line="41">`GUnixInputStream` implements [class@Gio.InputStream] for reading from a UNIX
file descriptor, including asynchronous operations. (If the file
descriptor refers to a socket or pipe, this will use `poll()` to do
asynchronous I/O. If it refers to a regular file, it will fall back
to doing asynchronous I/O in another thread.)

Note that `&lt;gio/gunixinputstream.h&gt;` belongs to the UNIX-specific GIO
interfaces, thus you have to use the `gio-unix-2.0.pc` pkg-config
file or the `GioUnix-2.0` GIR namespace when using it.</doc>
      <source-position filename="gio/gunixinputstream.h" line="62"/>
      <implements name="Gio.PollableInputStream"/>
      <implements name="FileDescriptorBased"/>
      <constructor name="new" c:identifier="g_unix_input_stream_new">
        <doc xml:space="preserve"
             filename="gio/gunixinputstream.c"
             line="224">Creates a new #GUnixInputStream for the given @fd.

If @close_fd is %TRUE, the file descriptor will be closed
when the stream is closed.</doc>
        <source-position filename="gio/gunixinputstream.h" line="68"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gunixinputstream.c"
               line="234">a new #GUnixInputStream</doc>
          <type name="Gio.InputStream" c:type="GInputStream*"/>
        </return-value>
        <parameters>
          <parameter name="fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixinputstream.c"
                 line="226">a UNIX file descriptor</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="close_fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixinputstream.c"
                 line="227">%TRUE to close the file descriptor when done</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_close_fd"
              c:identifier="g_unix_input_stream_get_close_fd"
              glib:get-property="close-fd"
              version="2.20">
        <doc xml:space="preserve"
             filename="gio/gunixinputstream.c"
             line="276">Returns whether the file descriptor of @stream will be
closed when the stream is closed.</doc>
        <source-position filename="gio/gunixinputstream.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixinputstream.c"
               line="283">%TRUE if the file descriptor is closed when done</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixinputstream.c"
                 line="278">a #GUnixInputStream</doc>
            <type name="InputStream" c:type="GUnixInputStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fd"
              c:identifier="g_unix_input_stream_get_fd"
              glib:get-property="fd"
              version="2.20">
        <doc xml:space="preserve"
             filename="gio/gunixinputstream.c"
             line="295">Return the UNIX file descriptor that the stream reads from.</doc>
        <source-position filename="gio/gunixinputstream.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixinputstream.c"
               line="301">The file descriptor of @stream</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixinputstream.c"
                 line="297">a #GUnixInputStream</doc>
            <type name="InputStream" c:type="GUnixInputStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_close_fd"
              c:identifier="g_unix_input_stream_set_close_fd"
              glib:set-property="close-fd"
              version="2.20">
        <doc xml:space="preserve"
             filename="gio/gunixinputstream.c"
             line="252">Sets whether the file descriptor of @stream shall be closed
when the stream is closed.</doc>
        <source-position filename="gio/gunixinputstream.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixinputstream.c"
                 line="254">a #GUnixInputStream</doc>
            <type name="InputStream" c:type="GUnixInputStream*"/>
          </instance-parameter>
          <parameter name="close_fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixinputstream.c"
                 line="255">%TRUE to close the file descriptor when done</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="close-fd"
                version="2.20"
                writable="1"
                transfer-ownership="none"
                setter="set_close_fd"
                getter="get_close_fd"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gio/gunixinputstream.c"
             line="140">Whether to close the file descriptor when the stream is closed.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="fd"
                version="2.20"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_fd"
                default-value="-1">
        <doc xml:space="preserve"
             filename="gio/gunixinputstream.c"
             line="127">The file descriptor that the stream reads from.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent_instance">
        <type name="Gio.InputStream" c:type="GInputStream"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="InputStreamPrivate" c:type="GUnixInputStreamPrivate*"/>
      </field>
    </class>
    <record name="InputStreamClass"
            c:type="GUnixInputStreamClass"
            glib:is-gtype-struct-for="InputStream">
      <source-position filename="gio/gunixinputstream.h" line="62"/>
      <field name="parent_class">
        <type name="Gio.InputStreamClass" c:type="GInputStreamClass"/>
      </field>
      <field name="_g_reserved1" introspectable="0">
        <callback name="_g_reserved1">
          <source-position filename="gio/gunixinputstream.h" line="57"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_g_reserved2" introspectable="0">
        <callback name="_g_reserved2">
          <source-position filename="gio/gunixinputstream.h" line="58"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_g_reserved3" introspectable="0">
        <callback name="_g_reserved3">
          <source-position filename="gio/gunixinputstream.h" line="59"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_g_reserved4" introspectable="0">
        <callback name="_g_reserved4">
          <source-position filename="gio/gunixinputstream.h" line="60"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_g_reserved5" introspectable="0">
        <callback name="_g_reserved5">
          <source-position filename="gio/gunixinputstream.h" line="61"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="InputStreamPrivate"
            c:type="GUnixInputStreamPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gio/gunixinputstream.h" line="39"/>
    </record>
    <function-macro name="MOUNT_MONITOR"
                    c:identifier="G_UNIX_MOUNT_MONITOR"
                    introspectable="0">
      <source-position filename="gio/gunixmounts.h" line="71"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MOUNT_MONITOR_CLASS"
                    c:identifier="G_UNIX_MOUNT_MONITOR_CLASS"
                    introspectable="0">
      <source-position filename="gio/gunixmounts.h" line="72"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <record name="MountEntry"
            c:type="GUnixMountEntry"
            opaque="1"
            glib:type-name="GUnixMountEntry"
            glib:get-type="g_unix_mount_entry_get_type"
            c:symbol-prefix="mount_entry">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.h"
           line="31">Defines a Unix mount entry (e.g. `/media/cdrom`).
This corresponds roughly to a mtab entry.</doc>
      <source-position filename="gio/gunixmounts.h" line="37"/>
      <method name="compare"
              c:identifier="g_unix_mount_entry_compare"
              version="2.84">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2824">Compares two Unix mounts.</doc>
        <source-position filename="gio/gunixmounts.h" line="96"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2831">`1`, `0` or `-1` if @mount1 is greater than, equal to,
   or less than @mount2, respectively</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="2826">first [struct@GioUnix.MountEntry] to compare</doc>
            <type name="MountEntry" c:type="GUnixMountEntry*"/>
          </instance-parameter>
          <parameter name="mount2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="2827">second [struct@GioUnix.MountEntry] to compare</doc>
            <type name="MountEntry" c:type="GUnixMountEntry*"/>
          </parameter>
        </parameters>
      </method>
      <method name="copy"
              c:identifier="g_unix_mount_entry_copy"
              version="2.84">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2732">Makes a copy of @mount_entry.</doc>
        <source-position filename="gio/gunixmounts.h" line="85"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2738">a new [struct@GioUnix.MountEntry]</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="2734">a [struct@GioUnix.MountEntry]</doc>
            <type name="MountEntry" c:type="GUnixMountEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="g_unix_mount_entry_free"
              version="2.84">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2695">Frees a Unix mount.</doc>
        <source-position filename="gio/gunixmounts.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="2697">a [struct@GioUnix.MountEntry]</doc>
            <type name="MountEntry" c:type="GUnixMountEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_device_path"
              c:identifier="g_unix_mount_entry_get_device_path"
              version="2.84">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2917">Gets the device path for a Unix mount.</doc>
        <source-position filename="gio/gunixmounts.h" line="107"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2923">a string containing the device path</doc>
          <type name="filename" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="2919">a [struct@GioUnix.MountEntry]</doc>
            <type name="MountEntry" c:type="GUnixMountEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fs_type"
              c:identifier="g_unix_mount_entry_get_fs_type"
              version="2.84">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2993">Gets the filesystem type for the Unix mount.</doc>
        <source-position filename="gio/gunixmounts.h" line="117"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2999">a string containing the file system type</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="2995">a [struct@GioUnix.MountEntry]</doc>
            <type name="MountEntry" c:type="GUnixMountEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mount_path"
              c:identifier="g_unix_mount_entry_get_mount_path"
              version="2.84">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2885">Gets the mount path for a Unix mount.</doc>
        <source-position filename="gio/gunixmounts.h" line="102"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2891">the mount path for @mount_entry</doc>
          <type name="filename" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="2887">a [struct@GioUnix.MountEntry] to get the mount path for</doc>
            <type name="MountEntry" c:type="GUnixMountEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_options"
              c:identifier="g_unix_mount_entry_get_options"
              version="2.84">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3032">Gets a comma separated list of mount options for the Unix mount.

For example: `rw,relatime,seclabel,data=ordered`.

This is similar to [method@GioUnix.MountPoint.get_options], but it takes
a [struct@GioUnix.MountEntry] as an argument.</doc>
        <source-position filename="gio/gunixmounts.h" line="122"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3043">a string containing the options, or `NULL` if not
   available.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3034">a [struct@GioUnix.MountEntry]</doc>
            <type name="MountEntry" c:type="GUnixMountEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_root_path"
              c:identifier="g_unix_mount_entry_get_root_path"
              version="2.84">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2956">Gets the root of the mount within the filesystem. This is useful e.g. for
mounts created by bind operation, or btrfs subvolumes.

For example, the root path is equal to `/` for a mount created by
`mount /dev/sda1 /mnt/foo` and `/bar` for
`mount --bind /mnt/foo/bar /mnt/bar`.</doc>
        <source-position filename="gio/gunixmounts.h" line="112"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2967">a string containing the root, or `NULL` if not supported</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="2958">a [struct@GioUnix.MountEntry]</doc>
            <type name="MountEntry" c:type="GUnixMountEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="guess_can_eject"
              c:identifier="g_unix_mount_entry_guess_can_eject"
              version="2.84">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3653">Guesses whether a Unix mount entry can be ejected.</doc>
        <source-position filename="gio/gunixmounts.h" line="137"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3659">true if @mount_entry is deemed to be ejectable; false otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3655">a [struct@GioUnix.MountEntry]</doc>
            <type name="MountEntry" c:type="GUnixMountEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="guess_icon"
              c:identifier="g_unix_mount_entry_guess_icon"
              version="2.84">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3540">Guesses the icon of a Unix mount entry.</doc>
        <source-position filename="gio/gunixmounts.h" line="152"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3546">a [iface@Gio.Icon]</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3542">a [struct@GioUnix.MountEntry]</doc>
            <type name="MountEntry" c:type="GUnixMountEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="guess_name"
              c:identifier="g_unix_mount_entry_guess_name"
              version="2.84">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3501">Guesses the name of a Unix mount entry.

The result is a translated string.</doc>
        <source-position filename="gio/gunixmounts.h" line="147"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3509">a newly allocated translated string</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3503">a [struct@GioUnix.MountEntry]</doc>
            <type name="MountEntry" c:type="GUnixMountEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="guess_should_display"
              c:identifier="g_unix_mount_entry_guess_should_display"
              version="2.84">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3690">Guesses whether a Unix mount entry should be displayed in the UI.</doc>
        <source-position filename="gio/gunixmounts.h" line="142"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3696">true if @mount_entry is deemed to be displayable; false otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3692">a [struct@GioUnix.MountEntry]</doc>
            <type name="MountEntry" c:type="GUnixMountEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="guess_symbolic_icon"
              c:identifier="g_unix_mount_entry_guess_symbolic_icon"
              version="2.84">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3571">Guesses the symbolic icon of a Unix mount entry.</doc>
        <source-position filename="gio/gunixmounts.h" line="157"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3577">a [iface@Gio.Icon]</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3573">a [struct@GioUnix.MountEntry]</doc>
            <type name="MountEntry" c:type="GUnixMountEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_readonly"
              c:identifier="g_unix_mount_entry_is_readonly"
              version="2.84">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3070">Checks if a Unix mount is mounted read only.</doc>
        <source-position filename="gio/gunixmounts.h" line="127"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3076">true if @mount_entry is read only; false otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3072">a [struct@GioUnix.MountEntry]</doc>
            <type name="MountEntry" c:type="GUnixMountEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_system_internal"
              c:identifier="g_unix_mount_entry_is_system_internal"
              version="2.84">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3109">Checks if a Unix mount is a system mount.

This is the Boolean OR of
[func@GioUnix.is_system_fs_type], [func@GioUnix.is_system_device_path] and
[func@GioUnix.is_mount_path_system_internal] on @mount_entry’s properties.

The definition of what a ‘system’ mount entry is may change over time as new
file system types and device paths are ignored.</doc>
        <source-position filename="gio/gunixmounts.h" line="132"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3122">true if the Unix mount is for a system path; false otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3111">a [struct@GioUnix.MountEntry]</doc>
            <type name="MountEntry" c:type="GUnixMountEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="at" c:identifier="g_unix_mount_entry_at" version="2.84">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="1913">Gets a [struct@GioUnix.MountEntry] for a given mount path.

If @time_read is set, it will be filled with a Unix timestamp for checking
if the mounts have changed since with
[func@GioUnix.mount_entries_changed_since].

If more mounts have the same mount path, the last matching mount
is returned.

This will return `NULL` if there is no mount point at @mount_path.</doc>
        <source-position filename="gio/gunixmounts.h" line="216"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="1929">a [struct@GioUnix.MountEntry]</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </return-value>
        <parameters>
          <parameter name="mount_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="1915">path for a possible Unix mount</doc>
            <type name="filename" c:type="const char*"/>
          </parameter>
          <parameter name="time_read"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="1916">return location for a timestamp</doc>
            <type name="guint64" c:type="guint64*"/>
          </parameter>
        </parameters>
      </function>
      <function name="for"
                c:identifier="g_unix_mount_entry_for"
                version="2.84">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="1989">Gets a [struct@GioUnix.MountEntry] for a given file path.

If @time_read is set, it will be filled with a Unix timestamp for checking
if the mounts have changed since with
[func@GioUnix.mount_entries_changed_since].

If more mounts have the same mount path, the last matching mount
is returned.

This will return `NULL` if looking up the mount entry fails, if
@file_path doesn’t exist or there is an I/O error.</doc>
        <source-position filename="gio/gunixmounts.h" line="223"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2006">a [struct@GioUnix.MountEntry]</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </return-value>
        <parameters>
          <parameter name="file_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="1991">file path on some Unix mount</doc>
            <type name="filename" c:type="const char*"/>
          </parameter>
          <parameter name="time_read"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="1992">return location for a timestamp</doc>
            <type name="guint64" c:type="guint64*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <class name="MountMonitor"
           c:symbol-prefix="mount_monitor"
           c:type="GUnixMountMonitor"
           parent="GObject.Object"
           glib:type-name="GUnixMountMonitor"
           glib:get-type="g_unix_mount_monitor_get_type"
           glib:type-struct="MountMonitorClass">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.h"
           line="55">Watches for changes to the set of mount entries and mount points in the
system.

Connect to the [signal@GioUnix.MountMonitor::mounts-changed] signal to be
notified of changes to the [struct@GioUnix.MountEntry] list.

Connect to the [signal@GioUnix.MountMonitor::mountpoints-changed] signal to
be notified of changes to the [struct@GioUnix.MountPoint] list.</doc>
      <source-position filename="gio/gunixmounts.h" line="68"/>
      <constructor name="new"
                   c:identifier="g_unix_mount_monitor_new"
                   deprecated="1"
                   deprecated-version="2.44">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2663">Deprecated alias for [func@GioUnix.MountMonitor.get].

This function was never a true constructor, which is why it was
renamed.</doc>
        <doc-deprecated xml:space="preserve">Use [func@GioUnix.MountMonitor.get] instead.</doc-deprecated>
        <source-position filename="gio/gunixmounts.h" line="239"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2671">a [class@GioUnix.MountMonitor]</doc>
          <type name="MountMonitor" c:type="GUnixMountMonitor*"/>
        </return-value>
      </constructor>
      <function name="get"
                c:identifier="g_unix_mount_monitor_get"
                version="2.44">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2638">Gets the [class@GioUnix.MountMonitor] for the current thread-default main
context.

The mount monitor can be used to monitor for changes to the list of
mounted filesystems as well as the list of mount points (ie: fstab
entries).

You must only call [method@GObject.Object.unref] on the return value from
under the same main context as you called this function.</doc>
        <source-position filename="gio/gunixmounts.h" line="237"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2651">the [class@GioUnix.MountMonitor]</doc>
          <type name="MountMonitor" c:type="GUnixMountMonitor*"/>
        </return-value>
      </function>
      <method name="set_rate_limit"
              c:identifier="g_unix_mount_monitor_set_rate_limit"
              version="2.18"
              deprecated="1"
              deprecated-version="2.44">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2616">This function does nothing.

Before 2.44, this was a partially-effective way of controlling the
rate at which events would be reported under some uncommon
circumstances.  Since @mount_monitor is a singleton, it also meant
that calling this function would have side effects for other users of
the monitor.</doc>
        <doc-deprecated xml:space="preserve">This function does nothing. Don’t call it.</doc-deprecated>
        <source-position filename="gio/gunixmounts.h" line="241"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="2618">a [class@GioUnix.MountMonitor]</doc>
            <type name="MountMonitor" c:type="GUnixMountMonitor*"/>
          </instance-parameter>
          <parameter name="limit_msec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="2619">a integer with the limit (in milliseconds) to poll for changes</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="mountpoints-changed" when="last">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2595">Emitted when the Unix mount points have changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="mounts-changed" when="last">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2580">Emitted when the Unix mount entries have changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="MountMonitorClass"
            c:type="GUnixMountMonitorClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="MountMonitor">
      <source-position filename="gio/gunixmounts.h" line="68"/>
    </record>
    <record name="MountPoint"
            c:type="GUnixMountPoint"
            opaque="1"
            glib:type-name="GUnixMountPoint"
            glib:get-type="g_unix_mount_point_get_type"
            c:symbol-prefix="mount_point">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.h"
           line="43">Defines a Unix mount point (e.g. `/dev`).
This corresponds roughly to a fstab entry.</doc>
      <source-position filename="gio/gunixmounts.h" line="49"/>
      <method name="compare" c:identifier="g_unix_mount_point_compare">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3134">Compares two Unix mount points.</doc>
        <source-position filename="gio/gunixmounts.h" line="163"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3141">`1`, `0` or `-1` if @mount1 is greater than, equal to,
   or less than @mount2, respectively</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3136">a [struct@GioUnix.MountPoint]</doc>
            <type name="MountPoint" c:type="GUnixMountPoint*"/>
          </instance-parameter>
          <parameter name="mount2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3137">a [struct@GioUnix.MountPoint]</doc>
            <type name="MountPoint" c:type="GUnixMountPoint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="copy"
              c:identifier="g_unix_mount_point_copy"
              version="2.54">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2778">Makes a copy of @mount_point.</doc>
        <source-position filename="gio/gunixmounts.h" line="90"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2784">a new [struct@GioUnix.MountPoint]</doc>
          <type name="MountPoint" c:type="GUnixMountPoint*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_point" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="2780">a [struct@GioUnix.MountPoint]</doc>
            <type name="MountPoint" c:type="GUnixMountPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="g_unix_mount_point_free">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2760">Frees a Unix mount point.</doc>
        <source-position filename="gio/gunixmounts.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_point" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="2762">Unix mount point to free.</doc>
            <type name="MountPoint" c:type="GUnixMountPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_device_path"
              c:identifier="g_unix_mount_point_get_device_path">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3199">Gets the device path for a Unix mount point.</doc>
        <source-position filename="gio/gunixmounts.h" line="168"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3205">a string containing the device path</doc>
          <type name="filename" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_point" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3201">a [struct@GioUnix.MountPoint]</doc>
            <type name="MountPoint" c:type="GUnixMountPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fs_type" c:identifier="g_unix_mount_point_get_fs_type">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3215">Gets the file system type for the mount point.</doc>
        <source-position filename="gio/gunixmounts.h" line="170"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3221">a string containing the file system type</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_point" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3217">a [struct@GioUnix.MountPoint]</doc>
            <type name="MountPoint" c:type="GUnixMountPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mount_path"
              c:identifier="g_unix_mount_point_get_mount_path">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3183">Gets the mount path for a Unix mount point.</doc>
        <source-position filename="gio/gunixmounts.h" line="166"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3189">a string containing the mount path</doc>
          <type name="filename" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_point" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3185">a [struct@GioUnix.MountPoint]</doc>
            <type name="MountPoint" c:type="GUnixMountPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_options"
              c:identifier="g_unix_mount_point_get_options"
              version="2.32">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3231">Gets the options for the mount point.</doc>
        <source-position filename="gio/gunixmounts.h" line="172"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3237">a string containing the options</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_point" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3233">a [struct@GioUnix.MountPoint]</doc>
            <type name="MountPoint" c:type="GUnixMountPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="guess_can_eject"
              c:identifier="g_unix_mount_point_guess_can_eject">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3778">Guesses whether a Unix mount point can be ejected.</doc>
        <source-position filename="gio/gunixmounts.h" line="180"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3784">true if @mount_point is deemed to be ejectable; false otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_point" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3780">a [struct@GioUnix.MountPoint]</doc>
            <type name="MountPoint" c:type="GUnixMountPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="guess_icon" c:identifier="g_unix_mount_point_guess_icon">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3609">Guesses the icon of a Unix mount point.</doc>
        <source-position filename="gio/gunixmounts.h" line="184"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3615">a [iface@Gio.Icon]</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_point" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3611">a [struct@GioUnix.MountPoint]</doc>
            <type name="MountPoint" c:type="GUnixMountPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="guess_name" c:identifier="g_unix_mount_point_guess_name">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3586">Guesses the name of a Unix mount point.

The result is a translated string.</doc>
        <source-position filename="gio/gunixmounts.h" line="182"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3594">a newly allocated translated string</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_point" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3588">a [struct@GioUnix.MountPoint]</doc>
            <type name="MountPoint" c:type="GUnixMountPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="guess_symbolic_icon"
              c:identifier="g_unix_mount_point_guess_symbolic_icon"
              version="2.34">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3623">Guesses the symbolic icon of a Unix mount point.</doc>
        <source-position filename="gio/gunixmounts.h" line="186"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3629">a [iface@Gio.Icon]</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_point" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3625">a [struct@GioUnix.MountPoint]</doc>
            <type name="MountPoint" c:type="GUnixMountPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_loopback" c:identifier="g_unix_mount_point_is_loopback">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3280">Checks if a Unix mount point is a loopback device.</doc>
        <source-position filename="gio/gunixmounts.h" line="178"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3286">true if the mount point is a loopback device; false otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_point" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3282">a [struct@GioUnix.MountPoint]</doc>
            <type name="MountPoint" c:type="GUnixMountPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_readonly" c:identifier="g_unix_mount_point_is_readonly">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3248">Checks if a Unix mount point is read only.</doc>
        <source-position filename="gio/gunixmounts.h" line="174"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3254">true if a mount point is read only; false otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_point" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3250">a [struct@GioUnix.MountPoint]</doc>
            <type name="MountPoint" c:type="GUnixMountPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_user_mountable"
              c:identifier="g_unix_mount_point_is_user_mountable">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3264">Checks if a Unix mount point is mountable by the user.</doc>
        <source-position filename="gio/gunixmounts.h" line="176"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3270">true if the mount point is user mountable; false otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mount_point" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="3266">a [struct@GioUnix.MountPoint]</doc>
            <type name="MountPoint" c:type="GUnixMountPoint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="at" c:identifier="g_unix_mount_point_at" version="2.66">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2114">Gets a [struct@GioUnix.MountPoint] for a given mount path.

If @time_read is set, it will be filled with a Unix timestamp for checking if
the mount points have changed since with
[func@GioUnix.mount_points_changed_since].

If more mount points have the same mount path, the last matching mount point
is returned.</doc>
        <source-position filename="gio/gunixmounts.h" line="196"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2128">a [struct@GioUnix.MountPoint], or `NULL`
   if no match is found</doc>
          <type name="MountPoint" c:type="GUnixMountPoint*"/>
        </return-value>
        <parameters>
          <parameter name="mount_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="2116">path for a possible Unix mount point</doc>
            <type name="filename" c:type="const char*"/>
          </parameter>
          <parameter name="time_read"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gio/gunixmounts.c"
                 line="2117">return location for a timestamp</doc>
            <type name="guint64" c:type="guint64*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <function-macro name="OUTPUT_STREAM"
                    c:identifier="G_UNIX_OUTPUT_STREAM"
                    introspectable="0">
      <source-position filename="gio/gunixoutputstream.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTPUT_STREAM_CLASS"
                    c:identifier="G_UNIX_OUTPUT_STREAM_CLASS"
                    introspectable="0">
      <source-position filename="gio/gunixoutputstream.h" line="32"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTPUT_STREAM_GET_CLASS"
                    c:identifier="G_UNIX_OUTPUT_STREAM_GET_CLASS"
                    introspectable="0">
      <source-position filename="gio/gunixoutputstream.h" line="35"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <class name="OutputStream"
           c:symbol-prefix="output_stream"
           c:type="GUnixOutputStream"
           parent="Gio.OutputStream"
           glib:type-name="GUnixOutputStream"
           glib:get-type="g_unix_output_stream_get_type"
           glib:type-struct="OutputStreamClass">
      <doc xml:space="preserve"
           filename="gio/gunixoutputstream.c"
           line="43">`GUnixOutputStream` implements [class@Gio.OutputStream] for writing to a UNIX
file descriptor, including asynchronous operations. (If the file
descriptor refers to a socket or pipe, this will use `poll()` to do
asynchronous I/O. If it refers to a regular file, it will fall back
to doing asynchronous I/O in another thread.)

Note that `&lt;gio/gunixoutputstream.h&gt;` belongs to the UNIX-specific GIO
interfaces, thus you have to use the `gio-unix-2.0.pc` pkg-config file
file or the `GioUnix-2.0` GIR namespace when using it.</doc>
      <source-position filename="gio/gunixoutputstream.h" line="62"/>
      <implements name="Gio.PollableOutputStream"/>
      <implements name="FileDescriptorBased"/>
      <constructor name="new" c:identifier="g_unix_output_stream_new">
        <doc xml:space="preserve"
             filename="gio/gunixoutputstream.c"
             line="224">Creates a new #GUnixOutputStream for the given @fd.

If @close_fd, is %TRUE, the file descriptor will be closed when
the output stream is destroyed.</doc>
        <source-position filename="gio/gunixoutputstream.h" line="68"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gio/gunixoutputstream.c"
               line="234">a new #GOutputStream</doc>
          <type name="Gio.OutputStream" c:type="GOutputStream*"/>
        </return-value>
        <parameters>
          <parameter name="fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixoutputstream.c"
                 line="226">a UNIX file descriptor</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="close_fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixoutputstream.c"
                 line="227">%TRUE to close the file descriptor when done</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_close_fd"
              c:identifier="g_unix_output_stream_get_close_fd"
              glib:get-property="close-fd"
              version="2.20">
        <doc xml:space="preserve"
             filename="gio/gunixoutputstream.c"
             line="276">Returns whether the file descriptor of @stream will be
closed when the stream is closed.</doc>
        <source-position filename="gio/gunixoutputstream.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixoutputstream.c"
               line="283">%TRUE if the file descriptor is closed when done</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixoutputstream.c"
                 line="278">a #GUnixOutputStream</doc>
            <type name="OutputStream" c:type="GUnixOutputStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fd"
              c:identifier="g_unix_output_stream_get_fd"
              glib:get-property="fd"
              version="2.20">
        <doc xml:space="preserve"
             filename="gio/gunixoutputstream.c"
             line="295">Return the UNIX file descriptor that the stream writes to.</doc>
        <source-position filename="gio/gunixoutputstream.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixoutputstream.c"
               line="301">The file descriptor of @stream</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixoutputstream.c"
                 line="297">a #GUnixOutputStream</doc>
            <type name="OutputStream" c:type="GUnixOutputStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_close_fd"
              c:identifier="g_unix_output_stream_set_close_fd"
              glib:set-property="close-fd"
              version="2.20">
        <doc xml:space="preserve"
             filename="gio/gunixoutputstream.c"
             line="252">Sets whether the file descriptor of @stream shall be closed
when the stream is closed.</doc>
        <source-position filename="gio/gunixoutputstream.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixoutputstream.c"
                 line="254">a #GUnixOutputStream</doc>
            <type name="OutputStream" c:type="GUnixOutputStream*"/>
          </instance-parameter>
          <parameter name="close_fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gio/gunixoutputstream.c"
                 line="255">%TRUE to close the file descriptor when done</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="close-fd"
                version="2.20"
                writable="1"
                transfer-ownership="none"
                setter="set_close_fd"
                getter="get_close_fd"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gio/gunixoutputstream.c"
             line="139">Whether to close the file descriptor when the stream is closed.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="fd"
                version="2.20"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_fd"
                default-value="-1">
        <doc xml:space="preserve"
             filename="gio/gunixoutputstream.c"
             line="126">The file descriptor that the stream writes to.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent_instance">
        <type name="Gio.OutputStream" c:type="GOutputStream"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="OutputStreamPrivate" c:type="GUnixOutputStreamPrivate*"/>
      </field>
    </class>
    <record name="OutputStreamClass"
            c:type="GUnixOutputStreamClass"
            glib:is-gtype-struct-for="OutputStream">
      <source-position filename="gio/gunixoutputstream.h" line="62"/>
      <field name="parent_class">
        <type name="Gio.OutputStreamClass" c:type="GOutputStreamClass"/>
      </field>
      <field name="_g_reserved1" introspectable="0">
        <callback name="_g_reserved1">
          <source-position filename="gio/gunixoutputstream.h" line="57"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_g_reserved2" introspectable="0">
        <callback name="_g_reserved2">
          <source-position filename="gio/gunixoutputstream.h" line="58"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_g_reserved3" introspectable="0">
        <callback name="_g_reserved3">
          <source-position filename="gio/gunixoutputstream.h" line="59"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_g_reserved4" introspectable="0">
        <callback name="_g_reserved4">
          <source-position filename="gio/gunixoutputstream.h" line="60"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_g_reserved5" introspectable="0">
        <callback name="_g_reserved5">
          <source-position filename="gio/gunixoutputstream.h" line="61"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="OutputStreamPrivate"
            c:type="GUnixOutputStreamPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gio/gunixoutputstream.h" line="39"/>
    </record>
    <function name="is_mount_path_system_internal"
              c:identifier="g_unix_is_mount_path_system_internal">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="274">Determines if @mount_path is considered an implementation of the
OS.

This is primarily used for hiding mountable and mounted volumes
that only are used in the OS and has little to no relevance to the
casual user.</doc>
      <source-position filename="gio/gunixmounts.h" line="245"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="285">true if @mount_path is considered an implementation detail
   of the OS; false otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="mount_path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="276">a mount path, e.g. `/media/disk` or `/usr`</doc>
          <type name="filename" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="is_system_device_path"
              c:identifier="g_unix_is_system_device_path"
              version="2.56">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="385">Determines if @device_path is considered a block device path which is only
used in implementation of the OS.

This is primarily used for hiding mounted volumes that are intended as APIs
for programs to read, and system administrators at a shell; rather than
something that should, for example, appear in a GUI. For example, the Linux
`/proc` filesystem.

The list of device paths considered ‘system’ ones may change over time.</doc>
      <source-position filename="gio/gunixmounts.h" line="249"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="399">true if @device_path is considered an implementation detail of
   the OS; false otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device_path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="387">a device path, e.g. `/dev/loop0` or `nfsd`</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="is_system_fs_type"
              c:identifier="g_unix_is_system_fs_type"
              version="2.56">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="310">Determines if @fs_type is considered a type of file system which is only
used in implementation of the OS.

This is primarily used for hiding mounted volumes that are intended as APIs
for programs to read, and system administrators at a shell; rather than
something that should, for example, appear in a GUI. For example, the Linux
`/proc` filesystem.

The list of file system types considered ‘system’ ones may change over time.</doc>
      <source-position filename="gio/gunixmounts.h" line="247"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="324">true if @fs_type is considered an implementation detail of the OS;
   false otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="fs_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="312">a file system type, e.g. `procfs` or `tmpfs`</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_at"
              c:identifier="g_unix_mount_at"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="1887">Gets a [struct@GioUnix.MountEntry] for a given mount path.

If @time_read is set, it will be filled with a Unix timestamp for checking
if the mounts have changed since with
[func@GioUnix.mount_entries_changed_since].

If more mounts have the same mount path, the last matching mount
is returned.

This will return `NULL` if there is no mount point at @mount_path.</doc>
      <doc-deprecated xml:space="preserve">Use [func@GioUnix.MountEntry.at] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="213"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="1903">a [struct@GioUnix.MountEntry]</doc>
        <type name="MountEntry" c:type="GUnixMountEntry*"/>
      </return-value>
      <parameters>
        <parameter name="mount_path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="1889">path for a possible Unix mount</doc>
          <type name="filename" c:type="const char*"/>
        </parameter>
        <parameter name="time_read"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="1890">return location for a timestamp</doc>
          <type name="guint64" c:type="guint64*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_compare"
              c:identifier="g_unix_mount_compare"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="2806">Compares two Unix mounts.</doc>
      <doc-deprecated xml:space="preserve">Use [method@GioUnix.MountEntry.compare] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="93"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2813">`1`, `0` or `-1` if @mount1 is greater than, equal to,
   or less than @mount2, respectively</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="mount1" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2808">first [struct@GioUnix.MountEntry] to compare</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </parameter>
        <parameter name="mount2" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2809">second [struct@GioUnix.MountEntry] to compare</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_copy"
              c:identifier="g_unix_mount_copy"
              version="2.54"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="2716">Makes a copy of @mount_entry.</doc>
      <doc-deprecated xml:space="preserve">Use [method@GioUnix.MountEntry.copy] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="83"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2722">a new [struct@GioUnix.MountEntry]</doc>
        <type name="MountEntry" c:type="GUnixMountEntry*"/>
      </return-value>
      <parameters>
        <parameter name="mount_entry" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2718">a [struct@GioUnix.MountEntry]</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_entries_changed_since"
              c:identifier="g_unix_mount_entries_changed_since">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="2176">Checks if the Unix mounts have changed since a given Unix time.

This can only work reliably if a [class@GioUnix.MountMonitor] is running in
the process, otherwise changes in the mount entries file (such as
`/proc/self/mountinfo` on Linux) cannot be detected and, as a result, this
function has to conservatively always return `TRUE`.

It is more efficient to use [signal@GioUnix.MountMonitor::mounts-changed] to
be signalled of changes to the mount entries, rather than polling using this
function. This function is more appropriate for infrequently determining
cache validity.</doc>
      <source-position filename="gio/gunixmounts.h" line="229"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2192">true if the mounts have changed since @time; false otherwise
Since 2.84</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="time" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2178">a timestamp</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_entries_get"
              c:identifier="g_unix_mount_entries_get"
              version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="1800">Gets a list of [struct@GioUnix.MountEntry] instances representing the Unix
mounts.

If @time_read is set, it will be filled with the mount timestamp, allowing
for checking if the mounts have changed with
[func@GioUnix.mount_entries_changed_since].</doc>
      <source-position filename="gio/gunixmounts.h" line="201"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="1811">a list of the
   Unix mounts</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="MountEntry"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="time_read"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="1802">return location for a timestamp</doc>
          <type name="guint64" c:type="guint64*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_entries_get_from_file"
              c:identifier="g_unix_mount_entries_get_from_file"
              version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="1856">Gets an array of [struct@GioUnix.MountEntry]s containing the Unix mounts
listed in @table_path.

This is a generalized version of [func@GioUnix.mount_entries_get], mainly
intended for internal testing use. Note that [func@GioUnix.mount_entries_get]
may parse multiple hierarchical table files, so this function is not a direct
superset of its functionality.

If there is an error reading or parsing the file, `NULL` will be returned
and both out parameters will be set to `0`.</doc>
      <source-position filename="gio/gunixmounts.h" line="208"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="1875">mount
  entries, or `NULL` if there was an error loading them</doc>
        <array length="2" zero-terminated="0" c:type="GUnixMountEntry**">
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="table_path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="1858">path to the mounts table file (for example `/proc/self/mountinfo`)</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="time_read_out"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="none"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="1859">return location for the
  modification time of @table_path</doc>
          <type name="guint64" c:type="uint64_t*"/>
        </parameter>
        <parameter name="n_entries_out"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="1861">return location for the
  number of mount entries returned</doc>
          <type name="gsize" c:type="size_t*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_entry_at"
              c:identifier="g_unix_mount_entry_at"
              moved-to="MountEntry.at"
              version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="1913">Gets a [struct@GioUnix.MountEntry] for a given mount path.

If @time_read is set, it will be filled with a Unix timestamp for checking
if the mounts have changed since with
[func@GioUnix.mount_entries_changed_since].

If more mounts have the same mount path, the last matching mount
is returned.

This will return `NULL` if there is no mount point at @mount_path.</doc>
      <source-position filename="gio/gunixmounts.h" line="216"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="1929">a [struct@GioUnix.MountEntry]</doc>
        <type name="MountEntry" c:type="GUnixMountEntry*"/>
      </return-value>
      <parameters>
        <parameter name="mount_path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="1915">path for a possible Unix mount</doc>
          <type name="filename" c:type="const char*"/>
        </parameter>
        <parameter name="time_read"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="1916">return location for a timestamp</doc>
          <type name="guint64" c:type="guint64*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_entry_for"
              c:identifier="g_unix_mount_entry_for"
              moved-to="MountEntry.for"
              version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="1989">Gets a [struct@GioUnix.MountEntry] for a given file path.

If @time_read is set, it will be filled with a Unix timestamp for checking
if the mounts have changed since with
[func@GioUnix.mount_entries_changed_since].

If more mounts have the same mount path, the last matching mount
is returned.

This will return `NULL` if looking up the mount entry fails, if
@file_path doesn’t exist or there is an I/O error.</doc>
      <source-position filename="gio/gunixmounts.h" line="223"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2006">a [struct@GioUnix.MountEntry]</doc>
        <type name="MountEntry" c:type="GUnixMountEntry*"/>
      </return-value>
      <parameters>
        <parameter name="file_path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="1991">file path on some Unix mount</doc>
          <type name="filename" c:type="const char*"/>
        </parameter>
        <parameter name="time_read"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="1992">return location for a timestamp</doc>
          <type name="guint64" c:type="guint64*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_for"
              c:identifier="g_unix_mount_for"
              version="2.52"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="1961">Gets a [struct@GioUnix.MountEntry] for a given file path.

If @time_read is set, it will be filled with a Unix timestamp for checking
if the mounts have changed since with
[func@GioUnix.mount_entries_changed_since].

If more mounts have the same mount path, the last matching mount
is returned.

This will return `NULL` if looking up the mount entry fails, if
@file_path doesn’t exist or there is an I/O error.</doc>
      <doc-deprecated xml:space="preserve">Use [func@GioUnix.MountEntry.for] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="220"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="1978">a [struct@GioUnix.MountEntry]</doc>
        <type name="MountEntry" c:type="GUnixMountEntry*"/>
      </return-value>
      <parameters>
        <parameter name="file_path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="1963">file path on some Unix mount</doc>
          <type name="filename" c:type="const char*"/>
        </parameter>
        <parameter name="time_read"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="1964">return location for a timestamp</doc>
          <type name="guint64" c:type="guint64*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_free"
              c:identifier="g_unix_mount_free"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="2681">Frees a Unix mount.</doc>
      <doc-deprecated xml:space="preserve">Use [method@GioUnix.MountEntry.free] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="78"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="mount_entry" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2683">a [struct@GioUnix.MountEntry]</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_get_device_path"
              c:identifier="g_unix_mount_get_device_path"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="2902">Gets the device path for a Unix mount.</doc>
      <doc-deprecated xml:space="preserve">Use [method@GioUnix.MountEntry.get_device_path] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="105"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2908">a string containing the device path</doc>
        <type name="filename" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="mount_entry" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2904">a [struct@GioUnix.MountEntry]</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_get_fs_type"
              c:identifier="g_unix_mount_get_fs_type"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="2978">Gets the filesystem type for the Unix mount.</doc>
      <doc-deprecated xml:space="preserve">Use [method@GioUnix.MountEntry.get_fs_type] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="115"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2984">a string containing the file system type</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="mount_entry" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2980">a [struct@GioUnix.MountEntry]</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_get_mount_path"
              c:identifier="g_unix_mount_get_mount_path"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="2870">Gets the mount path for a Unix mount.</doc>
      <doc-deprecated xml:space="preserve">Use [method@GioUnix.MountEntry.get_mount_path] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="100"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2876">the mount path for @mount_entry</doc>
        <type name="filename" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="mount_entry" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2872">a [struct@GioUnix.MountEntry] to get the mount path for</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_get_options"
              c:identifier="g_unix_mount_get_options"
              version="2.58"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="3010">Gets a comma separated list of mount options for the Unix mount.

For example: `rw,relatime,seclabel,data=ordered`.

This is similar to [method@GioUnix.MountPoint.get_options], but it takes
a [struct@GioUnix.MountEntry] as an argument.</doc>
      <doc-deprecated xml:space="preserve">Use [method@GioUnix.MountEntry.get_options] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="120"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3021">a string containing the options, or `NULL` if not
   available.</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="mount_entry" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3012">a [struct@GioUnix.MountEntry]</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_get_root_path"
              c:identifier="g_unix_mount_get_root_path"
              version="2.60"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="2934">Gets the root of the mount within the filesystem.

This is useful e.g. for mounts created by bind operation, or btrfs subvolumes.

For example, the root path is equal to `/` for a mount created by
`mount /dev/sda1 /mnt/foo` and `/bar` for
`mount --bind /mnt/foo/bar /mnt/bar`.</doc>
      <doc-deprecated xml:space="preserve">Use [method@GioUnix.MountEntry.get_root_path] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="110"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2946">a string containing the root, or `NULL` if not supported</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="mount_entry" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2936">a [struct@GioUnix.MountEntry]</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_guess_can_eject"
              c:identifier="g_unix_mount_guess_can_eject"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="3638">Guesses whether a Unix mount entry can be ejected.</doc>
      <doc-deprecated xml:space="preserve">Use [method@GioUnix.MountEntry.guess_can_eject] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="135"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3644">true if @mount_entry is deemed to be ejectable; false otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="mount_entry" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3640">a [struct@GioUnix.MountEntry]</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_guess_icon"
              c:identifier="g_unix_mount_guess_icon"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="3525">Guesses the icon of a Unix mount entry.</doc>
      <doc-deprecated xml:space="preserve">Use [method@GioUnix.MountEntry.guess_icon] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="150"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3531">a [iface@Gio.Icon]</doc>
        <type name="Gio.Icon" c:type="GIcon*"/>
      </return-value>
      <parameters>
        <parameter name="mount_entry" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3527">a [struct@GioUnix.MountEntry]</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_guess_name"
              c:identifier="g_unix_mount_guess_name"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="3484">Guesses the name of a Unix mount entry.

The result is a translated string.</doc>
      <doc-deprecated xml:space="preserve">Use [method@GioUnix.MountEntry.guess_name] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="145"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3492">a newly allocated translated string</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="mount_entry" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3486">a [struct@GioUnix.MountEntry]</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_guess_should_display"
              c:identifier="g_unix_mount_guess_should_display"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="3675">Guesses whether a Unix mount entry should be displayed in the UI.</doc>
      <doc-deprecated xml:space="preserve">Use [method@GioUnix.MountEntry.guess_should_display] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="140"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3681">true if @mount_entry is deemed to be displayable; false otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="mount_entry" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3677">a [struct@GioUnix.MountEntry]</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_guess_symbolic_icon"
              c:identifier="g_unix_mount_guess_symbolic_icon"
              version="2.34"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="3555">Guesses the symbolic icon of a Unix mount entry.</doc>
      <doc-deprecated xml:space="preserve">Use [method@GioUnix.MountEntry.guess_symbolic_icon] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="155"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3561">a [iface@Gio.Icon]</doc>
        <type name="Gio.Icon" c:type="GIcon*"/>
      </return-value>
      <parameters>
        <parameter name="mount_entry" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3557">a [struct@GioUnix.MountEntry]</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_is_readonly"
              c:identifier="g_unix_mount_is_readonly"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="3055">Checks if a Unix mount is mounted read only.</doc>
      <doc-deprecated xml:space="preserve">Use [method@GioUnix.MountEntry.is_readonly] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="125"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3061">true if @mount_entry is read only; false otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="mount_entry" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3057">a [struct@GioUnix.MountEntry]</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_is_system_internal"
              c:identifier="g_unix_mount_is_system_internal"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="3087">Checks if a Unix mount is a system mount.

This is the Boolean OR of
[func@GioUnix.is_system_fs_type], [func@GioUnix.is_system_device_path] and
[func@GioUnix.is_mount_path_system_internal] on @mount_entry’s properties.

The definition of what a ‘system’ mount entry is may change over time as new
file system types and device paths are ignored.</doc>
      <doc-deprecated xml:space="preserve">Use [method@GioUnix.MountEntry.is_system_internal] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="130"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="3100">true if the Unix mount is for a system path; false otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="mount_entry" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="3089">a [struct@GioUnix.MountEntry]</doc>
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_point_at"
              c:identifier="g_unix_mount_point_at"
              moved-to="MountPoint.at"
              version="2.66">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="2114">Gets a [struct@GioUnix.MountPoint] for a given mount path.

If @time_read is set, it will be filled with a Unix timestamp for checking if
the mount points have changed since with
[func@GioUnix.mount_points_changed_since].

If more mount points have the same mount path, the last matching mount point
is returned.</doc>
      <source-position filename="gio/gunixmounts.h" line="196"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2128">a [struct@GioUnix.MountPoint], or `NULL`
   if no match is found</doc>
        <type name="MountPoint" c:type="GUnixMountPoint*"/>
      </return-value>
      <parameters>
        <parameter name="mount_path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2116">path for a possible Unix mount point</doc>
          <type name="filename" c:type="const char*"/>
        </parameter>
        <parameter name="time_read"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2117">return location for a timestamp</doc>
          <type name="guint64" c:type="guint64*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_points_changed_since"
              c:identifier="g_unix_mount_points_changed_since">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="2201">Checks if the Unix mount points have changed since a given Unix time.

Unlike [func@GioUnix.mount_entries_changed_since], this function can work
reliably without a [class@GioUnix.MountMonitor] running, as it accesses the
static mount point information (such as `/etc/fstab` on Linux), which has a
valid modification time.

It is more efficient to use [signal@GioUnix.MountMonitor::mountpoints-changed]
to be signalled of changes to the mount points, rather than polling using
this function. This function is more appropriate for infrequently determining
cache validity.</doc>
      <source-position filename="gio/gunixmounts.h" line="232"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2217">true if the mount points have changed since @time; false otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="time" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2203">a timestamp</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_points_get" c:identifier="g_unix_mount_points_get">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="2041">Gets a list of [struct@GioUnix.MountPoint] instances representing the Unix
mount points.

If @time_read is set, it will be filled with the mount timestamp, allowing
for checking if the mounts have changed with
[func@GioUnix.mount_points_changed_since].</doc>
      <source-position filename="gio/gunixmounts.h" line="190"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2052">a list of the Unix
   mount points</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="MountPoint"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="time_read"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2043">return location for a timestamp</doc>
          <type name="guint64" c:type="guint64*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mount_points_get_from_file"
              c:identifier="g_unix_mount_points_get_from_file"
              version="2.82">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="2083">Gets an array of [struct@GioUnix.MountPoint]s containing the Unix mount
points listed in @table_path.

This is a generalized version of [func@GioUnix.mount_points_get], mainly
intended for internal testing use. Note that [func@GioUnix.mount_points_get]
may parse multiple hierarchical table files, so this function is not a direct
superset of its functionality.

If there is an error reading or parsing the file, `NULL` will be returned
and both out parameters will be set to `0`.</doc>
      <source-position filename="gio/gunixmounts.h" line="192"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2102">mount
  points, or `NULL` if there was an error loading them</doc>
        <array length="2" zero-terminated="0" c:type="GUnixMountPoint**">
          <type name="MountPoint" c:type="GUnixMountPoint*"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="table_path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2085">path to the mount points table file (for example `/etc/fstab`)</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="time_read_out"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="none"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2086">return location for the
  modification time of @table_path</doc>
          <type name="guint64" c:type="uint64_t*"/>
        </parameter>
        <parameter name="n_points_out"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2088">return location for the
  number of mount points returned</doc>
          <type name="gsize" c:type="size_t*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mounts_changed_since"
              c:identifier="g_unix_mounts_changed_since"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="2161">Checks if the Unix mounts have changed since a given Unix time.</doc>
      <doc-deprecated xml:space="preserve">Use [func@GioUnix.mount_entries_changed_since] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="227"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="2167">true if the mounts have changed since @time; false otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="time" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="2163">a timestamp</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="mounts_get"
              c:identifier="g_unix_mounts_get"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="1779">Gets a list of [struct@GioUnix.MountEntry] instances representing the Unix
mounts.

If @time_read is set, it will be filled with the mount timestamp, allowing
for checking if the mounts have changed with
[func@GioUnix.mount_entries_changed_since].</doc>
      <doc-deprecated xml:space="preserve">Use [func@GioUnix.mount_entries_get] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="199"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="1790">a list of the
   Unix mounts</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="MountEntry"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="time_read"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="1781">return location for a timestamp</doc>
          <type name="guint64" c:type="guint64*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mounts_get_from_file"
              c:identifier="g_unix_mounts_get_from_file"
              version="2.82"
              deprecated="1"
              deprecated-version="2.84">
      <doc xml:space="preserve"
           filename="gio/gunixmounts.c"
           line="1824">Gets an array of [struct@GioUnix.MountEntry]s containing the Unix mounts
listed in @table_path.

This is a generalized version of [func@GioUnix.mount_entries_get], mainly
intended for internal testing use. Note that [func@GioUnix.mount_entries_get]
may parse multiple hierarchical table files, so this function is not a direct
superset of its functionality.

If there is an error reading or parsing the file, `NULL` will be returned
and both out parameters will be set to `0`.</doc>
      <doc-deprecated xml:space="preserve">Use [func@GioUnix.mount_entries_get_from_file] instead.</doc-deprecated>
      <source-position filename="gio/gunixmounts.h" line="204"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="gio/gunixmounts.c"
             line="1843">mount
  entries, or `NULL` if there was an error loading them</doc>
        <array length="2" zero-terminated="0" c:type="GUnixMountEntry**">
          <type name="MountEntry" c:type="GUnixMountEntry*"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="table_path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="1826">path to the mounts table file (for example `/proc/self/mountinfo`)</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="time_read_out"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="none"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="1827">return location for the
  modification time of @table_path</doc>
          <type name="guint64" c:type="uint64_t*"/>
        </parameter>
        <parameter name="n_entries_out"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gio/gunixmounts.c"
               line="1829">return location for the
  number of mount entries returned</doc>
          <type name="gsize" c:type="size_t*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
