<?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:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <package name="blockdev"/>
  <namespace name="BlockDev"
             version="2.0"
             shared-library="libblockdev.so.2,libbd_utils.so.2"
             c:identifier-prefixes="BD"
             c:symbol-prefixes="bd">
    <constant name="BTRFS_MAIN_VOLUME_ID"
              value="5"
              c:type="BD_BTRFS_MAIN_VOLUME_ID">
      <source-position filename="lib/plugin_apis/btrfs.h" line="6"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="BTRFS_MIN_MEMBER_SIZE"
              value="134217728"
              c:type="BD_BTRFS_MIN_MEMBER_SIZE">
      <source-position filename="lib/plugin_apis/btrfs.h" line="7"/>
      <type name="guint64" c:type="guint64"/>
    </constant>
    <record name="BtrfsDeviceInfo"
            c:type="BDBtrfsDeviceInfo"
            glib:type-name="BDBtrfsDeviceInfo"
            glib:get-type="bd_btrfs_device_info_get_type"
            c:symbol-prefix="btrfs_device_info">
      <source-position filename="lib/plugin_apis/btrfs.h" line="28"/>
      <field name="id" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="32">ID of the device</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="path" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="33">path of the device</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="34">size of the device</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="used" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="35">size of the used space</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <method name="copy"
              c:identifier="bd_btrfs_device_info_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="37">Creates a new copy of @info.</doc>
        <source-position filename="lib/plugin_apis/btrfs.h" line="42"/>
        <return-value transfer-ownership="full">
          <type name="BtrfsDeviceInfo" c:type="BDBtrfsDeviceInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="BtrfsDeviceInfo" c:type="BDBtrfsDeviceInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_btrfs_device_info_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="45">Frees @info.</doc>
        <source-position filename="lib/plugin_apis/btrfs.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="BtrfsDeviceInfo" c:type="BDBtrfsDeviceInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="BtrfsError"
                 c:type="BDBtrfsError"
                 glib:error-domain="g-bd-btrfs-error-quark">
      <source-position filename="lib/plugin_apis/btrfs.h" line="17"/>
      <member name="device" value="0" c:identifier="BD_BTRFS_ERROR_DEVICE">
      </member>
      <member name="parse" value="1" c:identifier="BD_BTRFS_ERROR_PARSE">
      </member>
      <member name="tech_unavail"
              value="2"
              c:identifier="BD_BTRFS_ERROR_TECH_UNAVAIL">
      </member>
    </enumeration>
    <record name="BtrfsFilesystemInfo"
            c:type="BDBtrfsFilesystemInfo"
            glib:type-name="BDBtrfsFilesystemInfo"
            glib:get-type="bd_btrfs_filesystem_info_get_type"
            c:symbol-prefix="btrfs_filesystem_info">
      <source-position filename="lib/plugin_apis/btrfs.h" line="98"/>
      <field name="label" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="102">label of the filesystem</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="uuid" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="103">uuid of the filesystem</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="num_devices" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="104">number of device in the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="used" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="105">size of the used space</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <method name="copy"
              c:identifier="bd_btrfs_filesystem_info_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="107">Creates a new copy of @info.</doc>
        <source-position filename="lib/plugin_apis/btrfs.h" line="112"/>
        <return-value transfer-ownership="full">
          <type name="BtrfsFilesystemInfo" c:type="BDBtrfsFilesystemInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="BtrfsFilesystemInfo" c:type="BDBtrfsFilesystemInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_btrfs_filesystem_info_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="115">Frees @info.</doc>
        <source-position filename="lib/plugin_apis/btrfs.h" line="120"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="BtrfsFilesystemInfo" c:type="BDBtrfsFilesystemInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="BtrfsSubvolumeInfo"
            c:type="BDBtrfsSubvolumeInfo"
            glib:type-name="BDBtrfsSubvolumeInfo"
            glib:get-type="bd_btrfs_subvolume_info_get_type"
            c:symbol-prefix="btrfs_subvolume_info">
      <source-position filename="lib/plugin_apis/btrfs.h" line="63"/>
      <field name="id" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="67">ID of the subvolume</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="parent_id" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="68">ID of the parent (sub)volume</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="path" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="69">path of the subvolume</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <method name="copy"
              c:identifier="bd_btrfs_subvolume_info_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="71">Creates a new copy of @info.</doc>
        <source-position filename="lib/plugin_apis/btrfs.h" line="76"/>
        <return-value transfer-ownership="full">
          <type name="BtrfsSubvolumeInfo" c:type="BDBtrfsSubvolumeInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="BtrfsSubvolumeInfo" c:type="BDBtrfsSubvolumeInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_btrfs_subvolume_info_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="79">Frees @info.</doc>
        <source-position filename="lib/plugin_apis/btrfs.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="BtrfsSubvolumeInfo" c:type="BDBtrfsSubvolumeInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="BtrfsTech" c:type="BDBtrfsTech">
      <source-position filename="lib/plugin_apis/btrfs.h" line="129"/>
      <member name="fs" value="0" c:identifier="BD_BTRFS_TECH_FS">
      </member>
      <member name="multi_dev"
              value="1"
              c:identifier="BD_BTRFS_TECH_MULTI_DEV">
      </member>
      <member name="subvol" value="2" c:identifier="BD_BTRFS_TECH_SUBVOL">
      </member>
      <member name="snapshot" value="3" c:identifier="BD_BTRFS_TECH_SNAPSHOT">
      </member>
    </enumeration>
    <bitfield name="BtrfsTechMode" c:type="BDBtrfsTechMode">
      <source-position filename="lib/plugin_apis/btrfs.h" line="136"/>
      <member name="create" value="1" c:identifier="BD_BTRFS_TECH_MODE_CREATE">
      </member>
      <member name="delete" value="2" c:identifier="BD_BTRFS_TECH_MODE_DELETE">
      </member>
      <member name="modify" value="4" c:identifier="BD_BTRFS_TECH_MODE_MODIFY">
      </member>
      <member name="query" value="8" c:identifier="BD_BTRFS_TECH_MODE_QUERY">
      </member>
    </bitfield>
    <constant name="CRYPTO_LUKS_METADATA_SIZE"
              value="2097152"
              c:type="BD_CRYPTO_LUKS_METADATA_SIZE">
      <source-position filename="lib/plugin_apis/crypto.h" line="5"/>
      <type name="guint64" c:type="guint64"/>
    </constant>
    <enumeration name="CryptoError"
                 c:type="BDCryptoError"
                 glib:error-domain="g-bd-crypto-error-quark">
      <source-position filename="lib/plugin_apis/crypto.h" line="27"/>
      <member name="device" value="0" c:identifier="BD_CRYPTO_ERROR_DEVICE">
      </member>
      <member name="state" value="1" c:identifier="BD_CRYPTO_ERROR_STATE">
      </member>
      <member name="invalid_spec"
              value="2"
              c:identifier="BD_CRYPTO_ERROR_INVALID_SPEC">
      </member>
      <member name="format_failed"
              value="3"
              c:identifier="BD_CRYPTO_ERROR_FORMAT_FAILED">
      </member>
      <member name="resize_failed"
              value="4"
              c:identifier="BD_CRYPTO_ERROR_RESIZE_FAILED">
      </member>
      <member name="resize_perm"
              value="5"
              c:identifier="BD_CRYPTO_ERROR_RESIZE_PERM">
      </member>
      <member name="add_key" value="6" c:identifier="BD_CRYPTO_ERROR_ADD_KEY">
      </member>
      <member name="remove_key"
              value="7"
              c:identifier="BD_CRYPTO_ERROR_REMOVE_KEY">
      </member>
      <member name="no_key" value="8" c:identifier="BD_CRYPTO_ERROR_NO_KEY">
      </member>
      <member name="key_slot"
              value="9"
              c:identifier="BD_CRYPTO_ERROR_KEY_SLOT">
      </member>
      <member name="nss_init_failed"
              value="10"
              c:identifier="BD_CRYPTO_ERROR_NSS_INIT_FAILED">
      </member>
      <member name="cert_decode"
              value="11"
              c:identifier="BD_CRYPTO_ERROR_CERT_DECODE">
      </member>
      <member name="escrow_failed"
              value="12"
              c:identifier="BD_CRYPTO_ERROR_ESCROW_FAILED">
      </member>
      <member name="invalid_params"
              value="13"
              c:identifier="BD_CRYPTO_ERROR_INVALID_PARAMS">
      </member>
      <member name="tech_unavail"
              value="14"
              c:identifier="BD_CRYPTO_ERROR_TECH_UNAVAIL">
      </member>
    </enumeration>
    <record name="CryptoIntegrityInfo"
            c:type="BDCryptoIntegrityInfo"
            glib:type-name="BDCryptoIntegrityInfo"
            glib:get-type="bd_crypto_integrity_info_get_type"
            c:symbol-prefix="crypto_integrity_info">
      <source-position filename="lib/plugin_apis/crypto.h" line="221"/>
      <field name="algorithm" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="225">integrity algorithm</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="key_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="226">integrity key size in bytes</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="sector_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="227">sector size in bytes</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="tag_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="228">tag size per-sector in bytes</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="interleave_sectors" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="229">number of interleave sectors</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="journal_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="230">size of journal in bytes</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="journal_crypt" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="231">journal encryption algorithm</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="journal_integrity" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="232">journal integrity algorithm</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <method name="copy" c:identifier="bd_crypto_integrity_info_copy">
        <source-position filename="lib/plugin_apis/crypto.h" line="247"/>
        <return-value transfer-ownership="full">
          <type name="CryptoIntegrityInfo" c:type="BDCryptoIntegrityInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="CryptoIntegrityInfo" c:type="BDCryptoIntegrityInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_crypto_integrity_info_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="234">Frees @info.</doc>
        <source-position filename="lib/plugin_apis/crypto.h" line="239"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="CryptoIntegrityInfo" c:type="BDCryptoIntegrityInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="CryptoLUKSExtra"
            c:type="BDCryptoLUKSExtra"
            glib:type-name="BDCryptoLUKSExtra"
            glib:get-type="bd_crypto_luks_extra_get_type"
            c:symbol-prefix="crypto_luks_extra">
      <source-position filename="lib/plugin_apis/crypto.h" line="119"/>
      <field name="data_alignment" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="123">data alignment in sectors, 0 for default/auto detection</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="data_device" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="124">detached encrypted data device or NULL</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="integrity" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="125">integrity algorithm (e.g. "hmac-sha256") or NULL for no integrity support
            Note: this field is valid only for LUKS 2</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="sector_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="127">encryption sector size, 0 for default (512)
              Note: this field is valid only for LUKS 2</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="label" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="129">LUKS header label or NULL
        Note: this field is valid only for LUKS 2</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="subsystem" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="pbkdf" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="133">key derivation function specification or NULL for default
        Note: this field is valid only for LUKS 2</doc>
        <type name="CryptoLUKSPBKDF" c:type="BDCryptoLUKSPBKDF*"/>
      </field>
      <constructor name="new" c:identifier="bd_crypto_luks_extra_new">
        <source-position filename="lib/plugin_apis/crypto.h" line="164"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="162">a new LUKS extra argument</doc>
          <type name="CryptoLUKSExtra" c:type="BDCryptoLUKSExtra*"/>
        </return-value>
        <parameters>
          <parameter name="data_alignment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="lib/plugin_apis/crypto.h"
                 line="154">data alignment in sectors, 0 for default/auto detection</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
          <parameter name="data_device"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="lib/plugin_apis/crypto.h"
                 line="155">detached encrypted data device or NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="integrity"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="lib/plugin_apis/crypto.h"
                 line="156">integrity algorithm (e.g. "hmac-sha256") or NULL for no integrity support</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="sector_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="lib/plugin_apis/crypto.h"
                 line="157">encryption sector size, 0 for default (512)</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
          <parameter name="label"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="lib/plugin_apis/crypto.h"
                 line="158">LUKS header label or NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="subsystem"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="lib/plugin_apis/crypto.h"
                 line="159">LUKS header subsystem or NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="pbkdf"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="lib/plugin_apis/crypto.h"
                 line="160">key derivation function specification or NULL for default</doc>
            <type name="CryptoLUKSPBKDF" c:type="BDCryptoLUKSPBKDF*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy"
              c:identifier="bd_crypto_luks_extra_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="136">Creates a new copy of @extra.</doc>
        <source-position filename="lib/plugin_apis/crypto.h" line="141"/>
        <return-value transfer-ownership="full">
          <type name="CryptoLUKSExtra" c:type="BDCryptoLUKSExtra*"/>
        </return-value>
        <parameters>
          <instance-parameter name="extra" transfer-ownership="none">
            <type name="CryptoLUKSExtra" c:type="BDCryptoLUKSExtra*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_crypto_luks_extra_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="144">Frees @extra.</doc>
        <source-position filename="lib/plugin_apis/crypto.h" line="149"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="extra" transfer-ownership="none">
            <type name="CryptoLUKSExtra" c:type="BDCryptoLUKSExtra*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="CryptoLUKSInfo"
            c:type="BDCryptoLUKSInfo"
            glib:type-name="BDCryptoLUKSInfo"
            glib:get-type="bd_crypto_luks_info_get_type"
            c:symbol-prefix="crypto_luks_info">
      <source-position filename="lib/plugin_apis/crypto.h" line="179"/>
      <field name="version" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="183">LUKS version</doc>
        <type name="CryptoLUKSVersion" c:type="BDCryptoLUKSVersion"/>
      </field>
      <field name="cipher" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="184">used cipher (e.g. "aes")</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="mode" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="185">used cipher mode (e.g. "xts-plain")</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="uuid" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="186">UUID of the LUKS device</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="backing_device" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="187">name of the underlying block device</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="sector_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="188">size (in bytes) of encryption sector
              Note: sector size is valid only for LUKS 2</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <method name="copy"
              c:identifier="bd_crypto_luks_info_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="199">Creates a new copy of @info.</doc>
        <source-position filename="lib/plugin_apis/crypto.h" line="204"/>
        <return-value transfer-ownership="full">
          <type name="CryptoLUKSInfo" c:type="BDCryptoLUKSInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="CryptoLUKSInfo" c:type="BDCryptoLUKSInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_crypto_luks_info_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="191">Frees @info.</doc>
        <source-position filename="lib/plugin_apis/crypto.h" line="196"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="CryptoLUKSInfo" c:type="BDCryptoLUKSInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="CryptoLUKSPBKDF"
            c:type="BDCryptoLUKSPBKDF"
            glib:type-name="BDCryptoLUKSPBKDF"
            glib:get-type="bd_crypto_luks_pbkdf_get_type"
            c:symbol-prefix="crypto_luks_pbkdf">
      <source-position filename="lib/plugin_apis/crypto.h" line="65"/>
      <field name="type" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="69">PBKDF algorithm</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="hash" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="70">hash for LUKS header or NULL</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="max_memory_kb" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="71">requested memory cost (in KiB) or 0 for default (benchmark)</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="iterations" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="72">requested iterations or 0 for default (benchmark)</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="time_ms" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="73">requested time cost or 0 for default (benchmark)</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="parallel_threads" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="74">requested parallel cost (threads) or 0 for default (benchmark)</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <constructor name="new" c:identifier="bd_crypto_luks_pbkdf_new">
        <source-position filename="lib/plugin_apis/crypto.h" line="103"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="101">a new pbkdf argument</doc>
          <type name="CryptoLUKSPBKDF" c:type="BDCryptoLUKSPBKDF*"/>
        </return-value>
        <parameters>
          <parameter name="type"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="lib/plugin_apis/crypto.h"
                 line="94">PBKDF algorithm</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="hash"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="lib/plugin_apis/crypto.h"
                 line="95">hash for LUKS header or NULL for default</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="max_memory_kb" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="lib/plugin_apis/crypto.h"
                 line="96">requested memory cost (in KiB) or 0 for default (benchmark)</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="iterations" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="lib/plugin_apis/crypto.h"
                 line="97">requested iterations or 0 for default (benchmark)</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="time_ms" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="lib/plugin_apis/crypto.h"
                 line="98">requested time cost or 0 for default (benchmark)</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="parallel_threads" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="lib/plugin_apis/crypto.h"
                 line="99">requested parallel cost (threads) or 0 for default (benchmark)</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy"
              c:identifier="bd_crypto_luks_pbkdf_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="76">Creates a new copy of @pbkdf.</doc>
        <source-position filename="lib/plugin_apis/crypto.h" line="81"/>
        <return-value transfer-ownership="full">
          <type name="CryptoLUKSPBKDF" c:type="BDCryptoLUKSPBKDF*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pbkdf" transfer-ownership="none">
            <type name="CryptoLUKSPBKDF" c:type="BDCryptoLUKSPBKDF*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_crypto_luks_pbkdf_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="84">Frees @pbkdf.</doc>
        <source-position filename="lib/plugin_apis/crypto.h" line="89"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pbkdf" transfer-ownership="none">
            <type name="CryptoLUKSPBKDF" c:type="BDCryptoLUKSPBKDF*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="CryptoLUKSVersion" c:type="BDCryptoLUKSVersion">
      <source-position filename="lib/plugin_apis/crypto.h" line="52"/>
      <member name="luks1"
              value="0"
              c:identifier="BD_CRYPTO_LUKS_VERSION_LUKS1">
      </member>
      <member name="luks2"
              value="1"
              c:identifier="BD_CRYPTO_LUKS_VERSION_LUKS2">
      </member>
    </enumeration>
    <enumeration name="CryptoTech" c:type="BDCryptoTech">
      <source-position filename="lib/plugin_apis/crypto.h" line="36"/>
      <member name="luks" value="0" c:identifier="BD_CRYPTO_TECH_LUKS">
      </member>
      <member name="luks2" value="1" c:identifier="BD_CRYPTO_TECH_LUKS2">
      </member>
      <member name="truecrypt"
              value="2"
              c:identifier="BD_CRYPTO_TECH_TRUECRYPT">
      </member>
      <member name="escrow" value="3" c:identifier="BD_CRYPTO_TECH_ESCROW">
      </member>
      <member name="integrity"
              value="4"
              c:identifier="BD_CRYPTO_TECH_INTEGRITY">
      </member>
      <member name="bitlk" value="5" c:identifier="BD_CRYPTO_TECH_BITLK">
      </member>
    </enumeration>
    <bitfield name="CryptoTechMode" c:type="BDCryptoTechMode">
      <source-position filename="lib/plugin_apis/crypto.h" line="47"/>
      <member name="create"
              value="1"
              c:identifier="BD_CRYPTO_TECH_MODE_CREATE">
      </member>
      <member name="open_close"
              value="2"
              c:identifier="BD_CRYPTO_TECH_MODE_OPEN_CLOSE">
      </member>
      <member name="query" value="4" c:identifier="BD_CRYPTO_TECH_MODE_QUERY">
      </member>
      <member name="add_key"
              value="8"
              c:identifier="BD_CRYPTO_TECH_MODE_ADD_KEY">
      </member>
      <member name="remove_key"
              value="16"
              c:identifier="BD_CRYPTO_TECH_MODE_REMOVE_KEY">
      </member>
      <member name="resize"
              value="32"
              c:identifier="BD_CRYPTO_TECH_MODE_RESIZE">
      </member>
      <member name="suspend_resume"
              value="64"
              c:identifier="BD_CRYPTO_TECH_MODE_SUSPEND_RESUME">
      </member>
      <member name="backup_restore"
              value="128"
              c:identifier="BD_CRYPTO_TECH_MODE_BACKUP_RESTORE">
      </member>
    </bitfield>
    <enumeration name="DMError"
                 c:type="BDDMError"
                 glib:error-domain="g-bd-dm-error-quark">
      <source-position filename="lib/plugin_apis/dm.h" line="16"/>
      <member name="sys" value="0" c:identifier="BD_DM_ERROR_SYS">
      </member>
      <member name="not_root" value="1" c:identifier="BD_DM_ERROR_NOT_ROOT">
      </member>
      <member name="task" value="2" c:identifier="BD_DM_ERROR_TASK">
      </member>
      <member name="raid_fail" value="3" c:identifier="BD_DM_ERROR_RAID_FAIL">
      </member>
      <member name="raid_no_devs"
              value="4"
              c:identifier="BD_DM_ERROR_RAID_NO_DEVS">
      </member>
      <member name="tech_unavail"
              value="5"
              c:identifier="BD_DM_ERROR_TECH_UNAVAIL">
      </member>
    </enumeration>
    <enumeration name="DMTech" c:type="BDDMTech">
      <source-position filename="lib/plugin_apis/dm.h" line="21"/>
      <member name="map" value="0" c:identifier="BD_DM_TECH_MAP">
      </member>
      <member name="raid" value="1" c:identifier="BD_DM_TECH_RAID">
      </member>
    </enumeration>
    <bitfield name="DMTechMode" c:type="BDDMTechMode">
      <source-position filename="lib/plugin_apis/dm.h" line="27"/>
      <member name="create_activate"
              value="1"
              c:identifier="BD_DM_TECH_MODE_CREATE_ACTIVATE">
      </member>
      <member name="remove_deactivate"
              value="2"
              c:identifier="BD_DM_TECH_MODE_REMOVE_DEACTIVATE">
      </member>
      <member name="query" value="4" c:identifier="BD_DM_TECH_MODE_QUERY">
      </member>
    </bitfield>
    <record name="ExtraArg"
            c:type="BDExtraArg"
            glib:type-name="BDExtraArg"
            glib:get-type="bd_extra_arg_get_type"
            c:symbol-prefix="extra_arg">
      <doc xml:space="preserve"
           filename="utils/extra_arg.h"
           line="10">See bd_extra_arg_new() for an example on how to construct the extra args.</doc>
      <source-position filename="utils/extra_arg.h" line="18"/>
      <field name="opt" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="val" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <constructor name="new" c:identifier="bd_extra_arg_new">
        <doc xml:space="preserve"
             filename="utils/extra_arg.c"
             line="41">Example of calling bd_fs_xfs_mkfs() with an extra argument.
This will result in calling `mkfs.xfs` with `-L label`.

|[&lt;!-- language="C" --&gt;
BDExtraArg label_arg = {"-L", "label"};
const BDExtraArg *extra_args[2] = {&amp;label_arg, NULL};

ret = bd_fs_xfs_mkfs ("/dev/sda", extra_args, error);

]|</doc>
        <source-position filename="utils/extra_arg.h" line="22"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="utils/extra_arg.c"
               line="57">a new extra argument</doc>
          <type name="ExtraArg" c:type="BDExtraArg*"/>
        </return-value>
        <parameters>
          <parameter name="opt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="utils/extra_arg.c"
                 line="43">extra option</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="utils/extra_arg.c"
                 line="44">value for the extra option @opt</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="bd_extra_arg_copy">
        <doc xml:space="preserve"
             filename="utils/extra_arg.c"
             line="6">Creates a new copy of @arg.</doc>
        <source-position filename="utils/extra_arg.h" line="20"/>
        <return-value transfer-ownership="full">
          <type name="ExtraArg" c:type="BDExtraArg*"/>
        </return-value>
        <parameters>
          <instance-parameter name="arg" transfer-ownership="none">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="bd_extra_arg_free">
        <doc xml:space="preserve"
             filename="utils/extra_arg.c"
             line="19">Frees @arg.</doc>
        <source-position filename="utils/extra_arg.h" line="21"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="arg" transfer-ownership="none">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="FSExt2Info"
            c:type="BDFSExt2Info"
            glib:type-name="BDFSExt2Info"
            glib:get-type="bd_fs_ext2_info_get_type"
            c:symbol-prefix="fs_ext2_info">
      <source-position filename="lib/plugin_apis/fs.h" line="47"/>
      <field name="label" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="51">label of the filesystem</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="uuid" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="52">uuid of the filesystem</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="state" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="53">state of the filesystem (e.g. "clean")</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="block_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="54">block size used by the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="block_count" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="55">number of blocks in the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="free_blocks" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="56">number of free blocks in the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <method name="copy"
              c:identifier="bd_fs_ext2_info_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="58">Creates a new copy of @data.</doc>
        <source-position filename="lib/plugin_apis/fs.h" line="63"/>
        <return-value transfer-ownership="full">
          <type name="FSExt2Info" c:type="BDFSExt2Info*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="FSExt2Info" c:type="BDFSExt2Info*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="FSExt3Info"
            c:type="BDFSExt3Info"
            glib:type-name="BDFSExt3Info"
            glib:get-type="bd_fs_ext3_info_get_type"
            c:symbol-prefix="fs_ext3_info">
      <source-position filename="lib/plugin_apis/fs.h" line="46"/>
      <field name="label" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="51">label of the filesystem</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="uuid" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="52">uuid of the filesystem</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="state" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="53">state of the filesystem (e.g. "clean")</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="block_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="54">block size used by the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="block_count" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="55">number of blocks in the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="free_blocks" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="56">number of free blocks in the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <method name="copy"
              c:identifier="bd_fs_ext3_info_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="66">Creates a new copy of @data.</doc>
        <source-position filename="lib/plugin_apis/fs.h" line="71"/>
        <return-value transfer-ownership="full">
          <type name="FSExt3Info" c:type="BDFSExt3Info*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="FSExt3Info" c:type="BDFSExt3Info*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_fs_ext3_info_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="82">Frees @data.</doc>
        <source-position filename="lib/plugin_apis/fs.h" line="87"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="FSExt3Info" c:type="BDFSExt3Info*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="FSExt4Info"
            c:type="BDFSExt4Info"
            glib:type-name="BDFSExt4Info"
            glib:get-type="bd_fs_ext4_info_get_type"
            c:symbol-prefix="fs_ext4_info">
      <source-position filename="lib/plugin_apis/fs.h" line="45"/>
      <field name="label" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="51">label of the filesystem</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="uuid" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="52">uuid of the filesystem</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="state" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="53">state of the filesystem (e.g. "clean")</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="block_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="54">block size used by the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="block_count" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="55">number of blocks in the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="free_blocks" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="56">number of free blocks in the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <method name="copy"
              c:identifier="bd_fs_ext4_info_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="74">Creates a new copy of @data.</doc>
        <source-position filename="lib/plugin_apis/fs.h" line="79"/>
        <return-value transfer-ownership="full">
          <type name="FSExt4Info" c:type="BDFSExt4Info*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="FSExt4Info" c:type="BDFSExt4Info*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_fs_ext4_info_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="90">Frees @data.</doc>
        <source-position filename="lib/plugin_apis/fs.h" line="95"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="FSExt4Info" c:type="BDFSExt4Info*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="FSExtInfo" c:type="BDFSExtInfo">
      <source-position filename="lib/plugin_apis/fs.h" line="43"/>
      <field name="label" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="51">label of the filesystem</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="uuid" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="52">uuid of the filesystem</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="state" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="53">state of the filesystem (e.g. "clean")</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="block_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="54">block size used by the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="block_count" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="55">number of blocks in the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="free_blocks" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="56">number of free blocks in the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
    </record>
    <record name="FSNtfsInfo"
            c:type="BDFSNtfsInfo"
            glib:type-name="BDFSNtfsInfo"
            glib:get-type="bd_fs_ntfs_info_get_type"
            c:symbol-prefix="fs_ntfs_info">
      <source-position filename="lib/plugin_apis/fs.h" line="176"/>
      <field name="size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="180">size of the filesystem in bytes</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="free_space" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="181">number of free space in the filesystem in bytes</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <method name="copy"
              c:identifier="bd_fs_ntfs_info_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="183">Creates a new copy of @data.</doc>
        <source-position filename="lib/plugin_apis/fs.h" line="188"/>
        <return-value transfer-ownership="full">
          <type name="FSNtfsInfo" c:type="BDFSNtfsInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="FSNtfsInfo" c:type="BDFSNtfsInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_fs_ntfs_info_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="191">Frees @data.</doc>
        <source-position filename="lib/plugin_apis/fs.h" line="196"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="FSNtfsInfo" c:type="BDFSNtfsInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="FSTech" c:type="BDFSTech">
      <source-position filename="lib/plugin_apis/fs.h" line="211"/>
      <member name="generic" value="0" c:identifier="BD_FS_TECH_GENERIC">
      </member>
      <member name="mount" value="1" c:identifier="BD_FS_TECH_MOUNT">
      </member>
      <member name="ext2" value="2" c:identifier="BD_FS_TECH_EXT2">
      </member>
      <member name="ext3" value="3" c:identifier="BD_FS_TECH_EXT3">
      </member>
      <member name="ext4" value="4" c:identifier="BD_FS_TECH_EXT4">
      </member>
      <member name="xfs" value="5" c:identifier="BD_FS_TECH_XFS">
      </member>
      <member name="vfat" value="6" c:identifier="BD_FS_TECH_VFAT">
      </member>
      <member name="ntfs" value="7" c:identifier="BD_FS_TECH_NTFS">
      </member>
    </enumeration>
    <bitfield name="FSTechMode" c:type="BDFSTechMode">
      <source-position filename="lib/plugin_apis/fs.h" line="221"/>
      <member name="mkfs" value="1" c:identifier="BD_FS_TECH_MODE_MKFS">
      </member>
      <member name="wipe" value="2" c:identifier="BD_FS_TECH_MODE_WIPE">
      </member>
      <member name="check" value="4" c:identifier="BD_FS_TECH_MODE_CHECK">
      </member>
      <member name="repair" value="8" c:identifier="BD_FS_TECH_MODE_REPAIR">
      </member>
      <member name="set_label"
              value="16"
              c:identifier="BD_FS_TECH_MODE_SET_LABEL">
      </member>
      <member name="query" value="32" c:identifier="BD_FS_TECH_MODE_QUERY">
      </member>
      <member name="resize" value="64" c:identifier="BD_FS_TECH_MODE_RESIZE">
      </member>
    </bitfield>
    <record name="FSVfatInfo"
            c:type="BDFSVfatInfo"
            glib:type-name="BDFSVfatInfo"
            glib:get-type="bd_fs_vfat_info_get_type"
            c:symbol-prefix="fs_vfat_info">
      <source-position filename="lib/plugin_apis/fs.h" line="146"/>
      <field name="label" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="150">label of the filesystem</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="uuid" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="151">uuid of the filesystem</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="cluster_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="152">cluster size used by the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="cluster_count" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="153">number of clusters in the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="free_cluster_count" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="154">number of free clusters in the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <method name="copy"
              c:identifier="bd_fs_vfat_info_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="156">Creates a new copy of @data.</doc>
        <source-position filename="lib/plugin_apis/fs.h" line="161"/>
        <return-value transfer-ownership="full">
          <type name="FSVfatInfo" c:type="BDFSVfatInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="FSVfatInfo" c:type="BDFSVfatInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_fs_vfat_info_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="164">Frees @data.</doc>
        <source-position filename="lib/plugin_apis/fs.h" line="169"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="FSVfatInfo" c:type="BDFSVfatInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="FSXfsInfo"
            c:type="BDFSXfsInfo"
            glib:type-name="BDFSXfsInfo"
            glib:get-type="bd_fs_xfs_info_get_type"
            c:symbol-prefix="fs_xfs_info">
      <source-position filename="lib/plugin_apis/fs.h" line="110"/>
      <field name="label" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="114">label of the filesystem</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="uuid" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="115">uuid of the filesystem</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="block_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="116">block size used by the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="block_count" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="117">number of blocks in the filesystem</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <method name="copy"
              c:identifier="bd_fs_xfs_info_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="119">Creates a new copy of @data.</doc>
        <source-position filename="lib/plugin_apis/fs.h" line="124"/>
        <return-value transfer-ownership="full">
          <type name="FSXfsInfo" c:type="BDFSXfsInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="FSXfsInfo" c:type="BDFSXfsInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_fs_xfs_info_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="127">Frees @data.</doc>
        <source-position filename="lib/plugin_apis/fs.h" line="132"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="FSXfsInfo" c:type="BDFSXfsInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="FsError"
                 c:type="BDFsError"
                 glib:error-domain="g-bd-fs-error-quark">
      <source-position filename="lib/plugin_apis/fs.h" line="24"/>
      <member name="inval" value="0" c:identifier="BD_FS_ERROR_INVAL">
      </member>
      <member name="parse" value="1" c:identifier="BD_FS_ERROR_PARSE">
      </member>
      <member name="fail" value="2" c:identifier="BD_FS_ERROR_FAIL">
      </member>
      <member name="nofs" value="3" c:identifier="BD_FS_ERROR_NOFS">
      </member>
      <member name="pipe" value="4" c:identifier="BD_FS_ERROR_PIPE">
      </member>
      <member name="unmount_fail"
              value="5"
              c:identifier="BD_FS_ERROR_UNMOUNT_FAIL">
      </member>
      <member name="not_supported"
              value="6"
              c:identifier="BD_FS_ERROR_NOT_SUPPORTED">
      </member>
      <member name="not_mounted"
              value="7"
              c:identifier="BD_FS_ERROR_NOT_MOUNTED">
      </member>
      <member name="auth" value="8" c:identifier="BD_FS_ERROR_AUTH">
      </member>
      <member name="tech_unavail"
              value="9"
              c:identifier="BD_FS_ERROR_TECH_UNAVAIL">
      </member>
    </enumeration>
    <bitfield name="FsResizeFlags" c:type="BDFsResizeFlags">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/fs.h"
           line="466">Flags indicating whether a filesystem resize action supports growing and/or
shrinking if mounted or unmounted.</doc>
      <source-position filename="lib/plugin_apis/fs.h" line="464"/>
      <member name="offline_shrink"
              value="2"
              c:identifier="BD_FS_OFFLINE_SHRINK">
      </member>
      <member name="offline_grow" value="4" c:identifier="BD_FS_OFFLINE_GROW">
      </member>
      <member name="online_shrink"
              value="8"
              c:identifier="BD_FS_ONLINE_SHRINK">
      </member>
      <member name="online_grow" value="16" c:identifier="BD_FS_ONLINE_GROW">
      </member>
    </bitfield>
    <enumeration name="InitError"
                 c:type="BDInitError"
                 glib:error-domain="g-bd-init-error-quark">
      <source-position filename="lib/blockdev.h" line="18"/>
      <member name="plugins_failed"
              value="0"
              c:identifier="BD_INIT_ERROR_PLUGINS_FAILED">
      </member>
      <member name="not_implemented"
              value="1"
              c:identifier="BD_INIT_ERROR_NOT_IMPLEMENTED">
      </member>
      <member name="failed" value="2" c:identifier="BD_INIT_ERROR_FAILED">
      </member>
    </enumeration>
    <enumeration name="KBDBcacheMode" c:type="BDKBDBcacheMode">
      <source-position filename="lib/plugin_apis/kbd.h" line="38"/>
      <member name="writethrough"
              value="0"
              c:identifier="BD_KBD_MODE_WRITETHROUGH">
      </member>
      <member name="writeback" value="1" c:identifier="BD_KBD_MODE_WRITEBACK">
      </member>
      <member name="writearound"
              value="2"
              c:identifier="BD_KBD_MODE_WRITEAROUND">
      </member>
      <member name="none" value="3" c:identifier="BD_KBD_MODE_NONE">
      </member>
      <member name="unknown" value="4" c:identifier="BD_KBD_MODE_UNKNOWN">
      </member>
    </enumeration>
    <record name="KBDBcacheStats"
            c:type="BDKBDBcacheStats"
            glib:type-name="BDKBDBcacheStats"
            glib:get-type="bd_kbd_bcache_stats_get_type"
            c:symbol-prefix="kbd_bcache_stats">
      <source-position filename="lib/plugin_apis/kbd.h" line="93"/>
      <field name="state" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="97">state of the cache</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="block_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="98">block size used by the cache</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="cache_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="99">size of the cache</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="cache_used" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="100">size of the used space in the cache</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="hits" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="101">number of hits</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="misses" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="102">number of misses</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="bypass_hits" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="103">number of bypass hits</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="bypass_misses" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="104">number of bypass misses</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <method name="copy"
              c:identifier="bd_kbd_bcache_stats_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="106">Creates a new copy of @data.</doc>
        <source-position filename="lib/plugin_apis/kbd.h" line="111"/>
        <return-value transfer-ownership="full">
          <type name="KBDBcacheStats" c:type="BDKBDBcacheStats*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="KBDBcacheStats" c:type="BDKBDBcacheStats*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_kbd_bcache_stats_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="114">Frees @data.</doc>
        <source-position filename="lib/plugin_apis/kbd.h" line="119"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="KBDBcacheStats" c:type="BDKBDBcacheStats*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="KBDError"
                 c:type="BDKBDError"
                 glib:error-domain="g-bd-kbd-error-quark">
      <source-position filename="lib/plugin_apis/kbd.h" line="30"/>
      <member name="inval" value="0" c:identifier="BD_KBD_ERROR_INVAL">
      </member>
      <member name="kmod_init_fail"
              value="1"
              c:identifier="BD_KBD_ERROR_KMOD_INIT_FAIL">
      </member>
      <member name="module_fail"
              value="2"
              c:identifier="BD_KBD_ERROR_MODULE_FAIL">
      </member>
      <member name="module_noexist"
              value="3"
              c:identifier="BD_KBD_ERROR_MODULE_NOEXIST">
      </member>
      <member name="zram_noexist"
              value="4"
              c:identifier="BD_KBD_ERROR_ZRAM_NOEXIST">
      </member>
      <member name="zram_inval"
              value="5"
              c:identifier="BD_KBD_ERROR_ZRAM_INVAL">
      </member>
      <member name="bcache_parse"
              value="6"
              c:identifier="BD_KBD_ERROR_BCACHE_PARSE">
      </member>
      <member name="bcache_setup_fail"
              value="7"
              c:identifier="BD_KBD_ERROR_BCACHE_SETUP_FAIL">
      </member>
      <member name="bcache_detach_fail"
              value="8"
              c:identifier="BD_KBD_ERROR_BCACHE_DETACH_FAIL">
      </member>
      <member name="bcache_not_attached"
              value="9"
              c:identifier="BD_KBD_ERROR_BCACHE_NOT_ATTACHED">
      </member>
      <member name="bcache_uuid"
              value="10"
              c:identifier="BD_KBD_ERROR_BCACHE_UUID">
      </member>
      <member name="bcache_mode_fail"
              value="11"
              c:identifier="BD_KBD_ERROR_BCACHE_MODE_FAIL">
      </member>
      <member name="bcache_mode_inval"
              value="12"
              c:identifier="BD_KBD_ERROR_BCACHE_MODE_INVAL">
      </member>
      <member name="bcache_noexist"
              value="13"
              c:identifier="BD_KBD_ERROR_BCACHE_NOEXIST">
      </member>
      <member name="bcache_inval"
              value="14"
              c:identifier="BD_KBD_ERROR_BCACHE_INVAL">
      </member>
      <member name="tech_unavail"
              value="15"
              c:identifier="BD_KBD_ERROR_TECH_UNAVAIL">
      </member>
    </enumeration>
    <enumeration name="KBDTech" c:type="BDKBDTech">
      <source-position filename="lib/plugin_apis/kbd.h" line="126"/>
      <member name="zram" value="0" c:identifier="BD_KBD_TECH_ZRAM">
      </member>
      <member name="bcache" value="1" c:identifier="BD_KBD_TECH_BCACHE">
      </member>
    </enumeration>
    <bitfield name="KBDTechMode" c:type="BDKBDTechMode">
      <source-position filename="lib/plugin_apis/kbd.h" line="133"/>
      <member name="create" value="1" c:identifier="BD_KBD_TECH_MODE_CREATE">
      </member>
      <member name="destroy" value="2" c:identifier="BD_KBD_TECH_MODE_DESTROY">
      </member>
      <member name="modify" value="4" c:identifier="BD_KBD_TECH_MODE_MODIFY">
      </member>
      <member name="query" value="8" c:identifier="BD_KBD_TECH_MODE_QUERY">
      </member>
    </bitfield>
    <record name="KBDZramStats"
            c:type="BDKBDZramStats"
            glib:type-name="BDKBDZramStats"
            glib:get-type="bd_kbd_zram_stats_get_type"
            c:symbol-prefix="kbd_zram_stats">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/kbd.h"
           line="57">see zRAM kernel documentation for details
(https://www.kernel.org/doc/Documentation/blockdev/zram.txt)</doc>
      <source-position filename="lib/plugin_apis/kbd.h" line="55"/>
      <field name="disksize" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="num_reads" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="num_writes" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="invalid_io" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="zero_pages" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="max_comp_streams" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="comp_algorithm" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="orig_data_size" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="compr_data_size" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="mem_used_total" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <method name="copy"
              c:identifier="bd_kbd_zram_stats_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="63">Creates a new copy of @data.</doc>
        <source-position filename="lib/plugin_apis/kbd.h" line="68"/>
        <return-value transfer-ownership="full">
          <type name="KBDZramStats" c:type="BDKBDZramStats*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="KBDZramStats" c:type="BDKBDZramStats*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_kbd_zram_stats_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="71">Frees @data.</doc>
        <source-position filename="lib/plugin_apis/kbd.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="KBDZramStats" c:type="BDKBDZramStats*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="LVMCacheMode" c:type="BDLVMCacheMode">
      <source-position filename="lib/plugin_apis/lvm.h" line="67"/>
      <member name="writethrough"
              value="0"
              c:identifier="BD_LVM_CACHE_MODE_WRITETHROUGH">
      </member>
      <member name="writeback"
              value="1"
              c:identifier="BD_LVM_CACHE_MODE_WRITEBACK">
      </member>
      <member name="unknown"
              value="2"
              c:identifier="BD_LVM_CACHE_MODE_UNKNOWN">
      </member>
    </enumeration>
    <bitfield name="LVMCachePoolFlags" c:type="BDLVMCachePoolFlags">
      <source-position filename="lib/plugin_apis/lvm.h" line="61"/>
      <member name="striped"
              value="1"
              c:identifier="BD_LVM_CACHE_POOL_STRIPED">
      </member>
      <member name="raid1" value="2" c:identifier="BD_LVM_CACHE_POOL_RAID1">
      </member>
      <member name="raid5" value="4" c:identifier="BD_LVM_CACHE_POOL_RAID5">
      </member>
      <member name="raid6" value="8" c:identifier="BD_LVM_CACHE_POOL_RAID6">
      </member>
      <member name="raid10" value="16" c:identifier="BD_LVM_CACHE_POOL_RAID10">
      </member>
      <member name="meta_striped"
              value="1024"
              c:identifier="BD_LVM_CACHE_POOL_META_STRIPED">
      </member>
      <member name="meta_raid1"
              value="2048"
              c:identifier="BD_LVM_CACHE_POOL_META_RAID1">
      </member>
      <member name="meta_raid5"
              value="4096"
              c:identifier="BD_LVM_CACHE_POOL_META_RAID5">
      </member>
      <member name="meta_raid6"
              value="8192"
              c:identifier="BD_LVM_CACHE_POOL_META_RAID6">
      </member>
      <member name="meta_raid10"
              value="16384"
              c:identifier="BD_LVM_CACHE_POOL_META_RAID10">
      </member>
    </bitfield>
    <record name="LVMCacheStats"
            c:type="BDLVMCacheStats"
            glib:type-name="BDLVMCacheStats"
            glib:get-type="bd_lvm_cache_stats_get_type"
            c:symbol-prefix="lvm_cache_stats">
      <source-position filename="lib/plugin_apis/lvm.h" line="359"/>
      <field name="block_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="363">block size used by the cache</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="cache_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="364">size of the cache</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="cache_used" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="365">size of the used space in the cache</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="md_block_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="366">block size used for cache metadata</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="md_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="367">size of the metadata space of the cache</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="md_used" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="368">size of the used metadata space in the cache</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="read_hits" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="369">number of read hits</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="read_misses" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="370">number of read misses</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="write_hits" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="371">number of write hits</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="write_misses" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="372">number of write misses</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="mode" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="373">mode the cache is operating in</doc>
        <type name="LVMCacheMode" c:type="BDLVMCacheMode"/>
      </field>
      <method name="copy"
              c:identifier="bd_lvm_cache_stats_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="375">Creates a new copy of @data.</doc>
        <source-position filename="lib/plugin_apis/lvm.h" line="380"/>
        <return-value transfer-ownership="full">
          <type name="LVMCacheStats" c:type="BDLVMCacheStats*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="LVMCacheStats" c:type="BDLVMCacheStats*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="free"
                c:identifier="bd_lvm_cache_stats_free"
                introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="383">Frees @data.</doc>
        <source-position filename="lib/plugin_apis/lvm.h" line="388"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <type name="LVMLVdata" c:type="BDLVMLVdata*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <enumeration name="LVMError"
                 c:type="BDLVMError"
                 glib:error-domain="g-bd-lvm-error-quark">
      <source-position filename="lib/plugin_apis/lvm.h" line="47"/>
      <member name="parse" value="0" c:identifier="BD_LVM_ERROR_PARSE">
      </member>
      <member name="noexist" value="1" c:identifier="BD_LVM_ERROR_NOEXIST">
      </member>
      <member name="dm_error" value="2" c:identifier="BD_LVM_ERROR_DM_ERROR">
      </member>
      <member name="not_root" value="3" c:identifier="BD_LVM_ERROR_NOT_ROOT">
      </member>
      <member name="cache_inval"
              value="4"
              c:identifier="BD_LVM_ERROR_CACHE_INVAL">
      </member>
      <member name="cache_nocache"
              value="5"
              c:identifier="BD_LVM_ERROR_CACHE_NOCACHE">
      </member>
      <member name="tech_unavail"
              value="6"
              c:identifier="BD_LVM_ERROR_TECH_UNAVAIL">
      </member>
      <member name="fail" value="7" c:identifier="BD_LVM_ERROR_FAIL">
      </member>
      <member name="not_supported"
              value="8"
              c:identifier="BD_LVM_ERROR_NOT_SUPPORTED">
      </member>
      <member name="vdo_policy_inval"
              value="9"
              c:identifier="BD_LVM_ERROR_VDO_POLICY_INVAL">
      </member>
    </enumeration>
    <record name="LVMLVdata"
            c:type="BDLVMLVdata"
            glib:type-name="BDLVMLVdata"
            glib:get-type="bd_lvm_lvdata_get_type"
            c:symbol-prefix="lvm_lvdata">
      <source-position filename="lib/plugin_apis/lvm.h" line="216"/>
      <field name="lv_name" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="220">name of the LV</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="vg_name" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="221">name of the VG the LV belongs to</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="uuid" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="222">UUID of the LV</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="223">size of the LV</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="attr" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="224">attributes of the LV</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="segtype" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="225">segment type of the LV</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="origin" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="226">origin of the LV (for snapshots, etc.)</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="pool_lv" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="227">pool LV of the LV (for thin and cached LVs)</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="data_lv" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="228">data LV of the LV (for thin and cache pools)</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="metadata_lv" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="229">metadata LV of the LV (for thin and cache pools)</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="roles" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="move_pv" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="data_percent" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="metadata_percent" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="copy_percent" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <method name="copy" c:identifier="bd_lvm_lvdata_copy" introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="231">Creates a new copy of @data.</doc>
        <source-position filename="lib/plugin_apis/lvm.h" line="236"/>
        <return-value transfer-ownership="full">
          <type name="LVMLVdata" c:type="BDLVMLVdata*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="LVMLVdata" c:type="BDLVMLVdata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="bd_lvm_lvdata_free" introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="239">Frees @data.</doc>
        <source-position filename="lib/plugin_apis/lvm.h" line="244"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="LVMLVdata" c:type="BDLVMLVdata*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="LVMPVdata"
            c:type="BDLVMPVdata"
            glib:type-name="BDLVMPVdata"
            glib:get-type="bd_lvm_pvdata_get_type"
            c:symbol-prefix="lvm_pvdata">
      <source-position filename="lib/plugin_apis/lvm.h" line="118"/>
      <field name="pv_name" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="122">name of the PV</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="pv_uuid" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="123">UUID of the PV</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="pv_free" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="124">size of the free space in the PV</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="pv_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="125">size of the PV</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="pe_start" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="126">start of the physical extents area (i.e. offset of the first PE)</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="vg_name" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="127">name of the VG the PV belongs to</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="vg_uuid" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="128">UUID of the VG the PV belongs to</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="vg_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="129">size of the VG the PV belongs to</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="vg_free" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="130">size of the free space in the PV's VG</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="vg_extent_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="131">extent size used by the PV's VG</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="vg_extent_count" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="132">number of extents in the PV's VG</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="vg_free_count" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="133">number of free extents in the PV's VG</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="vg_pv_count" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="134">number of PVs that belong to this PV's VG</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <method name="copy" c:identifier="bd_lvm_pvdata_copy" introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="136">Creates a new copy of @data.</doc>
        <source-position filename="lib/plugin_apis/lvm.h" line="141"/>
        <return-value transfer-ownership="full">
          <type name="LVMPVdata" c:type="BDLVMPVdata*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="LVMPVdata" c:type="BDLVMPVdata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="bd_lvm_pvdata_free" introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="144">Frees @data.</doc>
        <source-position filename="lib/plugin_apis/lvm.h" line="149"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="LVMPVdata" c:type="BDLVMPVdata*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="LVMTech" c:type="BDLVMTech">
      <source-position filename="lib/plugin_apis/lvm.h" line="402"/>
      <member name="basic" value="0" c:identifier="BD_LVM_TECH_BASIC">
      </member>
      <member name="basic_snap"
              value="1"
              c:identifier="BD_LVM_TECH_BASIC_SNAP">
      </member>
      <member name="thin" value="2" c:identifier="BD_LVM_TECH_THIN">
      </member>
      <member name="cache" value="3" c:identifier="BD_LVM_TECH_CACHE">
      </member>
      <member name="calcs" value="4" c:identifier="BD_LVM_TECH_CALCS">
      </member>
      <member name="thin_calcs"
              value="5"
              c:identifier="BD_LVM_TECH_THIN_CALCS">
      </member>
      <member name="cache_calcs"
              value="6"
              c:identifier="BD_LVM_TECH_CACHE_CALCS">
      </member>
      <member name="glob_conf" value="7" c:identifier="BD_LVM_TECH_GLOB_CONF">
      </member>
      <member name="vdo" value="8" c:identifier="BD_LVM_TECH_VDO">
      </member>
    </enumeration>
    <bitfield name="LVMTechMode" c:type="BDLVMTechMode">
      <source-position filename="lib/plugin_apis/lvm.h" line="409"/>
      <member name="create" value="1" c:identifier="BD_LVM_TECH_MODE_CREATE">
      </member>
      <member name="remove" value="4" c:identifier="BD_LVM_TECH_MODE_REMOVE">
      </member>
      <member name="modify" value="8" c:identifier="BD_LVM_TECH_MODE_MODIFY">
      </member>
      <member name="query" value="16" c:identifier="BD_LVM_TECH_MODE_QUERY">
      </member>
    </bitfield>
    <enumeration name="LVMVDOCompressionState"
                 c:type="BDLVMVDOCompressionState">
      <source-position filename="lib/plugin_apis/lvm.h" line="80"/>
      <member name="online"
              value="0"
              c:identifier="BD_LVM_VDO_COMPRESSION_ONLINE">
      </member>
      <member name="offline"
              value="1"
              c:identifier="BD_LVM_VDO_COMPRESSION_OFFLINE">
      </member>
      <member name="unknown"
              value="255"
              c:identifier="BD_LVM_VDO_COMPRESSION_UNKNOWN">
      </member>
    </enumeration>
    <enumeration name="LVMVDOIndexState" c:type="BDLVMVDOIndexState">
      <source-position filename="lib/plugin_apis/lvm.h" line="90"/>
      <member name="error" value="0" c:identifier="BD_LVM_VDO_INDEX_ERROR">
      </member>
      <member name="closed" value="1" c:identifier="BD_LVM_VDO_INDEX_CLOSED">
      </member>
      <member name="opening" value="2" c:identifier="BD_LVM_VDO_INDEX_OPENING">
      </member>
      <member name="closing" value="3" c:identifier="BD_LVM_VDO_INDEX_CLOSING">
      </member>
      <member name="offline" value="4" c:identifier="BD_LVM_VDO_INDEX_OFFLINE">
      </member>
      <member name="online" value="5" c:identifier="BD_LVM_VDO_INDEX_ONLINE">
      </member>
      <member name="unknown"
              value="255"
              c:identifier="BD_LVM_VDO_INDEX_UNKNOWN">
      </member>
    </enumeration>
    <enumeration name="LVMVDOOperatingMode" c:type="BDLVMVDOOperatingMode">
      <source-position filename="lib/plugin_apis/lvm.h" line="74"/>
      <member name="recovering"
              value="0"
              c:identifier="BD_LVM_VDO_MODE_RECOVERING">
      </member>
      <member name="read_only"
              value="1"
              c:identifier="BD_LVM_VDO_MODE_READ_ONLY">
      </member>
      <member name="normal" value="2" c:identifier="BD_LVM_VDO_MODE_NORMAL">
      </member>
      <member name="unknown"
              value="255"
              c:identifier="BD_LVM_VDO_MODE_UNKNOWN">
      </member>
    </enumeration>
    <record name="LVMVDOPooldata"
            c:type="BDLVMVDOPooldata"
            glib:type-name="BDLVMVDOPooldata"
            glib:get-type="bd_lvm_vdopooldata_get_type"
            c:symbol-prefix="lvm_vdopooldata">
      <source-position filename="lib/plugin_apis/lvm.h" line="263"/>
      <field name="operating_mode" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="267">operating mode of the VDO pool (e.g. %BD_LVM_VDO_MODE_NORMAL)</doc>
        <type name="LVMVDOOperatingMode" c:type="BDLVMVDOOperatingMode"/>
      </field>
      <field name="compression_state" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="268">state of the compression</doc>
        <type name="LVMVDOCompressionState" c:type="BDLVMVDOCompressionState"/>
      </field>
      <field name="index_state" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="269">state of the VDO index</doc>
        <type name="LVMVDOIndexState" c:type="BDLVMVDOIndexState"/>
      </field>
      <field name="write_policy" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="270">write policy of the VDO LV</doc>
        <type name="LVMVDOWritePolicy" c:type="BDLVMVDOWritePolicy"/>
      </field>
      <field name="used_size" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="saving_percent" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="271">percentage of physical blocks saved</doc>
        <type name="gint32" c:type="gint32"/>
      </field>
      <field name="index_memory_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="272">index memory size of the VDO volume</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="deduplication" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="273">whether deduplication is enabled</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="compression" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="274">whether compression is enabled</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <method name="copy"
              c:identifier="bd_lvm_vdopooldata_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="276">Creates a new copy of @data.</doc>
        <source-position filename="lib/plugin_apis/lvm.h" line="281"/>
        <return-value transfer-ownership="full">
          <type name="LVMVDOPooldata" c:type="BDLVMVDOPooldata*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="LVMVDOPooldata" c:type="BDLVMVDOPooldata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_lvm_vdopooldata_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="284">Frees @data.</doc>
        <source-position filename="lib/plugin_apis/lvm.h" line="289"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="LVMVDOPooldata" c:type="BDLVMVDOPooldata*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="LVMVDOStats"
            c:type="BDLVMVDOStats"
            glib:type-name="BDLVMVDOStats"
            glib:get-type="bd_lvm_vdo_stats_get_type"
            c:symbol-prefix="lvm_vdo_stats">
      <source-position filename="lib/plugin_apis/lvm.h" line="307"/>
      <field name="block_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="311">The block size of a VDO volume, in bytes.</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="logical_block_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="312">The logical block size, in bytes.</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="physical_blocks" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="313">The total number of physical blocks allocated for a VDO volume.</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="data_blocks_used" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="314">The number of physical blocks currently in use by a VDO volume
                   to store data.</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="overhead_blocks_used" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="316">The number of physical blocks currently in use by a VDO volume
                       to store VDO metadata.</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="logical_blocks_used" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="318">The number of logical blocks currently mapped.</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="used_percent" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="319">The percentage of physical blocks used on a VDO volume
               (= used blocks / allocated blocks * 100).</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="saving_percent" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="321">The percentage of physical blocks saved on a VDO volume
                 (= [logical blocks used - physical blocks used] / logical blocks used).</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="write_amplification_ratio" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="323">The average number of block writes to the underlying storage
                            per block written to the VDO device.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <method name="copy"
              c:identifier="bd_lvm_vdo_stats_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="326">Creates a new copy of @data.</doc>
        <source-position filename="lib/plugin_apis/lvm.h" line="331"/>
        <return-value transfer-ownership="full">
          <type name="LVMVDOStats" c:type="BDLVMVDOStats*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="LVMVDOStats" c:type="BDLVMVDOStats*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_lvm_vdo_stats_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="334">Frees @data.</doc>
        <source-position filename="lib/plugin_apis/lvm.h" line="339"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="LVMVDOStats" c:type="BDLVMVDOStats*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="LVMVDOWritePolicy" c:type="BDLVMVDOWritePolicy">
      <source-position filename="lib/plugin_apis/lvm.h" line="97"/>
      <member name="auto"
              value="0"
              c:identifier="BD_LVM_VDO_WRITE_POLICY_AUTO">
      </member>
      <member name="sync"
              value="1"
              c:identifier="BD_LVM_VDO_WRITE_POLICY_SYNC">
      </member>
      <member name="async"
              value="2"
              c:identifier="BD_LVM_VDO_WRITE_POLICY_ASYNC">
      </member>
      <member name="unknown"
              value="255"
              c:identifier="BD_LVM_VDO_WRITE_POLICY_UNKNOWN">
      </member>
    </enumeration>
    <record name="LVMVGdata"
            c:type="BDLVMVGdata"
            glib:type-name="BDLVMVGdata"
            glib:get-type="bd_lvm_vgdata_get_type"
            c:symbol-prefix="lvm_vgdata">
      <source-position filename="lib/plugin_apis/lvm.h" line="166"/>
      <field name="name" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="170">name of the VG</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="uuid" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="171">UUID of the VG</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="172">size of the VG</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="free" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="173">size of the free space in the VG</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="extent_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="174">extent size used by the VG</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="extent_count" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="175">number of extents in the VG</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="free_count" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="176">number of free extents in the VG</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="pv_count" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="177">number of PVs that belong to the VG</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <method name="copy" c:identifier="bd_lvm_vgdata_copy" introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="179">Creates a new copy of @data.</doc>
        <source-position filename="lib/plugin_apis/lvm.h" line="184"/>
        <return-value transfer-ownership="full">
          <type name="LVMVGdata" c:type="BDLVMVGdata*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="LVMVGdata" c:type="BDLVMVGdata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="bd_lvm_vgdata_free" introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="187">Frees @data.</doc>
        <source-position filename="lib/plugin_apis/lvm.h" line="192"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="LVMVGdata" c:type="BDLVMVGdata*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <constant name="LVM_DEFAULT_CHUNK_SIZE"
              value="65536"
              c:type="BD_LVM_DEFAULT_CHUNK_SIZE">
      <source-position filename="lib/plugin_apis/lvm.h" line="22"/>
      <type name="guint64" c:type="guint64"/>
    </constant>
    <constant name="LVM_DEFAULT_PE_SIZE"
              value="4194304"
              c:type="BD_LVM_DEFAULT_PE_SIZE">
      <source-position filename="lib/plugin_apis/lvm.h" line="15"/>
      <type name="guint64" c:type="guint64"/>
    </constant>
    <constant name="LVM_DEFAULT_PE_START"
              value="1048576"
              c:type="BD_LVM_DEFAULT_PE_START">
      <source-position filename="lib/plugin_apis/lvm.h" line="14"/>
      <type name="guint64" c:type="guint64"/>
    </constant>
    <constant name="LVM_MAX_LV_SIZE"
              value="9223372036854775808"
              c:type="BD_LVM_MAX_LV_SIZE"
              deprecated="1"
              deprecated-version="2.23">
      <doc-deprecated xml:space="preserve">Use bd_lvm_get_max_lv_size() function instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/lvm.h" line="11"/>
      <type name="guint64" c:type="guint64"/>
    </constant>
    <constant name="LVM_MAX_PE_SIZE"
              value="17179869184"
              c:type="BD_LVM_MAX_PE_SIZE">
      <source-position filename="lib/plugin_apis/lvm.h" line="17"/>
      <type name="guint64" c:type="guint64"/>
    </constant>
    <constant name="LVM_MAX_THPOOL_CHUNK_SIZE"
              value="1073741824"
              c:type="BD_LVM_MAX_THPOOL_CHUNK_SIZE">
      <source-position filename="lib/plugin_apis/lvm.h" line="21"/>
      <type name="guint64" c:type="guint64"/>
    </constant>
    <constant name="LVM_MAX_THPOOL_MD_SIZE"
              value="16978542592"
              c:type="BD_LVM_MAX_THPOOL_MD_SIZE">
      <source-position filename="lib/plugin_apis/lvm.h" line="19"/>
      <type name="guint64" c:type="guint64"/>
    </constant>
    <constant name="LVM_MIN_CACHE_MD_SIZE"
              value="8388608"
              c:type="BD_LVM_MIN_CACHE_MD_SIZE">
      <source-position filename="lib/plugin_apis/lvm.h" line="25"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="LVM_MIN_PE_SIZE" value="1024" c:type="BD_LVM_MIN_PE_SIZE">
      <source-position filename="lib/plugin_apis/lvm.h" line="16"/>
      <type name="guint64" c:type="guint64"/>
    </constant>
    <constant name="LVM_MIN_THPOOL_CHUNK_SIZE"
              value="65536"
              c:type="BD_LVM_MIN_THPOOL_CHUNK_SIZE">
      <source-position filename="lib/plugin_apis/lvm.h" line="20"/>
      <type name="guint64" c:type="guint64"/>
    </constant>
    <constant name="LVM_MIN_THPOOL_MD_SIZE"
              value="4194304"
              c:type="BD_LVM_MIN_THPOOL_MD_SIZE">
      <source-position filename="lib/plugin_apis/lvm.h" line="18"/>
      <type name="guint64" c:type="guint64"/>
    </constant>
    <enumeration name="LoopError"
                 c:type="BDLoopError"
                 glib:error-domain="g-bd-loop-error-quark">
      <source-position filename="lib/plugin_apis/loop.h" line="13"/>
      <member name="device" value="0" c:identifier="BD_LOOP_ERROR_DEVICE">
      </member>
      <member name="fail" value="1" c:identifier="BD_LOOP_ERROR_FAIL">
      </member>
      <member name="tech_unavail"
              value="2"
              c:identifier="BD_LOOP_ERROR_TECH_UNAVAIL">
      </member>
    </enumeration>
    <enumeration name="LoopTech" c:type="BDLoopTech">
      <source-position filename="lib/plugin_apis/loop.h" line="17"/>
      <member name="loop_tech_loop" value="0" c:identifier="BD_LOOP_TECH_LOOP">
      </member>
    </enumeration>
    <bitfield name="LoopTechMode" c:type="BDLoopTechMode">
      <source-position filename="lib/plugin_apis/loop.h" line="24"/>
      <member name="create" value="1" c:identifier="BD_LOOP_TECH_MODE_CREATE">
      </member>
      <member name="destroy"
              value="2"
              c:identifier="BD_LOOP_TECH_MODE_DESTROY">
      </member>
      <member name="modify" value="4" c:identifier="BD_LOOP_TECH_MODE_MODIFY">
      </member>
      <member name="query" value="8" c:identifier="BD_LOOP_TECH_MODE_QUERY">
      </member>
    </bitfield>
    <record name="MDDetailData"
            c:type="BDMDDetailData"
            glib:type-name="BDMDDetailData"
            glib:get-type="bd_md_detail_data_get_type"
            c:symbol-prefix="md_detail_data">
      <source-position filename="lib/plugin_apis/mdraid.h" line="96"/>
      <field name="device" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="100">path of the device</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="metadata" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="101">version of the metadata used by the device</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="creation_time" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="102">creation time</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="level" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="103">level of the MD RAID</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="name" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="104">name of the MD device</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="array_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="105">size of the MD array</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="use_dev_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="106">size of the used space</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="raid_devices" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="107">number of devices in the MD array</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="total_devices" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="108">total number of devices in the MD array</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="active_devices" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="109">number of active devices in the MD array</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="working_devices" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="110">number of working devices in the MD array</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="failed_devices" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="111">number of failed devices in the MD array</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="spare_devices" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="112">number of spare devices in the MD array</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="clean" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="113">whether the MD array is clean or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="uuid" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="114">uuid of the MD array</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <method name="copy"
              c:identifier="bd_md_detail_data_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="116">Creates a new copy of @data.</doc>
        <source-position filename="lib/plugin_apis/mdraid.h" line="121"/>
        <return-value transfer-ownership="full">
          <type name="MDDetailData" c:type="BDMDDetailData*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="MDDetailData" c:type="BDMDDetailData*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_md_detail_data_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="124">Frees @data.</doc>
        <source-position filename="lib/plugin_apis/mdraid.h" line="129"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="MDDetailData" c:type="BDMDDetailData*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="MDError"
                 c:type="BDMDError"
                 glib:error-domain="g-bd-md-error-quark">
      <source-position filename="lib/plugin_apis/mdraid.h" line="25"/>
      <member name="parse" value="0" c:identifier="BD_MD_ERROR_PARSE">
      </member>
      <member name="bad_format"
              value="1"
              c:identifier="BD_MD_ERROR_BAD_FORMAT">
      </member>
      <member name="no_match" value="2" c:identifier="BD_MD_ERROR_NO_MATCH">
      </member>
      <member name="inval" value="3" c:identifier="BD_MD_ERROR_INVAL">
      </member>
      <member name="fail" value="4" c:identifier="BD_MD_ERROR_FAIL">
      </member>
      <member name="tech_unavail"
              value="5"
              c:identifier="BD_MD_ERROR_TECH_UNAVAIL">
      </member>
    </enumeration>
    <record name="MDExamineData"
            c:type="BDMDExamineData"
            glib:type-name="BDMDExamineData"
            glib:get-type="bd_md_examine_data_get_type"
            c:symbol-prefix="md_examine_data">
      <source-position filename="lib/plugin_apis/mdraid.h" line="43"/>
      <field name="device" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="47">path of the MD device</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="level" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="48">RAID level of the device</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="num_devices" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="49">number of devices used by the MD device</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="name" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="50">name of the MD device</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="51">size of the MD device</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="uuid" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="52">array UUID</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="update_time" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="53">update time of the MD device</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="dev_uuid" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="54">UUID of the member device</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="events" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="55">number of events on the MD device</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="metadata" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="56">version of the metadata used by the MD device</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="chunk_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="57">chunk size used by the MD device</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <method name="copy"
              c:identifier="bd_md_examine_data_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="59">Creates a new copy of @data.</doc>
        <source-position filename="lib/plugin_apis/mdraid.h" line="64"/>
        <return-value transfer-ownership="full">
          <type name="MDExamineData" c:type="BDMDExamineData*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="MDExamineData" c:type="BDMDExamineData*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_md_examine_data_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="67">Frees @data.</doc>
        <source-position filename="lib/plugin_apis/mdraid.h" line="72"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="MDExamineData" c:type="BDMDExamineData*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="MDTech" c:type="BDMDTech">
      <source-position filename="lib/plugin_apis/mdraid.h" line="135"/>
      <member name="md_tech_mdraid" value="0" c:identifier="BD_MD_TECH_MDRAID">
      </member>
    </enumeration>
    <bitfield name="MDTechMode" c:type="BDMDTechMode">
      <source-position filename="lib/plugin_apis/mdraid.h" line="142"/>
      <member name="create" value="1" c:identifier="BD_MD_TECH_MODE_CREATE">
      </member>
      <member name="delete" value="2" c:identifier="BD_MD_TECH_MODE_DELETE">
      </member>
      <member name="modify" value="4" c:identifier="BD_MD_TECH_MODE_MODIFY">
      </member>
      <member name="query" value="8" c:identifier="BD_MD_TECH_MODE_QUERY">
      </member>
    </bitfield>
    <constant name="MD_CHUNK_SIZE" value="524288" c:type="BD_MD_CHUNK_SIZE">
      <source-position filename="lib/plugin_apis/mdraid.h" line="12"/>
      <type name="guint64" c:type="guint64"/>
    </constant>
    <constant name="MD_SUPERBLOCK_SIZE"
              value="2097152"
              c:type="BD_MD_SUPERBLOCK_SIZE">
      <source-position filename="lib/plugin_apis/mdraid.h" line="11"/>
      <type name="guint64" c:type="guint64"/>
    </constant>
    <enumeration name="MpathError"
                 c:type="BDMpathError"
                 glib:error-domain="g-bd-mpath-error-quark">
      <source-position filename="lib/plugin_apis/mpath.h" line="15"/>
      <member name="flush" value="0" c:identifier="BD_MPATH_ERROR_FLUSH">
      </member>
      <member name="not_root" value="1" c:identifier="BD_MPATH_ERROR_NOT_ROOT">
      </member>
      <member name="dm_error" value="2" c:identifier="BD_MPATH_ERROR_DM_ERROR">
      </member>
      <member name="inval" value="3" c:identifier="BD_MPATH_ERROR_INVAL">
      </member>
      <member name="tech_unavail"
              value="4"
              c:identifier="BD_MPATH_ERROR_TECH_UNAVAIL">
      </member>
    </enumeration>
    <enumeration name="MpathTech" c:type="BDMpathTech">
      <source-position filename="lib/plugin_apis/mpath.h" line="20"/>
      <member name="base" value="0" c:identifier="BD_MPATH_TECH_BASE">
      </member>
      <member name="friendly_names"
              value="1"
              c:identifier="BD_MPATH_TECH_FRIENDLY_NAMES">
      </member>
    </enumeration>
    <bitfield name="MpathTechMode" c:type="BDMpathTechMode">
      <source-position filename="lib/plugin_apis/mpath.h" line="25"/>
      <member name="query" value="1" c:identifier="BD_MPATH_TECH_MODE_QUERY">
      </member>
      <member name="modify" value="2" c:identifier="BD_MPATH_TECH_MODE_MODIFY">
      </member>
    </bitfield>
    <enumeration name="NVDIMMError"
                 c:type="BDNVDIMMError"
                 glib:error-domain="g-bd-nvdimm-error-quark">
      <source-position filename="lib/plugin_apis/nvdimm.h" line="18"/>
      <member name="parse"
              value="0"
              c:identifier="BD_NVDIMM_ERROR_NAMESPACE_PARSE">
      </member>
      <member name="fail"
              value="1"
              c:identifier="BD_NVDIMM_ERROR_NAMESPACE_FAIL">
      </member>
      <member name="noexist"
              value="2"
              c:identifier="BD_NVDIMM_ERROR_NAMESPACE_NOEXIST">
      </member>
      <member name="mode_inval"
              value="3"
              c:identifier="BD_NVDIMM_ERROR_NAMESPACE_MODE_INVAL">
      </member>
    </enumeration>
    <record name="NVDIMMNamespaceInfo"
            c:type="BDNVDIMMNamespaceInfo"
            glib:type-name="BDNVDIMMNamespaceInfo"
            glib:get-type="bd_nvdimm_namespace_info_get_type"
            c:symbol-prefix="nvdimm_namespace_info">
      <source-position filename="lib/plugin_apis/nvdimm.h" line="42"/>
      <field name="dev" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="46">namespace device name ("namespaceX.Y")</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="mode" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="47">mode of the namespace (BDNVDIMMNamespaceMode)</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="48">size of the namespace</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="uuid" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="49">UUID of the namespace</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="sector_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="50">sector size of the namespace (0 for non-sector namespaces)</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="blockdev" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="51">name of the block device for the namespace</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="enabled" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="52">whether the namespace is enabled or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <method name="copy"
              c:identifier="bd_nvdimm_namespace_info_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="62">Creates a new copy of @info.</doc>
        <source-position filename="lib/plugin_apis/nvdimm.h" line="67"/>
        <return-value transfer-ownership="full">
          <type name="NVDIMMNamespaceInfo" c:type="BDNVDIMMNamespaceInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="NVDIMMNamespaceInfo" c:type="BDNVDIMMNamespaceInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_nvdimm_namespace_info_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="54">Frees @info.</doc>
        <source-position filename="lib/plugin_apis/nvdimm.h" line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="NVDIMMNamespaceInfo" c:type="BDNVDIMMNamespaceInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="NVDIMMNamespaceMode" c:type="BDNVDIMMNamespaceMode">
      <source-position filename="lib/plugin_apis/nvdimm.h" line="28"/>
      <member name="raw" value="0" c:identifier="BD_NVDIMM_NAMESPACE_MODE_RAW">
      </member>
      <member name="sector"
              value="1"
              c:identifier="BD_NVDIMM_NAMESPACE_MODE_SECTOR">
      </member>
      <member name="memory"
              value="2"
              c:identifier="BD_NVDIMM_NAMESPACE_MODE_MEMORY">
      </member>
      <member name="dax" value="3" c:identifier="BD_NVDIMM_NAMESPACE_MODE_DAX">
      </member>
      <member name="fsdax"
              value="4"
              c:identifier="BD_NVDIMM_NAMESPACE_MODE_FSDAX">
      </member>
      <member name="devdax"
              value="5"
              c:identifier="BD_NVDIMM_NAMESPACE_MODE_DEVDAX">
      </member>
      <member name="unknown"
              value="6"
              c:identifier="BD_NVDIMM_NAMESPACE_MODE_UNKNOWN">
      </member>
    </enumeration>
    <enumeration name="NVDIMMTech" c:type="BDNVDIMMTech">
      <source-position filename="lib/plugin_apis/nvdimm.h" line="73"/>
      <member name="nvdimm_tech_namespace"
              value="0"
              c:identifier="BD_NVDIMM_TECH_NAMESPACE">
      </member>
    </enumeration>
    <bitfield name="NVDIMMTechMode" c:type="BDNVDIMMTechMode">
      <source-position filename="lib/plugin_apis/nvdimm.h" line="81"/>
      <member name="create"
              value="1"
              c:identifier="BD_NVDIMM_TECH_MODE_CREATE">
      </member>
      <member name="remove"
              value="2"
              c:identifier="BD_NVDIMM_TECH_MODE_REMOVE">
      </member>
      <member name="activate_deactivate"
              value="4"
              c:identifier="BD_NVDIMM_TECH_MODE_ACTIVATE_DEACTIVATE">
      </member>
      <member name="query" value="8" c:identifier="BD_NVDIMM_TECH_MODE_QUERY">
      </member>
      <member name="reconfigure"
              value="16"
              c:identifier="BD_NVDIMM_TECH_MODE_RECONFIGURE">
      </member>
    </bitfield>
    <enumeration name="PartAlign" c:type="BDPartAlign">
      <source-position filename="lib/plugin_apis/part.h" line="75"/>
      <member name="minimal" value="0" c:identifier="BD_PART_ALIGN_MINIMAL">
      </member>
      <member name="optimal" value="1" c:identifier="BD_PART_ALIGN_OPTIMAL">
      </member>
      <member name="none" value="2" c:identifier="BD_PART_ALIGN_NONE">
      </member>
    </enumeration>
    <enumeration name="PartDiskFlag" c:type="BDPartDiskFlag">
      <source-position filename="lib/plugin_apis/part.h" line="28"/>
      <member name="part_disk_flag_gpt_pmbr_boot"
              value="1"
              c:identifier="BD_PART_DISK_FLAG_GPT_PMBR_BOOT">
      </member>
    </enumeration>
    <record name="PartDiskSpec"
            c:type="BDPartDiskSpec"
            glib:type-name="BDPartDiskSpec"
            glib:get-type="bd_part_disk_spec_get_type"
            c:symbol-prefix="part_disk_spec">
      <source-position filename="lib/plugin_apis/part.h" line="118"/>
      <field name="path" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="122">path of the disk (block device)</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="table_type" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="123">type of the disk's partition table</doc>
        <type name="PartTableType" c:type="BDPartTableType"/>
      </field>
      <field name="size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="124">size of the disk</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="sector_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="125">disk's sector size</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="flags" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="126">bit combination of the disk's flags (#BDPartDiskFlag)</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <method name="copy" c:identifier="bd_part_disk_spec_copy">
        <source-position filename="lib/plugin_apis/part.h" line="128"/>
        <return-value transfer-ownership="full">
          <type name="PartDiskSpec" c:type="BDPartDiskSpec*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="PartDiskSpec" c:type="BDPartDiskSpec*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="bd_part_disk_spec_free">
        <source-position filename="lib/plugin_apis/part.h" line="131"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="PartDiskSpec" c:type="BDPartDiskSpec*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="PartError"
                 c:type="BDPartError"
                 glib:error-domain="g-bd-part-error-quark">
      <source-position filename="lib/plugin_apis/part.h" line="18"/>
      <member name="exists" value="0" c:identifier="BD_PART_ERROR_EXISTS">
      </member>
      <member name="inval" value="1" c:identifier="BD_PART_ERROR_INVAL">
      </member>
      <member name="fail" value="2" c:identifier="BD_PART_ERROR_FAIL">
      </member>
      <member name="tech_unavail"
              value="3"
              c:identifier="BD_PART_ERROR_TECH_UNAVAIL">
      </member>
    </enumeration>
    <bitfield name="PartFlag" c:type="BDPartFlag">
      <source-position filename="lib/plugin_apis/part.h" line="53"/>
      <member name="boot" value="2" c:identifier="BD_PART_FLAG_BOOT">
      </member>
      <member name="root" value="4" c:identifier="BD_PART_FLAG_ROOT">
      </member>
      <member name="swap" value="8" c:identifier="BD_PART_FLAG_SWAP">
      </member>
      <member name="hidden" value="16" c:identifier="BD_PART_FLAG_HIDDEN">
      </member>
      <member name="raid" value="32" c:identifier="BD_PART_FLAG_RAID">
      </member>
      <member name="lvm" value="64" c:identifier="BD_PART_FLAG_LVM">
      </member>
      <member name="lba" value="128" c:identifier="BD_PART_FLAG_LBA">
      </member>
      <member name="hpservice"
              value="256"
              c:identifier="BD_PART_FLAG_HPSERVICE">
      </member>
      <member name="cpalo" value="512" c:identifier="BD_PART_FLAG_CPALO">
      </member>
      <member name="prep" value="1024" c:identifier="BD_PART_FLAG_PREP">
      </member>
      <member name="msft_reserved"
              value="2048"
              c:identifier="BD_PART_FLAG_MSFT_RESERVED">
      </member>
      <member name="bios_grub"
              value="4096"
              c:identifier="BD_PART_FLAG_BIOS_GRUB">
      </member>
      <member name="apple_tv_recovery"
              value="8192"
              c:identifier="BD_PART_FLAG_APPLE_TV_RECOVERY">
      </member>
      <member name="diag" value="16384" c:identifier="BD_PART_FLAG_DIAG">
      </member>
      <member name="legacy_boot"
              value="32768"
              c:identifier="BD_PART_FLAG_LEGACY_BOOT">
      </member>
      <member name="msft_data"
              value="65536"
              c:identifier="BD_PART_FLAG_MSFT_DATA">
      </member>
      <member name="irst" value="131072" c:identifier="BD_PART_FLAG_IRST">
      </member>
      <member name="esp" value="262144" c:identifier="BD_PART_FLAG_ESP">
      </member>
      <member name="gpt_system_part"
              value="33554432"
              c:identifier="BD_PART_FLAG_GPT_SYSTEM_PART">
      </member>
      <member name="gpt_read_only"
              value="67108864"
              c:identifier="BD_PART_FLAG_GPT_READ_ONLY">
      </member>
      <member name="gpt_hidden"
              value="134217728"
              c:identifier="BD_PART_FLAG_GPT_HIDDEN">
      </member>
      <member name="gpt_no_automount"
              value="268435456"
              c:identifier="BD_PART_FLAG_GPT_NO_AUTOMOUNT">
      </member>
    </bitfield>
    <record name="PartSpec"
            c:type="BDPartSpec"
            glib:type-name="BDPartSpec"
            glib:get-type="bd_part_spec_get_type"
            c:symbol-prefix="part_spec">
      <source-position filename="lib/plugin_apis/part.h" line="89"/>
      <field name="path" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="93">path of the partition (block device)</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="name" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="94">name of the partition (for GPT partitions)</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="type_guid" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="95">GUID of the partition's type (GPT)</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="type" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="96">bit combination of partition's types (#BDPartType)</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="start" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="97">start of the partition</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="98">size of the partition</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="flags" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="99">bit combination of partition's flags (#BDPartFlag)</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <method name="copy" c:identifier="bd_part_spec_copy">
        <source-position filename="lib/plugin_apis/part.h" line="101"/>
        <return-value transfer-ownership="full">
          <type name="PartSpec" c:type="BDPartSpec*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="PartSpec" c:type="BDPartSpec*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="bd_part_spec_free">
        <source-position filename="lib/plugin_apis/part.h" line="104"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <type name="PartSpec" c:type="BDPartSpec*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="PartTableType" c:type="BDPartTableType">
      <source-position filename="lib/plugin_apis/part.h" line="24"/>
      <member name="msdos" value="0" c:identifier="BD_PART_TABLE_MSDOS">
      </member>
      <member name="gpt" value="1" c:identifier="BD_PART_TABLE_GPT">
      </member>
      <member name="undef" value="2" c:identifier="BD_PART_TABLE_UNDEF">
      </member>
    </enumeration>
    <enumeration name="PartTech" c:type="BDPartTech">
      <source-position filename="lib/plugin_apis/part.h" line="138"/>
      <member name="mbr" value="0" c:identifier="BD_PART_TECH_MBR">
      </member>
      <member name="gpt" value="1" c:identifier="BD_PART_TECH_GPT">
      </member>
    </enumeration>
    <bitfield name="PartTechMode" c:type="BDPartTechMode">
      <source-position filename="lib/plugin_apis/part.h" line="146"/>
      <member name="create_table"
              value="1"
              c:identifier="BD_PART_TECH_MODE_CREATE_TABLE">
      </member>
      <member name="modify_table"
              value="2"
              c:identifier="BD_PART_TECH_MODE_MODIFY_TABLE">
      </member>
      <member name="query_table"
              value="4"
              c:identifier="BD_PART_TECH_MODE_QUERY_TABLE">
      </member>
      <member name="modify_part"
              value="8"
              c:identifier="BD_PART_TECH_MODE_MODIFY_PART">
      </member>
      <member name="query_part"
              value="16"
              c:identifier="BD_PART_TECH_MODE_QUERY_PART">
      </member>
    </bitfield>
    <enumeration name="PartType" c:type="BDPartType">
      <source-position filename="lib/plugin_apis/part.h" line="62"/>
      <member name="normal" value="0" c:identifier="BD_PART_TYPE_NORMAL">
      </member>
      <member name="logical" value="1" c:identifier="BD_PART_TYPE_LOGICAL">
      </member>
      <member name="extended" value="2" c:identifier="BD_PART_TYPE_EXTENDED">
      </member>
      <member name="freespace" value="4" c:identifier="BD_PART_TYPE_FREESPACE">
      </member>
      <member name="metadata" value="8" c:identifier="BD_PART_TYPE_METADATA">
      </member>
      <member name="protected"
              value="16"
              c:identifier="BD_PART_TYPE_PROTECTED">
      </member>
    </enumeration>
    <enumeration name="PartTypeReq" c:type="BDPartTypeReq">
      <source-position filename="lib/plugin_apis/part.h" line="69"/>
      <member name="normal" value="0" c:identifier="BD_PART_TYPE_REQ_NORMAL">
      </member>
      <member name="logical" value="1" c:identifier="BD_PART_TYPE_REQ_LOGICAL">
      </member>
      <member name="extended"
              value="2"
              c:identifier="BD_PART_TYPE_REQ_EXTENDED">
      </member>
      <member name="next" value="4" c:identifier="BD_PART_TYPE_REQ_NEXT">
      </member>
    </enumeration>
    <enumeration name="Plugin" c:type="BDPlugin">
      <source-position filename="lib/plugins.h" line="23"/>
      <member name="lvm" value="0" c:identifier="BD_PLUGIN_LVM">
      </member>
      <member name="btrfs" value="1" c:identifier="BD_PLUGIN_BTRFS">
      </member>
      <member name="swap" value="2" c:identifier="BD_PLUGIN_SWAP">
      </member>
      <member name="loop" value="3" c:identifier="BD_PLUGIN_LOOP">
      </member>
      <member name="crypto" value="4" c:identifier="BD_PLUGIN_CRYPTO">
      </member>
      <member name="mpath" value="5" c:identifier="BD_PLUGIN_MPATH">
      </member>
      <member name="dm" value="6" c:identifier="BD_PLUGIN_DM">
      </member>
      <member name="mdraid" value="7" c:identifier="BD_PLUGIN_MDRAID">
      </member>
      <member name="kbd" value="8" c:identifier="BD_PLUGIN_KBD">
      </member>
      <member name="s390" value="9" c:identifier="BD_PLUGIN_S390">
      </member>
      <member name="part" value="10" c:identifier="BD_PLUGIN_PART">
      </member>
      <member name="fs" value="11" c:identifier="BD_PLUGIN_FS">
      </member>
      <member name="nvdimm" value="12" c:identifier="BD_PLUGIN_NVDIMM">
      </member>
      <member name="vdo" value="13" c:identifier="BD_PLUGIN_VDO">
      </member>
      <member name="undef" value="14" c:identifier="BD_PLUGIN_UNDEF">
      </member>
    </enumeration>
    <record name="PluginSpec"
            c:type="BDPluginSpec"
            glib:type-name="BDPluginSpec"
            glib:get-type="bd_plugin_spec_get_type"
            c:symbol-prefix="plugin_spec">
      <source-position filename="lib/plugins.h" line="31"/>
      <field name="name" writable="1">
        <type name="Plugin" c:type="BDPlugin"/>
      </field>
      <field name="so_name" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <method name="copy"
              c:identifier="bd_plugin_spec_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugins.c"
             line="12">Creates a new copy of @spec.</doc>
        <source-position filename="lib/plugins.h" line="33"/>
        <return-value transfer-ownership="full">
          <type name="PluginSpec" c:type="BDPluginSpec*"/>
        </return-value>
        <parameters>
          <instance-parameter name="spec" transfer-ownership="none">
            <type name="PluginSpec" c:type="BDPluginSpec*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_plugin_spec_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="lib/plugins.c"
             line="26">Frees @spec.</doc>
        <source-position filename="lib/plugins.h" line="34"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spec" transfer-ownership="none">
            <type name="PluginSpec" c:type="BDPluginSpec*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="SwapError"
                 c:type="BDSwapError"
                 glib:error-domain="g-bd-swap-error-quark">
      <source-position filename="lib/plugin_apis/swap.h" line="17"/>
      <member name="unknown_state"
              value="0"
              c:identifier="BD_SWAP_ERROR_UNKNOWN_STATE">
      </member>
      <member name="activate" value="1" c:identifier="BD_SWAP_ERROR_ACTIVATE">
      </member>
      <member name="tech_unavail"
              value="2"
              c:identifier="BD_SWAP_ERROR_TECH_UNAVAIL">
      </member>
      <member name="activate_old"
              value="3"
              c:identifier="BD_SWAP_ERROR_ACTIVATE_OLD">
      </member>
      <member name="activate_suspend"
              value="4"
              c:identifier="BD_SWAP_ERROR_ACTIVATE_SUSPEND">
      </member>
      <member name="activate_unknown"
              value="5"
              c:identifier="BD_SWAP_ERROR_ACTIVATE_UNKNOWN">
      </member>
      <member name="activate_pagesize"
              value="6"
              c:identifier="BD_SWAP_ERROR_ACTIVATE_PAGESIZE">
      </member>
    </enumeration>
    <enumeration name="SwapTech" c:type="BDSwapTech">
      <source-position filename="lib/plugin_apis/swap.h" line="21"/>
      <member name="swap_tech_swap" value="0" c:identifier="BD_SWAP_TECH_SWAP">
      </member>
    </enumeration>
    <bitfield name="SwapTechMode" c:type="BDSwapTechMode">
      <source-position filename="lib/plugin_apis/swap.h" line="28"/>
      <member name="create" value="1" c:identifier="BD_SWAP_TECH_MODE_CREATE">
      </member>
      <member name="activate_deactivate"
              value="2"
              c:identifier="BD_SWAP_TECH_MODE_ACTIVATE_DEACTIVATE">
      </member>
      <member name="query" value="4" c:identifier="BD_SWAP_TECH_MODE_QUERY">
      </member>
      <member name="set_label"
              value="8"
              c:identifier="BD_SWAP_TECH_MODE_SET_LABEL">
      </member>
    </bitfield>
    <enumeration name="UtilsDBusError"
                 c:type="BDUtilsDBusError"
                 glib:error-domain="g-bd-utils-dbus-error-quark">
      <source-position filename="utils/dbus.h" line="12"/>
      <member name="fail" value="0" c:identifier="BD_UTILS_DBUS_ERROR_FAIL">
      </member>
      <member name="noexist"
              value="1"
              c:identifier="BD_UTILS_DBUS_ERROR_NOEXIST">
      </member>
    </enumeration>
    <enumeration name="UtilsDevUtilsError"
                 c:type="BDUtilsDevUtilsError"
                 glib:error-domain="g-bd-utils-dev_utils-error-quark">
      <source-position filename="utils/dev_utils.h" line="30"/>
      <member name="utils_dev_utils_error_failed"
              value="0"
              c:identifier="BD_UTILS_DEV_UTILS_ERROR_FAILED">
      </member>
    </enumeration>
    <enumeration name="UtilsExecError"
                 c:type="BDUtilsExecError"
                 glib:error-domain="g-bd-utils-exec-error-quark">
      <source-position filename="utils/exec.h" line="73"/>
      <member name="failed"
              value="0"
              c:identifier="BD_UTILS_EXEC_ERROR_FAILED">
      </member>
      <member name="noout" value="1" c:identifier="BD_UTILS_EXEC_ERROR_NOOUT">
      </member>
      <member name="inval_ver"
              value="2"
              c:identifier="BD_UTILS_EXEC_ERROR_INVAL_VER">
      </member>
      <member name="util_unavailable"
              value="3"
              c:identifier="BD_UTILS_EXEC_ERROR_UTIL_UNAVAILABLE">
      </member>
      <member name="util_unknown_ver"
              value="4"
              c:identifier="BD_UTILS_EXEC_ERROR_UTIL_UNKNOWN_VER">
      </member>
      <member name="util_low_ver"
              value="5"
              c:identifier="BD_UTILS_EXEC_ERROR_UTIL_LOW_VER">
      </member>
      <member name="util_check_error"
              value="6"
              c:identifier="BD_UTILS_EXEC_ERROR_UTIL_CHECK_ERROR">
      </member>
      <member name="util_feature_check_error"
              value="7"
              c:identifier="BD_UTILS_EXEC_ERROR_UTIL_FEATURE_CHECK_ERROR">
      </member>
      <member name="util_feature_unavailable"
              value="8"
              c:identifier="BD_UTILS_EXEC_ERROR_UTIL_FEATURE_UNAVAILABLE">
      </member>
    </enumeration>
    <record name="UtilsLinuxVersion" c:type="BDUtilsLinuxVersion">
      <source-position filename="utils/module.h" line="20"/>
      <field name="major" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="minor" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="micro" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
    </record>
    <callback name="UtilsLogFunc" c:type="BDUtilsLogFunc">
      <doc xml:space="preserve"
           filename="utils/exec.h"
           line="7">Function type for logging function used by the libblockdev's exec utils to
log the information about program executing.</doc>
      <source-position filename="utils/exec.h" line="15"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="level" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.h"
               line="9">log level (as understood by syslog(3))</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="msg" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.h"
               line="10">log message</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="UtilsModuleError"
                 c:type="BDUtilsModuleError"
                 glib:error-domain="g-bd-utils-module-error-quark">
      <source-position filename="utils/module.h" line="14"/>
      <member name="kmod_init_fail"
              value="0"
              c:identifier="BD_UTILS_MODULE_ERROR_KMOD_INIT_FAIL">
      </member>
      <member name="fail" value="1" c:identifier="BD_UTILS_MODULE_ERROR_FAIL">
      </member>
      <member name="noexist"
              value="2"
              c:identifier="BD_UTILS_MODULE_ERROR_NOEXIST">
      </member>
      <member name="module_check_error"
              value="3"
              c:identifier="BD_UTILS_MODULE_ERROR_MODULE_CHECK_ERROR">
      </member>
      <member name="invalid_platform"
              value="4"
              c:identifier="BD_UTILS_MODULE_ERROR_INVALID_PLATFORM">
      </member>
    </enumeration>
    <callback name="UtilsProgExtract" c:type="BDUtilsProgExtract">
      <doc xml:space="preserve"
           filename="utils/exec.h"
           line="32">Callback function used to process a line captured from spawned command's standard
output and standard error output. Typically used to extract completion percentage
of a long-running job.

Note that both outputs are read simultaneously with no guarantees of message order
this function is called with.

The value the @completion points to may contain value previously returned from
this callback or zero when called for the first time. This is useful for extractors
where only some kind of a tick mark is printed out as a progress and previous value
is needed to compute an incremented value. It's important to keep in mind that this
function is only called over lines, i.e. progress reporting printing out tick marks
(e.g. dots) without a newline character might not work properly.

The @line string usually contains trailing newline character, which may be absent
however in case the spawned command exits without printing one. It's guaranteed
this function is called over remaining buffer no matter what the trailing
character is.</doc>
      <source-position filename="utils/exec.h" line="59"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/exec.h"
             line="56">whether the line was a progress reporting line and should be excluded
         from the collected standard output string or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="line" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.h"
               line="34">line to extract progress from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="completion"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="utils/exec.h"
               line="35">percentage of completion</doc>
          <type name="guint8" c:type="guint8*"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="UtilsProgFunc" c:type="BDUtilsProgFunc">
      <source-position filename="utils/exec.h" line="30"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="task_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.h"
               line="25">ID of the task/action the progress is reported for</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="status" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.h"
               line="26">progress status</doc>
          <type name="UtilsProgStatus" c:type="BDUtilsProgStatus"/>
        </parameter>
        <parameter name="completion" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.h"
               line="27">percentage of completion</doc>
          <type name="guint8" c:type="guint8"/>
        </parameter>
        <parameter name="msg"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="utils/exec.h"
               line="28">arbitrary progress message (for the user)</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="UtilsProgStatus" c:type="BDUtilsProgStatus">
      <source-position filename="utils/exec.h" line="21"/>
      <member name="started" value="0" c:identifier="BD_UTILS_PROG_STARTED">
      </member>
      <member name="progress" value="1" c:identifier="BD_UTILS_PROG_PROGRESS">
      </member>
      <member name="finished" value="2" c:identifier="BD_UTILS_PROG_FINISHED">
      </member>
    </enumeration>
    <enumeration name="VDOError"
                 c:type="BDVDOError"
                 glib:error-domain="g-bd-vdo-error-quark">
      <source-position filename="lib/plugin_apis/vdo.h" line="15"/>
      <member name="vdo_error_fail" value="0" c:identifier="BD_VDO_ERROR_FAIL">
      </member>
    </enumeration>
    <record name="VDOInfo"
            c:type="BDVDOInfo"
            deprecated="1"
            deprecated-version="2.24"
            glib:type-name="BDVDOInfo"
            glib:get-type="bd_vdo_info_get_type"
            c:symbol-prefix="vdo_info">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="52"/>
      <field name="name" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="56">name of the VDO volume</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="device" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="57">underlying block device</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="active" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="58">whether the volume is active or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="deduplication" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="59">whether deduplication is enabled</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="compression" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="60">whether compression is enabled</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="logical_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="61">logical size of the volume</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="physical_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="62">sphysical size of the volume</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="index_memory" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="63">index memory size</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="write_policy" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="64">write policy of the volume</doc>
        <type name="VDOWritePolicy" c:type="BDVDOWritePolicy"/>
      </field>
      <method name="copy"
              c:identifier="bd_vdo_info_copy"
              introspectable="0"
              deprecated="1"
              deprecated-version="2.24">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="78">Creates a new copy of @info.</doc>
        <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
        <source-position filename="lib/plugin_apis/vdo.h" line="85"/>
        <return-value transfer-ownership="full">
          <type name="VDOInfo" c:type="BDVDOInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="VDOInfo" c:type="BDVDOInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_vdo_info_free"
              introspectable="0"
              deprecated="1"
              deprecated-version="2.24">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="68">Frees @info.</doc>
        <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
        <source-position filename="lib/plugin_apis/vdo.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="VDOInfo" c:type="BDVDOInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="VDOStats"
            c:type="BDVDOStats"
            deprecated="1"
            deprecated-version="2.24"
            glib:type-name="BDVDOStats"
            glib:get-type="bd_vdo_stats_get_type"
            c:symbol-prefix="vdo_stats">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="103"/>
      <field name="block_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="107">block size of a VDO volume, in bytes</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="logical_block_size" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="108">logical block size, in bytes</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="physical_blocks" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="109">total number of physical blocks allocated</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="data_blocks_used" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="110">number of physical blocks currently in use to store data</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="overhead_blocks_used" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="111">number of physical blocks currently in use to store VDO metadata</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="logical_blocks_used" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="112">number of logical blocks currently mapped</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="used_percent" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="113">percentage of physical blocks used</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="saving_percent" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="114">percentage of physical blocks saved</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="write_amplification_ratio" writable="1">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="115">average number of block writes to the underlying storage per block written</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <method name="copy"
              c:identifier="bd_vdo_stats_copy"
              introspectable="0"
              deprecated="1"
              deprecated-version="2.24">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="129">Creates a new copy of @stats.</doc>
        <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
        <source-position filename="lib/plugin_apis/vdo.h" line="136"/>
        <return-value transfer-ownership="full">
          <type name="VDOStats" c:type="BDVDOStats*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stats" transfer-ownership="none">
            <type name="VDOStats" c:type="BDVDOStats*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="bd_vdo_stats_free"
              introspectable="0"
              deprecated="1"
              deprecated-version="2.24">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="119">Frees @stats.</doc>
        <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
        <source-position filename="lib/plugin_apis/vdo.h" line="126"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stats" transfer-ownership="none">
            <type name="VDOStats" c:type="BDVDOStats*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="VDOTech" c:type="BDVDOTech">
      <source-position filename="lib/plugin_apis/vdo.h" line="19"/>
      <member name="vdo_tech_vdo" value="0" c:identifier="BD_VDO_TECH_VDO">
      </member>
    </enumeration>
    <bitfield name="VDOTechMode" c:type="BDVDOTechMode">
      <source-position filename="lib/plugin_apis/vdo.h" line="29"/>
      <member name="create" value="1" c:identifier="BD_VDO_TECH_MODE_CREATE">
      </member>
      <member name="remove" value="2" c:identifier="BD_VDO_TECH_MODE_REMOVE">
      </member>
      <member name="modify" value="4" c:identifier="BD_VDO_TECH_MODE_MODIFY">
      </member>
      <member name="activate_deactivate"
              value="8"
              c:identifier="BD_VDO_TECH_MODE_ACTIVATE_DEACTIVATE">
      </member>
      <member name="start_stop"
              value="16"
              c:identifier="BD_VDO_TECH_MODE_START_STOP">
      </member>
      <member name="query" value="32" c:identifier="BD_VDO_TECH_MODE_QUERY">
      </member>
      <member name="grow" value="64" c:identifier="BD_VDO_TECH_MODE_GROW">
      </member>
    </bitfield>
    <enumeration name="VDOWritePolicy" c:type="BDVDOWritePolicy">
      <source-position filename="lib/plugin_apis/vdo.h" line="36"/>
      <member name="sync" value="0" c:identifier="BD_VDO_WRITE_POLICY_SYNC">
      </member>
      <member name="async" value="1" c:identifier="BD_VDO_WRITE_POLICY_ASYNC">
      </member>
      <member name="auto" value="2" c:identifier="BD_VDO_WRITE_POLICY_AUTO">
      </member>
      <member name="unknown"
              value="3"
              c:identifier="BD_VDO_WRITE_POLICY_UNKNOWN">
      </member>
    </enumeration>
    <function name="btrfs_add_device"
              c:identifier="bd_btrfs_add_device"
              throws="1">
      <source-position filename="lib/plugin_apis/btrfs.h" line="182"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="178">whether the @device was successfully added to the @mountpoint btrfs volume or not

Tech category: %BD_BTRFS_TECH_MULTI_DEV-%BD_BTRFS_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="mountpoint" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="172">mountpoint of the btrfs volume to add new device to</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="173">a device to add to the btrfs volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="174">extra options for the addition (right now
                                                passed to the 'btrfs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="btrfs_change_label"
              c:identifier="bd_btrfs_change_label"
              throws="1">
      <source-position filename="lib/plugin_apis/btrfs.h" line="393"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="388">whether the label of the @mountpoint filesystem was successfully set
to @label or not

Tech category: %BD_BTRFS_TECH_FS-%BD_BTRFS_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="mountpoint" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="382">a mountpoint of the btrfs filesystem to change label of</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="label" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="383">new label for the filesystem</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="384">extra options for the volume creation (right now
                                                passed to the 'btrfs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="btrfs_check" c:identifier="bd_btrfs_check" throws="1">
      <source-position filename="lib/plugin_apis/btrfs.h" line="363"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="359">whether the filesystem was successfully checked or not

Tech category: %BD_BTRFS_TECH_FS-%BD_BTRFS_TECH_MODE_QUERY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="354">a device that is part of the checked btrfs volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="355">extra options for the check (right now
                                                passed to the 'btrfs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="btrfs_create_snapshot"
              c:identifier="bd_btrfs_create_snapshot"
              throws="1">
      <source-position filename="lib/plugin_apis/btrfs.h" line="272"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="268">whether the @dest snapshot of @source was successfully created or not

Tech category: %BD_BTRFS_TECH_SNAPSHOT-%BD_BTRFS_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="source" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="261">path to source subvolume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="dest" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="262">path to new snapshot volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="ro" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="263">whether the snapshot should be read-only</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="264">extra options for the snapshot creation (right now
                                                passed to the 'btrfs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="btrfs_create_subvolume"
              c:identifier="bd_btrfs_create_subvolume"
              throws="1">
      <source-position filename="lib/plugin_apis/btrfs.h" line="212"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="208">whether the @mountpoint/@name subvolume was successfully created or not

Tech category: %BD_BTRFS_TECH_SUBVOL-%BD_BTRFS_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="mountpoint" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="202">mountpoint of the btrfs volume to create subvolume under</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="203">name of the subvolume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="204">extra options for the subvolume creation (right now
                                                passed to the 'btrfs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="btrfs_create_volume"
              c:identifier="bd_btrfs_create_volume"
              throws="1">
      <source-position filename="lib/plugin_apis/btrfs.h" line="167"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="161">whether the new btrfs volume was created from @devices or not

See mkfs.btrfs(8) for details about @data_level, @md_level and btrfs in general.

Tech category: %BD_BTRFS_TECH_MULTI_DEV-%BD_BTRFS_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="devices" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="153">list of devices to create btrfs volume from</doc>
          <array c:type="const gchar**">
            <type name="utf8" c:type="gchar*"/>
          </array>
        </parameter>
        <parameter name="label"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="154">label for the volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="data_level"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="155">RAID level for the data or %NULL to use the default</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="md_level"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="156">RAID level for the metadata or %NULL to use the default</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="157">extra options for the volume creation (right now
                                                passed to the 'mkfs.btrfs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="btrfs_delete_subvolume"
              c:identifier="bd_btrfs_delete_subvolume"
              throws="1">
      <source-position filename="lib/plugin_apis/btrfs.h" line="227"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="223">whether the @mountpoint/@name subvolume was successfully deleted or not

Tech category: %BD_BTRFS_TECH_SUBVOL-%BD_BTRFS_TECH_MODE_DELETE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="mountpoint" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="217">mountpoint of the btrfs volume to delete subvolume from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="218">name of the subvolume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="219">extra options for the subvolume deletion (right now
                                                passed to the 'btrfs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="btrfs_error_quark" c:identifier="bd_btrfs_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="btrfs_filesystem_info"
              c:identifier="bd_btrfs_filesystem_info"
              throws="1">
      <source-position filename="lib/plugin_apis/btrfs.h" line="314"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="310">information about the @device's volume's filesystem or %NULL in case of error

Tech category: %BD_BTRFS_TECH_FS-%BD_BTRFS_TECH_MODE_QUERY</doc>
        <type name="BtrfsFilesystemInfo" c:type="BDBtrfsFilesystemInfo*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="307">a device that is part of the queried btrfs volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="btrfs_get_default_subvolume_id"
              c:identifier="bd_btrfs_get_default_subvolume_id"
              throws="1">
      <source-position filename="lib/plugin_apis/btrfs.h" line="240"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="235">ID of the @mountpoint volume's default subvolume. If 0,
@error) may be set to indicate error

Tech category: %BD_BTRFS_TECH_SUBVOL-%BD_BTRFS_TECH_MODE_QUERY</doc>
        <type name="guint64" c:type="guint64"/>
      </return-value>
      <parameters>
        <parameter name="mountpoint" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="232">mountpoint of the volume to get the default subvolume ID of</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="btrfs_is_tech_avail"
              c:identifier="bd_btrfs_is_tech_avail"
              throws="1">
      <source-position filename="lib/plugin_apis/btrfs.h" line="147"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="144">whether the @tech-@mode combination is avaible -- supported by the
         plugin implementation and having all the runtime dependencies available</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tech" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="140">the queried tech</doc>
          <type name="BtrfsTech" c:type="BDBtrfsTech"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="141">a bit mask of queried modes of operation (#BDBtrfsTechMode) for @tech</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="btrfs_list_devices"
              c:identifier="bd_btrfs_list_devices"
              throws="1">
      <source-position filename="lib/plugin_apis/btrfs.h" line="285"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="280">information about the devices that are part of the btrfs volume
containing @device or %NULL in case of error

Tech category: %BD_BTRFS_TECH_MULTI_DEV-%BD_BTRFS_TECH_MODE_QUERY</doc>
        <array c:type="BDBtrfsDeviceInfo**">
          <type name="BtrfsDeviceInfo" c:type="BDBtrfsDeviceInfo*"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="277">a device that is part of the queried btrfs volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="btrfs_list_subvolumes"
              c:identifier="bd_btrfs_list_subvolumes"
              throws="1">
      <source-position filename="lib/plugin_apis/btrfs.h" line="302"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="294">information about the subvolumes that are part of the btrfs volume
mounted at @mountpoint or %NULL in case of error

The subvolumes are sorted in a way that no child subvolume appears in the
list before its parent (sub)volume.

Tech category: %BD_BTRFS_TECH_SUBVOL-%BD_BTRFS_TECH_MODE_QUERY</doc>
        <array c:type="BDBtrfsSubvolumeInfo**">
          <type name="BtrfsSubvolumeInfo" c:type="BDBtrfsSubvolumeInfo*"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="mountpoint" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="290">a mountpoint of the queried btrfs volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="snapshots_only" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="291">whether to list only snapshot subvolumes or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="btrfs_mkfs" c:identifier="bd_btrfs_mkfs" throws="1">
      <source-position filename="lib/plugin_apis/btrfs.h" line="333"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="327">whether the new btrfs volume was created from @devices or not

See mkfs.btrfs(8) for details about @data_level, @md_level and btrfs in general.

Tech category: %BD_BTRFS_TECH_FS-%BD_BTRFS_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="devices" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="319">list of devices to create btrfs volume from</doc>
          <array c:type="const gchar**">
            <type name="utf8" c:type="gchar*"/>
          </array>
        </parameter>
        <parameter name="label"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="320">label for the volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="data_level"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="321">RAID level for the data or %NULL to use the default</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="md_level"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="322">RAID level for the metadata or %NULL to use the default</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="323">extra options for the volume creation (right now
                                                passed to the 'btrfs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="btrfs_remove_device"
              c:identifier="bd_btrfs_remove_device"
              throws="1">
      <source-position filename="lib/plugin_apis/btrfs.h" line="197"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="193">whether the @device was successfully removed from the @mountpoint btrfs volume or not

Tech category: %BD_BTRFS_TECH_MULTI_DEV-%BD_BTRFS_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="mountpoint" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="187">mountpoint of the btrfs volume to remove device from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="188">a device to remove from the btrfs volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="189">extra options for the removal (right now
                                                passed to the 'btrfs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="btrfs_repair" c:identifier="bd_btrfs_repair" throws="1">
      <source-position filename="lib/plugin_apis/btrfs.h" line="377"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="373">whether the filesystem was successfully checked and repaired or not

Tech category: %BD_BTRFS_TECH_FS-%BD_BTRFS_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="368">a device that is part of the to be repaired btrfs volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="369">extra options for the repair (right now
                                                passed to the 'btrfs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="btrfs_resize" c:identifier="bd_btrfs_resize" throws="1">
      <source-position filename="lib/plugin_apis/btrfs.h" line="349"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="344">whether the @mountpoint filesystem was successfully resized to @size
or not

Tech category: %BD_BTRFS_TECH_FS-%BD_BTRFS_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="mountpoint" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="338">a mountpoint of the to be resized btrfs filesystem</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="339">requested new size</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="340">extra options for the volume resize (right now
                                                passed to the 'btrfs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="btrfs_set_default_subvolume"
              c:identifier="bd_btrfs_set_default_subvolume"
              throws="1">
      <source-position filename="lib/plugin_apis/btrfs.h" line="256"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/btrfs.h"
             line="251">whether the @mountpoint volume's default subvolume was correctly set
to @subvol_id or not

Tech category: %BD_BTRFS_TECH_SUBVOL-%BD_BTRFS_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="mountpoint" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="245">mountpoint of the volume to set the default subvolume ID of</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="subvol_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="246">ID of the subvolume to be set as the default subvolume</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/btrfs.h"
               line="247">extra options for the setting (right now
                                                passed to the 'btrfs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_bitlk_close"
              c:identifier="bd_crypto_bitlk_close"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="863"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="859">whether the given @bitlk_device was successfully closed or not

Tech category: %BD_CRYPTO_TECH_BITLK-%BD_CRYPTO_TECH_MODE_OPEN_CLOSE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="bitlk_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="856">BITLK device to close</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_bitlk_open"
              c:identifier="bd_crypto_bitlk_open"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="851"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="847">whether the @device was successfully opened or not

Tech category: %BD_CRYPTO_TECH_BITLK-%BD_CRYPTO_TECH_MODE_OPEN_CLOSE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="840">the device to open</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="841">name for the BITLK device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pass_data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="842">a passphrase for the BITLK volume (may contain arbitrary binary data)</doc>
          <array length="3" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="data_len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="843">length of the @pass_data buffer</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="read_only" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="844">whether to open as read-only or not (meaning read-write)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_device_is_luks"
              c:identifier="bd_crypto_device_is_luks"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="287"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="281">%TRUE if the given @device is a LUKS device or %FALSE if not or
failed to determine (the @error) is populated with the error in such
cases)

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_QUERY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="278">the queried device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_device_seems_encrypted"
              c:identifier="bd_crypto_device_seems_encrypted"
              throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/crypto.h"
           line="747">Determines whether a block device seems to be encrypted.

TCRYPT volumes are not easily identifiable, because they have no
cleartext header, but are completely encrypted. This function is
used to determine whether a block device is a candidate for being
TCRYPT encrypted.

To achieve this, we calculate the chi square value of the first
512 Bytes and treat devices with a chi square value between 136
and 426 as candidates for being encrypted.
For the reasoning, see: https://tails.boum.org/blueprint/veracrypt/</doc>
      <source-position filename="lib/plugin_apis/crypto.h" line="770"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="764">%TRUE if the given @device seems to be encrypted or %FALSE if not or
failed to determine (the @error) is populated with the error in such
cases)

Tech category: %BD_CRYPTO_TECH_TRUECRYPT-%BD_CRYPTO_TECH_MODE_QUERY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="749">the queried device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_error_quark" c:identifier="bd_crypto_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="crypto_escrow_device"
              c:identifier="bd_crypto_escrow_device"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="835"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="831">whether the ecrow data was successfully created for @device or not

Tech category: %BD_CRYPTO_TECH_ESCROW-%BD_CRYPTO_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="824">path of the device to create escrow data for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="passphrase" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="825">passphrase used for the device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="cert_data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="826">certificate data to use for escrow</doc>
          <array c:type="const gchar*">
            <type name="gchar"/>
          </array>
        </parameter>
        <parameter name="directory" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="827">directory to put escrow data into</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="backup_passphrase"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="828">backup passphrase for the device or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_generate_backup_passphrase"
              c:identifier="bd_crypto_generate_backup_passphrase"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="273"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="267">A newly generated %BD_CRYPTO_BACKUP_PASSPHRASE_LENGTH-long passphrase.

See %BD_CRYPTO_BACKUP_PASSPHRASE_CHARSET for the definition of the charset used for the passphrase.

Tech category: always available</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
    </function>
    <function name="crypto_integrity_info"
              c:identifier="bd_crypto_integrity_info"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="744"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="740">information about the @device or %NULL in case of error

Tech category: %BD_CRYPTO_TECH_INTEGRITY-%BD_CRYPTO_TECH_MODE_QUERY</doc>
        <type name="CryptoIntegrityInfo" c:type="BDCryptoIntegrityInfo*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="737">a device to get information about</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_is_tech_avail"
              c:identifier="bd_crypto_is_tech_avail"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="260"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="257">whether the @tech-@mode combination is available -- supported by the
         plugin implementation and having all the runtime dependencies available</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tech" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="253">the queried tech</doc>
          <type name="CryptoTech" c:type="BDCryptoTech"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="254">a bit mask of queried modes of operation (#BDCryptoTechMode) for @tech</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_add_key"
              c:identifier="bd_crypto_luks_add_key"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="498"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="490">whether the @npass or @nkey_file was successfully added to @device
or not

One of @pass, @key_file has to be != %NULL and the same applies to @npass,
@nkey_file.

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_ADD_KEY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="483">device to add new key to</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pass"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="484">passphrase for the @device or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="key_file"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="485">key file for the @device or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="npass"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="486">passphrase to add to @device or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="nkey_file"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="487">key file to add to @device or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_add_key_blob"
              c:identifier="bd_crypto_luks_add_key_blob"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="514"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="510">whether the @npass_data was successfully added to @device or not

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_ADD_KEY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="503">device to add new key to</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pass_data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="504">a passphrase for the new LUKS device (may contain arbitrary binary data)</doc>
          <array length="2" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="data_len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="505">length of the @pass_data buffer</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="npass_data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="506">a new passphrase for the new LUKS device (may contain arbitrary binary data)</doc>
          <array length="4" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="ndata_len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="507">length of the @npass_data buffer</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_change_key"
              c:identifier="bd_crypto_luks_change_key"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="563"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="557">whether the key was successfully changed or not

No support for changing key files (yet).

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_ADD_KEY&amp;%BD_CRYPTO_TECH_MODE_REMOVE_KEY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="552">device to change key of</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pass" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="553">old passphrase</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="npass" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="554">new passphrase</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_change_key_blob"
              c:identifier="bd_crypto_luks_change_key_blob"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="579"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="575">whether the key was successfully changed or not

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_ADD_KEY&amp;%BD_CRYPTO_TECH_MODE_REMOVE_KEY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="568">device to change key of</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pass_data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="569">a passphrase for the new LUKS device (may contain arbitrary binary data)</doc>
          <array length="2" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="data_len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="570">length of the @pass_data buffer</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="npass_data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="571">a new passphrase for the new LUKS device (may contain arbitrary binary data)</doc>
          <array length="4" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="ndata_len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="572">length of the @npass_data buffer</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_close"
              c:identifier="bd_crypto_luks_close"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="478"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="474">whether the given @luks_device was successfully closed or not

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_OPEN_CLOSE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="luks_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="471">LUKS device to close</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_format"
              c:identifier="bd_crypto_luks_format"
              throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/crypto.h"
           line="331">Formats the given @device as LUKS according to the other parameters given. If
@min_entropy is specified (greater than 0), the function waits for enough
entropy to be available in the random data pool (WHICH MAY POTENTIALLY TAKE
FOREVER).</doc>
      <source-position filename="lib/plugin_apis/crypto.h" line="351"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="346">whether the given @device was successfully formatted as LUKS or not
(the @error) contains the error in such cases)

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="333">a device to format as LUKS</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="cipher"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="334">cipher specification (type-mode, e.g. "aes-xts-plain64") or %NULL to use the default</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="key_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="335">size of the volume key in bits or 0 to use the default</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="passphrase"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="336">a passphrase for the new LUKS device or %NULL if not requested</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="key_file"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="337">a key file for the new LUKS device or %NULL if not requested</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="min_entropy" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="338">minimum random data entropy (in bits) required to format @device as LUKS</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_format_blob"
              c:identifier="bd_crypto_luks_format_blob"
              throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/crypto.h"
           line="354">Formats the given @device as LUKS according to the other parameters given. If
@min_entropy is specified (greater than 0), the function waits for enough
entropy to be available in the random data pool (WHICH MAY POTENTIALLY TAKE
FOREVER).</doc>
      <source-position filename="lib/plugin_apis/crypto.h" line="374"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="369">whether the given @device was successfully formatted as LUKS or not
(the @error) contains the error in such cases)

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="356">a device to format as LUKS</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="cipher"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="357">cipher specification (type-mode, e.g. "aes-xts-plain64") or %NULL to use the default</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="key_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="358">size of the volume key in bits or 0 to use the default</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="pass_data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="359">a passphrase for the new LUKS device (may contain arbitrary binary data)</doc>
          <array length="4" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="data_len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="360">length of the @pass_data buffer</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="min_entropy" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="361">minimum random data entropy (in bits) required to format @device as LUKS</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_format_luks2"
              c:identifier="bd_crypto_luks_format_luks2"
              throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/crypto.h"
           line="377">Formats the given @device as LUKS according to the other parameters given. If
@min_entropy is specified (greater than 0), the function waits for enough
entropy to be available in the random data pool (WHICH MAY POTENTIALLY TAKE
FOREVER).

Either @passhphrase or @key_file has to be != %NULL.

Using this function with @luks_version set to %BD_CRYPTO_LUKS_VERSION_LUKS1 and
@extra to %NULL is the same as calling %bd_crypto_luks_format.</doc>
      <source-position filename="lib/plugin_apis/crypto.h" line="404"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="399">whether the given @device was successfully formatted as LUKS or not
(the @error) contains the error in such cases)

Tech category: %BD_CRYPTO_TECH_LUKS2-%BD_CRYPTO_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="379">a device to format as LUKS</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="cipher"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="380">cipher specification (type-mode, e.g. "aes-xts-plain64") or %NULL to use the default</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="key_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="381">size of the volume key in bits or 0 to use the default</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="passphrase"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="382">a passphrase for the new LUKS device or %NULL if not requested</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="key_file"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="383">a key file for the new LUKS device or %NULL if not requested</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="min_entropy" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="384">minimum random data entropy (in bits) required to format @device as LUKS</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="luks_version" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="385">whether to use LUKS v1 or LUKS v2</doc>
          <type name="CryptoLUKSVersion" c:type="BDCryptoLUKSVersion"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="386">extra arguments for LUKS format creation</doc>
          <type name="CryptoLUKSExtra" c:type="BDCryptoLUKSExtra*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_format_luks2_blob"
              c:identifier="bd_crypto_luks_format_luks2_blob"
              throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/crypto.h"
           line="407">Formats the given @device as LUKS according to the other parameters given. If
@min_entropy is specified (greater than 0), the function waits for enough
entropy to be available in the random data pool (WHICH MAY POTENTIALLY TAKE
FOREVER).

Using this function with @luks_version set to %BD_CRYPTO_LUKS_VERSION_LUKS1 and
@extra to %NULL is the same as calling %bd_crypto_luks_format_blob.</doc>
      <source-position filename="lib/plugin_apis/crypto.h" line="432"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="427">whether the given @device was successfully formatted as LUKS or not
(the @error) contains the error in such cases)

Tech category: %BD_CRYPTO_TECH_LUKS2-%BD_CRYPTO_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="409">a device to format as LUKS</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="cipher"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="410">cipher specification (type-mode, e.g. "aes-xts-plain64") or %NULL to use the default</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="key_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="411">size of the volume key in bits or 0 to use the default</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="pass_data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="412">a passphrase for the new LUKS device (may contain arbitrary binary data)</doc>
          <array length="4" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="data_len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="413">length of the @pass_data buffer</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="min_entropy" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="414">minimum random data entropy (in bits) required to format @device as LUKS</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="luks_version" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="415">whether to use LUKS v1 or LUKS v2</doc>
          <type name="CryptoLUKSVersion" c:type="BDCryptoLUKSVersion"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="416">extra arguments for LUKS format creation</doc>
          <type name="CryptoLUKSExtra" c:type="BDCryptoLUKSExtra*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_get_metadata_size"
              c:identifier="bd_crypto_luks_get_metadata_size"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="314"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="308">luks device metadata size of the @device
         or 0 if failed to determine (@error is populated
         with the error in such cases)

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_QUERY</doc>
        <type name="guint64" c:type="guint64"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="305">the queried device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_header_backup"
              c:identifier="bd_crypto_luks_header_backup"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="705"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="700">whether the given backup of @device was successfully written to
         @backup_file or not

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_BACKUP_RESTORE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="696">device to backup the LUKS header</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="backup_file" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="697">file to save the header backup to</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_header_restore"
              c:identifier="bd_crypto_luks_header_restore"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="720"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="714">whether the given @device LUKS header was successfully restored
         from @backup_file


Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_BACKUP_RESTORE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="710">device to restore the LUKS header to</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="backup_file" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="711">existing file with a LUKS header backup</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_info"
              c:identifier="bd_crypto_luks_info"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="732"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="728">information about the @luks_device or %NULL in case of error

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_QUERY</doc>
        <type name="CryptoLUKSInfo" c:type="BDCryptoLUKSInfo*"/>
      </return-value>
      <parameters>
        <parameter name="luks_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="725">a device to get information about</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_kill_slot"
              c:identifier="bd_crypto_luks_kill_slot"
              throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/crypto.h"
           line="678">Note: This can destroy last remaining keyslot without confirmation making
      the LUKS device permanently inaccessible.</doc>
      <source-position filename="lib/plugin_apis/crypto.h" line="691"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="687">whether the given @slot was successfully destroyed or not

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_REMOVE_KEY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="680">device to kill slot on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="slot" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="681">keyslot to destroy</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_open"
              c:identifier="bd_crypto_luks_open"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="450"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="444">whether the @device was successfully opened or not

One of @passphrase, @key_file has to be != %NULL.

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_OPEN_CLOSE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="437">the device to open</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="438">name for the LUKS device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="passphrase"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="439">passphrase to open the @device or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="key_file"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="440">key file path to use for opening the @device or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="read_only" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="441">whether to open as read-only or not (meaning read-write)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_open_blob"
              c:identifier="bd_crypto_luks_open_blob"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="466"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="462">whether the @device was successfully opened or not

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_OPEN_CLOSE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="455">the device to open</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="456">name for the LUKS device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pass_data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="457">a passphrase for the new LUKS device (may contain arbitrary binary data)</doc>
          <array length="3" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="data_len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="458">length of the @pass_data buffer</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="read_only" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="459">whether to open as read-only or not (meaning read-write)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_remove_key"
              c:identifier="bd_crypto_luks_remove_key"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="530"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="524">whether the key was successfully removed or not

Either @pass or @key_file has to be != %NULL.

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_REMOVE_KEY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="519">device to add new key to</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pass"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="520">passphrase for the @device or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="key_file"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="521">key file for the @device or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_remove_key_blob"
              c:identifier="bd_crypto_luks_remove_key_blob"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="546"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="540">whether the key was successfully removed or not

Either @pass or @key_file has to be != %NULL.

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_REMOVE_KEY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="535">device to add new key to</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pass_data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="536">a passphrase for the new LUKS device (may contain arbitrary binary data) to remove</doc>
          <array length="2" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="data_len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="537">length of the @pass_data buffer</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_resize"
              c:identifier="bd_crypto_luks_resize"
              throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/crypto.h"
           line="582">You need to specify passphrase when resizing LUKS 2 devices that don't have
verified key loaded in kernel. If you don't specify a passphrase, resize
will fail with %BD_CRYPTO_ERROR_RESIZE_PERM. Use %bd_crypto_luks_resize_luks2
or %bd_crypto_luks_resize_luks2_blob for these devices.</doc>
      <source-position filename="lib/plugin_apis/crypto.h" line="597"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="593">whether the @luks_device was successfully resized or not

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_RESIZE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="luks_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="584">opened LUKS device to resize</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="585">requested size in sectors or 0 to adapt to the backing device</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_resize_luks2"
              c:identifier="bd_crypto_luks_resize_luks2"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="617"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="608">whether the @luks_device was successfully resized or not

You need to specify either @passphrase or @keyfile for LUKS 2 devices that
don't have verified key loaded in kernel.
For LUKS 1 devices you can set both @passphrase and @keyfile to %NULL to
achieve the same as calling %bd_crypto_luks_resize.

Tech category: %BD_CRYPTO_TECH_LUKS2-%BD_CRYPTO_TECH_MODE_RESIZE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="luks_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="602">opened LUKS device to resize</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="605">requested size in sectors or 0 to adapt to the backing device</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="passphrase"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="603">passphrase to resize the @luks_device or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="key_file"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="604">key file path to use for resizinh the @luks_device or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_resize_luks2_blob"
              c:identifier="bd_crypto_luks_resize_luks2_blob"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="635"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="628">whether the @luks_device was successfully resized or not

You need to specify @pass_data for LUKS 2 devices that don't have
verified key loaded in kernel.

Tech category: %BD_CRYPTO_TECH_LUKS2-%BD_CRYPTO_TECH_MODE_RESIZE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="luks_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="622">opened LUKS device to resize</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="625">requested size in sectors or 0 to adapt to the backing device</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="pass_data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="623">a passphrase for the new LUKS device (may contain arbitrary binary data)</doc>
          <array length="3" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="data_len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="624">length of the @pass_data buffer</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_resume"
              c:identifier="bd_crypto_luks_resume"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="675"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="671">whether the given @luks_device was successfully resumed or not

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_SUSPEND_RESUME</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="luks_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="666">LUKS device to resume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="passphrase"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="667">passphrase to resume the @device or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="key_file"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="668">key file path to use for resuming the @device or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_resume_blob"
              c:identifier="bd_crypto_luks_resume_blob"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="661"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="657">whether the given @luks_device was successfully resumed or not

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_SUSPEND_RESUME</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="luks_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="652">LUKS device to resume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pass_data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="653">a passphrase for the LUKS device (may contain arbitrary binary data)</doc>
          <array length="2" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="data_len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="654">length of the @pass_data buffer</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_status"
              c:identifier="bd_crypto_luks_status"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="328"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="322">one of "invalid", "inactive", "active" or "busy" or
%NULL if failed to determine (@error is populated with the error in
such cases)

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="luks_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="319">the queried LUKS device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_suspend"
              c:identifier="bd_crypto_luks_suspend"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="647"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="643">whether the given @luks_device was successfully suspended or not

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_SUSPEND_RESUME</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="luks_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="640">LUKS device to suspend</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_luks_uuid"
              c:identifier="bd_crypto_luks_uuid"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="300"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="295">UUID of the @device or %NULL if failed to determine (@error
is populated with the error in such cases)

Tech category: %BD_CRYPTO_TECH_LUKS-%BD_CRYPTO_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="292">the queried device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_tc_close"
              c:identifier="bd_crypto_tc_close"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="819"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="815">whether the given @tc_device was successfully closed or not

Tech category: %BD_CRYPTO_TECH_TRUECRYPT-%BD_CRYPTO_TECH_MODE_OPEN_CLOSE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tc_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="812">TrueCrypt/VeraCrypt device to close</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_tc_open"
              c:identifier="bd_crypto_tc_open"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="786"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="782">whether the @device was successfully opened or not

Tech category: %BD_CRYPTO_TECH_TRUECRYPT-%BD_CRYPTO_TECH_MODE_OPEN_CLOSE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="775">the device to open</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="776">name for the TrueCrypt/VeraCrypt device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pass_data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="777">a passphrase for the TrueCrypt/VeraCrypt volume (may contain arbitrary binary data)</doc>
          <array length="3" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="data_len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="778">length of the @pass_data buffer</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="read_only" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="779">whether to open as read-only or not (meaning read-write)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="crypto_tc_open_full"
              c:identifier="bd_crypto_tc_open_full"
              throws="1">
      <source-position filename="lib/plugin_apis/crypto.h" line="807"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/crypto.h"
             line="803">whether the @device was successfully opened or not

Tech category: %BD_CRYPTO_TECH_TRUECRYPT-%BD_CRYPTO_TECH_MODE_OPEN_CLOSE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="791">the device to open</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="792">name for the TrueCrypt/VeraCrypt device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pass_data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="793">a passphrase for the TrueCrypt/VeraCrypt volume (may contain arbitrary binary data)</doc>
          <array length="3" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="data_len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="794">length of the @pass_data buffer</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="keyfiles"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="796">paths to the keyfiles for the TrueCrypt/VeraCrypt volume</doc>
          <array c:type="const gchar**">
            <type name="utf8" c:type="gchar*"/>
          </array>
        </parameter>
        <parameter name="hidden" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="797">whether a hidden volume inside the volume should be opened</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="system" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="798">whether to try opening as an encrypted system (with boot loader)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="veracrypt" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="799">whether to try VeraCrypt modes (TrueCrypt modes are tried anyway)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="veracrypt_pim" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="800">VeraCrypt PIM value</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="read_only" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/crypto.h"
               line="795">whether to open as read-only or not (meaning read-write)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="dm_activate_raid_set"
              c:identifier="bd_dm_activate_raid_set"
              throws="1">
      <source-position filename="lib/plugin_apis/dm.h" line="149"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/dm.h"
             line="145">whether the RAID set @name was successfully activate or not

Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_MODE_CREATE_ACTIVATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="142">name of the DM RAID set to activate</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="dm_create_linear"
              c:identifier="bd_dm_create_linear"
              throws="1">
      <source-position filename="lib/plugin_apis/dm.h" line="54"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/dm.h"
             line="49">whether the new linear mapping @map_name was successfully created
for the @device or not

Tech category: %BD_DM_TECH_MAP-%BD_DM_TECH_MODE_CREATE_ACTIVATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="map_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="43">name of the map</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="44">device to create map for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="length" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="45">length of the mapping in sectors</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="uuid"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="46">UUID for the new dev mapper device or %NULL if not specified</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="dm_deactivate_raid_set"
              c:identifier="bd_dm_deactivate_raid_set"
              throws="1">
      <source-position filename="lib/plugin_apis/dm.h" line="161"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/dm.h"
             line="157">whether the RAID set @name was successfully deactivate or not

Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_MODE_REMOVE_DEACTIVATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="154">name of the DM RAID set to deactivate</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="dm_error_quark" c:identifier="bd_dm_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="dm_get_member_raid_sets"
              c:identifier="bd_dm_get_member_raid_sets"
              throws="1">
      <source-position filename="lib/plugin_apis/dm.h" line="137"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/dm.h"
             line="130">list of names of the RAID sets related to
the member or %NULL in case of error

One of @name, @uuid or @major:@minor has to be given.

Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_MODE_QUERY</doc>
        <array c:type="gchar**">
          <type name="utf8"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="name"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="124">name of the member</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="uuid"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="125">uuid of the member</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="major" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="126">major number of the device or -1 if not specified</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="minor" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="127">minor number of the device or -1 if not specified</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="dm_get_raid_set_type"
              c:identifier="bd_dm_get_raid_set_type"
              throws="1">
      <source-position filename="lib/plugin_apis/dm.h" line="173"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/dm.h"
             line="169">string representation of the @name RAID set's type

Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="166">name of the DM RAID set to get the type of</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="dm_get_subsystem_from_name"
              c:identifier="bd_dm_get_subsystem_from_name"
              throws="1">
      <source-position filename="lib/plugin_apis/dm.h" line="104"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/dm.h"
             line="100">subsystem of the given device

Tech category: %BD_DM_TECH_MAP-%BD_DM_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="device_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="97">name of the device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="dm_is_tech_avail"
              c:identifier="bd_dm_is_tech_avail"
              throws="1">
      <source-position filename="lib/plugin_apis/dm.h" line="38"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/dm.h"
             line="35">whether the @tech-@mode combination is avaible -- supported by the
         plugin implementation and having all the runtime dependencies available</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tech" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="31">the queried tech</doc>
          <type name="DMTech" c:type="BDDMTech"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="32">a bit mask of queried modes of operation (#BDDMTechMode) for @tech</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="dm_map_exists" c:identifier="bd_dm_map_exists" throws="1">
      <source-position filename="lib/plugin_apis/dm.h" line="119"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/dm.h"
             line="114">whether the given @map_name exists (and is live if @live_only is
%TRUE (and is active if @active_only is %TRUE)).

Tech category: %BD_DM_TECH_MAP-%BD_DM_TECH_MODE_QUERY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="map_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="109">name of the queried map</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="live_only" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="110">whether to go through the live maps only or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="active_only" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="111">whether to ignore suspended maps or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="dm_name_from_node"
              c:identifier="bd_dm_name_from_node"
              throws="1">
      <source-position filename="lib/plugin_apis/dm.h" line="79"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/dm.h"
             line="74">map name of the map providing the @dm_node device or %NULL
(@error) contains the error in such cases)

Tech category: %BD_DM_TECH_MAP-%BD_DM_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="dm_node" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="71">name of the DM node (e.g. "dm-0")</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="dm_node_from_name"
              c:identifier="bd_dm_node_from_name"
              throws="1">
      <source-position filename="lib/plugin_apis/dm.h" line="92"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/dm.h"
             line="87">DM node name for the @map_name map or %NULL (@error) contains
the error in such cases)

Tech category: %BD_DM_TECH_MAP-%BD_DM_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="map_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="84">name of the queried DM map</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="dm_remove" c:identifier="bd_dm_remove" throws="1">
      <source-position filename="lib/plugin_apis/dm.h" line="66"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/dm.h"
             line="62">whether the @map_name map was successfully removed or not

Tech category: %BD_DM_TECH_MAP-%BD_DM_TECH_MODE_REMOVE_DEACTIVATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="map_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/dm.h"
               line="59">name of the map to remove</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="ensure_init" c:identifier="bd_ensure_init" throws="1">
      <doc xml:space="preserve"
           filename="lib/blockdev.c"
           line="451">Checks the state of the library and if it is uninitialized or not all the
@require_plugins plugins are available, tries to (re)initialize it. Otherwise
just returns early. The difference between:

|[&lt;!-- language="C" --&gt;
if (!bd_is_initialized())
    bd_init(None, None, &amp;error);
]|

and this function is that this function does the check and init in an atomic
way (holding the lock preventing other threads from doing changes in
between).</doc>
      <source-position filename="lib/blockdev.h" line="21"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/blockdev.c"
             line="473">whether the library was successfully initialized with all the
         required or default (see @require_plugins) plugins or not either
         before or by this call</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="require_plugins"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="453">%NULL-terminated list
                of plugins that should be loaded (if no so_name is specified
                for the plugin, the default is used) or %NULL to load all
                plugins</doc>
          <array c:type="BDPluginSpec**">
            <type name="PluginSpec" c:type="BDPluginSpec*"/>
          </array>
        </parameter>
        <parameter name="log_func"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="notified">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="457">logging function to use</doc>
          <type name="UtilsLogFunc" c:type="BDUtilsLogFunc"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_can_check" c:identifier="bd_fs_can_check" throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/fs.h"
           line="490">Searches for the required utility to check the given filesystem and returns whether
it is installed.
Unknown filesystems or filesystems which do not support checking result in errors.</doc>
      <source-position filename="lib/plugin_apis/fs.h" line="504"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="500">whether filesystem check is available

Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="492">the filesystem type to be tested for installed consistency check support</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="required_utility"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="493">the utility binary which is required for checking (if missing i.e. returns FALSE but no error)</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_can_repair" c:identifier="bd_fs_can_repair" throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/fs.h"
           line="507">Searches for the required utility to repair the given filesystem and returns whether
it is installed.
Unknown filesystems or filesystems which do not support reparing result in errors.</doc>
      <source-position filename="lib/plugin_apis/fs.h" line="521"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="517">whether filesystem repair is available

Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="509">the filesystem type to be tested for installed repair support</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="required_utility"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="510">the utility binary which is required for repairing (if missing i.e. return FALSE but no error)</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_can_resize" c:identifier="bd_fs_can_resize" throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/fs.h"
           line="471">Searches for the required utility to resize the given filesystem and returns whether
it is installed. The mode flags indicate if growing and/or shrinking resize is available if
mounted/unmounted.
Unknown filesystems or filesystems which do not support resizing result in errors.</doc>
      <source-position filename="lib/plugin_apis/fs.h" line="487"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="483">whether filesystem resize is available

Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="473">the filesystem type to be tested for installed resize support</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="mode"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="474">flags for allowed resizing (i.e. growing/shrinking support for online/offline)</doc>
          <type name="FsResizeFlags" c:type="BDFsResizeFlags*"/>
        </parameter>
        <parameter name="required_utility"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="475">the utility binary which is required for resizing (if missing i.e. returns FALSE but no error)</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_can_set_label"
              c:identifier="bd_fs_can_set_label"
              throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/fs.h"
           line="524">Searches for the required utility to set the label of the given filesystem and returns whether
it is installed.
Unknown filesystems or filesystems which do not support setting the label result in errors.</doc>
      <source-position filename="lib/plugin_apis/fs.h" line="538"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="534">whether setting filesystem label is available

Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="526">the filesystem type to be tested for installed label support</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="required_utility"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="527">the utility binary which is required for relabeling (if missing i.e. return FALSE but no error)</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_check" c:identifier="bd_fs_check" throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/fs.h"
           line="427">Check filesystem on @device. This calls other fs check functions from this
plugin based on detected filesystem (e.g. bd_fs_xfs_check for XFS). This
function will return an error for unknown/unsupported filesystems.</doc>
      <source-position filename="lib/plugin_apis/fs.h" line="440"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="436">whether the file system on @device passed the consistency check or not

Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_CHECK</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="429">the device the file system of which to check</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_clean" c:identifier="bd_fs_clean" throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/fs.h"
           line="266">Clean all signatures from @device.
Difference between this and bd_fs_wipe() is that this function doesn't
return error if @device is already empty. This will also always remove
all signatures from @device, not only the first one.</doc>
      <source-position filename="lib/plugin_apis/fs.h" line="280"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="276">whether @device was successfully cleaned or not

Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_WIPE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="268">the device to clean</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_error_quark" c:identifier="bd_fs_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="fs_ext2_check" c:identifier="bd_fs_ext2_check" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="633"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="629">whether an ext2 file system on the @device is clean or not

Tech category: %BD_FS_TECH_EXT2-%BD_FS_TECH_MODE_CHECK</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="624">the device the file system on which to check</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="625">extra options for the check (right now
                                                passed to the 'e2fsck' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext2_get_info"
              c:identifier="bd_fs_ext2_get_info"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="764"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="759">information about the file system on @device or
                          %NULL in case of error

Tech category: %BD_FS_TECH_EXT2-%BD_FS_TECH_MODE_QUERY</doc>
        <type name="FSExt2Info" c:type="BDFSExt2Info*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="756">the device the file system of which to get info for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext2_mkfs" c:identifier="bd_fs_ext2_mkfs" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="552"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="548">whether a new ext2 fs was successfully created on @device or not

Tech category: %BD_FS_TECH_EXT2-%BD_FS_TECH_MODE_MKFS</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="543">the device to create a new ext2 fs on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="544">extra options for the creation (right now
                                                passed to the 'mke2fs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext2_repair"
              c:identifier="bd_fs_ext2_repair"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="677"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="672">whether an ext2 file system on the @device was successfully repaired
         (if needed) or not (error is set in that case)

Tech category: %BD_FS_TECH_EXT2-%BD_FS_TECH_MODE_REPAIR</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="666">the device the file system on which to repair</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="unsafe" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="667">whether to do unsafe operations too</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="668">extra options for the repair (right now
                                                passed to the 'e2fsck' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext2_resize"
              c:identifier="bd_fs_ext2_resize"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="806"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="802">whether the file system on @device was successfully resized or not

Tech category: %BD_FS_TECH_EXT2-%BD_FS_TECH_MODE_RESIZE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="795">the device the file system of which to resize</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="new_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="796">new requested size for the file system (if 0, the file system is
           adapted to the underlying block device)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="798">extra options for the resize (right now
                                                passed to the 'resize2fs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext2_set_label"
              c:identifier="bd_fs_ext2_set_label"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="723"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="718">whether the label of ext2 file system on the @device was
         successfully set or not

Tech category: %BD_FS_TECH_EXT2-%BD_FS_TECH_MODE_SET_LABEL</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="714">the device the file system on which to set label for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="label" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="715">label to set</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext2_wipe" c:identifier="bd_fs_ext2_wipe" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="593"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="588">whether an ext2 signature was successfully wiped from the @device or
         not

Tech category: %BD_FS_TECH_EXT2-%BD_FS_TECH_MODE_WIPE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="585">the device to wipe an ext2 signature from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext3_check" c:identifier="bd_fs_ext3_check" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="647"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="643">whether an ext3 file system on the @device is clean or not

Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_CHECK</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="638">the device the file system on which to check</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="639">extra options for the check (right now
                                                passed to the 'e2fsck' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext3_get_info"
              c:identifier="bd_fs_ext3_get_info"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="777"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="772">information about the file system on @device or
                          %NULL in case of error

Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_QUERY</doc>
        <type name="FSExt3Info" c:type="BDFSExt3Info*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="769">the device the file system of which to get info for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext3_mkfs" c:identifier="bd_fs_ext3_mkfs" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="566"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="562">whether a new ext3 fs was successfully created on @device or not

Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_MKFS</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="557">the device to create a new ext3 fs on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="558">extra options for the creation (right now
                                                passed to the 'mke2fs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext3_repair"
              c:identifier="bd_fs_ext3_repair"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="693"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="688">whether an ext3 file system on the @device was successfully repaired
         (if needed) or not (error is set in that case)

Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_REPAIR</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="682">the device the file system on which to repair</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="unsafe" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="683">whether to do unsafe operations too</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="684">extra options for the repair (right now
                                                passed to the 'e2fsck' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext3_resize"
              c:identifier="bd_fs_ext3_resize"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="822"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="818">whether the file system on @device was successfully resized or not

Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_RESIZE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="811">the device the file system of which to resize</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="new_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="812">new requested size for the file system (if 0, the file system is
           adapted to the underlying block device)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="814">extra options for the resize (right now
                                                passed to the 'resize2fs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext3_set_label"
              c:identifier="bd_fs_ext3_set_label"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="737"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="732">whether the label of ext3 file system on the @device was
         successfully set or not

Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_SET_LABEL</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="728">the device the file system on which to set label for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="label" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="729">label to set</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext3_wipe" c:identifier="bd_fs_ext3_wipe" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="606"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="601">whether an ext3 signature was successfully wiped from the @device or
         not

Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_WIPE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="598">the device to wipe an ext3 signature from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext4_check" c:identifier="bd_fs_ext4_check" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="661"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="657">whether an ext4 file system on the @device is clean or not

Tech category: %BD_FS_TECH_EXT4-%BD_FS_TECH_MODE_CHECK</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="652">the device the file system on which to check</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="653">extra options for the check (right now
                                                passed to the 'e2fsck' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext4_get_info"
              c:identifier="bd_fs_ext4_get_info"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="790"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="785">information about the file system on @device or
                          %NULL in case of error

Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_QUERY</doc>
        <type name="FSExt4Info" c:type="BDFSExt4Info*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="782">the device the file system of which to get info for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext4_mkfs" c:identifier="bd_fs_ext4_mkfs" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="580"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="576">whether a new ext4 fs was successfully created on @device or not

Tech category: %BD_FS_TECH_EXT4-%BD_FS_TECH_MODE_MKFS</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="571">the device to create a new ext4 fs on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="572">extra options for the creation (right now
                                                passed to the 'mkfs.ext4' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext4_repair"
              c:identifier="bd_fs_ext4_repair"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="709"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="704">whether an ext4 file system on the @device was successfully repaired
         (if needed) or not (error is set in that case)

Tech category: %BD_FS_TECH_EXT4-%BD_FS_TECH_MODE_REPAIR</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="698">the device the file system on which to repair</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="unsafe" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="699">whether to do unsafe operations too</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="700">extra options for the repair (right now
                                                passed to the 'e2fsck' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext4_resize"
              c:identifier="bd_fs_ext4_resize"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="838"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="834">whether the file system on @device was successfully resized or not

Tech category: %BD_FS_TECH_EXT4-%BD_FS_TECH_MODE_RESIZE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="827">the device the file system of which to resize</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="new_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="828">new requested size for the file system (if 0, the file system is
           adapted to the underlying block device)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="830">extra options for the resize (right now
                                                passed to the 'resize2fs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext4_set_label"
              c:identifier="bd_fs_ext4_set_label"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="751"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="746">whether the label of ext4 file system on the @device was
         successfully set or not

Tech category: %BD_FS_TECH_EXT3-%BD_FS_TECH_MODE_SET_LABEL</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="742">the device the file system on which to set label for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="label" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="743">label to set</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ext4_wipe" c:identifier="bd_fs_ext4_wipe" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="619"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="614">whether an ext4 signature was successfully wiped from the @device or
         not

Tech category: %BD_FS_TECH_EXT4-%BD_FS_TECH_MODE_WIPE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="611">the device to wipe an ext4 signature from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_freeze" c:identifier="bd_fs_freeze" throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/fs.h"
           line="299">Freezes filesystem mounted on @mountpoint. The filesystem must
support freezing.</doc>
      <source-position filename="lib/plugin_apis/fs.h" line="310"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="307">whether @mountpoint was successfully freezed or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="mountpoint" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="301">mountpoint of the device (filesystem) to freeze</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_get_fstype" c:identifier="bd_fs_get_fstype" throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/fs.h"
           line="283">Get first signature on @device as a string.</doc>
      <source-position filename="lib/plugin_apis/fs.h" line="296"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="290">type of filesystem found on @device, %NULL in case
                          no signature has been detected or in case of error
                          (@error is set in this case)

Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="285">the device to probe</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_get_mountpoint"
              c:identifier="bd_fs_get_mountpoint"
              throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/fs.h"
           line="368">Get mountpoint for @device. If @device is mounted multiple times only
one mountpoint will be returned.</doc>
      <source-position filename="lib/plugin_apis/fs.h" line="382"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="376">mountpoint for @device, %NULL in case device is
                          not mounted or in case of an error (@error is set
                          in this case)

Tech category: %BD_FS_TECH_MOUNT (no mode, ignored)</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="370">device to find mountpoint for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_is_mountpoint"
              c:identifier="bd_fs_is_mountpoint"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="394"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="390">whether @path is a mountpoint or not

Tech category: %BD_FS_TECH_MOUNT (no mode, ignored)</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="387">path (folder) to check</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_is_tech_avail"
              c:identifier="bd_fs_is_tech_avail"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="232"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="229">whether the @tech-@mode combination is available -- supported by the
         plugin implementation and having all the runtime dependencies available</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tech" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="225">the queried tech</doc>
          <type name="FSTech" c:type="BDFSTech"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="226">a bit mask of queried modes of operation (#BDFSTechMode) for @tech</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_mount" c:identifier="bd_fs_mount" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="365"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="361">whether @device (or @mountpoint) was successfully mounted or not

Tech category: %BD_FS_TECH_MOUNT (no mode, ignored)</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="348">device to mount, if not specified @mountpoint entry
                       from fstab will be used</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="mountpoint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="350">mountpoint for @device, if not specified @device
                           entry from fstab will be used</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="fstype"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="352">filesystem type</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="options"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="353">comma delimited options for mount</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="354">extra options for the unmount
                                                currently only 'run_as_uid'
                                                and 'run_as_gid' are supported
                                                value must be a valid non zero
                                                uid (gid)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ntfs_check" c:identifier="bd_fs_ntfs_check" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="1075"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="1071">whether an ntfs file system on the @device is clean or not

Tech category: %BD_FS_TECH_NTFS-%BD_FS_TECH_MODE_CHECK</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="1068">the device containing the file system to check</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ntfs_get_info"
              c:identifier="bd_fs_ntfs_get_info"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="1131"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="1126">information about the file system on @device or
                          %NULL in case of error

Tech category: %BD_FS_TECH_NTFS-%BD_FS_TECH_MODE_QUERY</doc>
        <type name="FSNtfsInfo" c:type="BDFSNtfsInfo*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="1121">the device containing the file system to get info for (device must
            not be mounted, trying to get info for a mounted device will result
            in an error)</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ntfs_mkfs" c:identifier="bd_fs_ntfs_mkfs" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="1051"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="1047">whether a new NTFS fs was successfully created on @device or not

Tech category: %BD_FS_TECH_NTFS-%BD_FS_TECH_MODE_MKFS</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="1042">the device to create a new ntfs fs on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="1043">extra options for the creation (right now
                                                passed to the 'mkntfs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ntfs_repair"
              c:identifier="bd_fs_ntfs_repair"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="1088"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="1083">whether an NTFS file system on the @device was successfully repaired
         (if needed) or not (error is set in that case)

Tech category: %BD_FS_TECH_NTFS-%BD_FS_TECH_MODE_REPAIR</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="1080">the device containing the file system to repair</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ntfs_resize"
              c:identifier="bd_fs_ntfs_resize"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="1116"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="1112">whether the file system on @device was successfully resized or not

Tech category: %BD_FS_TECH_NTFS-%BD_FS_TECH_MODE_RESIZE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="1107">the device the file system of which to resize</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="new_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="1108">new requested size for the file system in bytes (if 0, the file system
           is adapted to the underlying block device)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ntfs_set_label"
              c:identifier="bd_fs_ntfs_set_label"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="1102"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="1097">whether the label of the NTFS file system on the @device was
         successfully set or not

Tech category: %BD_FS_TECH_NTFS-%BD_FS_TECH_MODE_SET_LABEL</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="1093">the device containing the file system to set the label for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="label" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="1094">label to set</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_ntfs_wipe" c:identifier="bd_fs_ntfs_wipe" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="1063"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="1059">whether an ntfs signature was successfully wiped from the @device or not

Tech category: %BD_FS_TECH_NTFS-%BD_FS_TECH_MODE_WIPE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="1056">the device to wipe an ntfs signature from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_repair" c:identifier="bd_fs_repair" throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/fs.h"
           line="411">Repair filesystem on @device. This calls other fs repair functions from this
plugin based on detected filesystem (e.g. bd_fs_xfs_repair for XFS). This
function will return an error for unknown/unsupported filesystems.</doc>
      <source-position filename="lib/plugin_apis/fs.h" line="424"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="420">whether the file system on @device was successfully repaired or not

Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_REPAIR</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="413">the device the file system of which to repair</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_resize" c:identifier="bd_fs_resize" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="408"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="404">whether the file system on @device was successfully resized or not

Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_RESIZE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="399">the device the file system of which to resize</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="new_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="400">new requested size for the file system (if 0, the file system is
           adapted to the underlying block device)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_set_label" c:identifier="bd_fs_set_label" throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/fs.h"
           line="443">Set label for filesystem on @device. This calls other fs label functions from this
plugin based on detected filesystem (e.g. bd_fs_xfs_set_label for XFS). This
function will return an error for unknown/unsupported filesystems.</doc>
      <source-position filename="lib/plugin_apis/fs.h" line="456"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="452">whether the file system on @device was successfully relabled or not

Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_SET_LABEL</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="445">the device with file system to set the label for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="label" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_unfreeze" c:identifier="bd_fs_unfreeze" throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/fs.h"
           line="313">Un-freezes filesystem mounted on @mountpoint. The filesystem must
support freezing.</doc>
      <source-position filename="lib/plugin_apis/fs.h" line="324"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="321">whether @mountpoint was successfully unfreezed or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="mountpoint" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="315">mountpoint of the device (filesystem) to un-freeze</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_unmount" c:identifier="bd_fs_unmount" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="343"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="339">whether @spec was successfully unmounted or not

Tech category: %BD_FS_TECH_MOUNT (no mode, ignored)</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="spec" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="329">mount point or device to unmount</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lazy" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="330">enable/disable lazy unmount</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="force" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="331">enable/disable force unmount</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="332">extra options for the unmount
                                                currently only 'run_as_uid'
                                                and 'run_as_gid' are supported
                                                value must be a valid non zero
                                                uid (gid)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_vfat_check" c:identifier="bd_fs_vfat_check" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="981"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="977">whether an vfat file system on the @device is clean or not

Tech category: %BD_FS_TECH_VFAT-%BD_FS_TECH_MODE_CHECK</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="972">the device containing the file system to check</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="973">extra options for the repair (right now
                                                passed to the 'fsck.vfat' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_vfat_get_info"
              c:identifier="bd_fs_vfat_get_info"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="1023"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="1018">information about the file system on @device or
                          %NULL in case of error

Tech category: %BD_FS_TECH_VFAT-%BD_FS_TECH_MODE_QUERY</doc>
        <type name="FSVfatInfo" c:type="BDFSVfatInfo*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="1015">the device containing the file system to get info for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_vfat_mkfs" c:identifier="bd_fs_vfat_mkfs" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="954"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="950">whether a new vfat fs was successfully created on @device or not

Tech category: %BD_FS_TECH_VFAT-%BD_FS_TECH_MODE_MKFS</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="945">the device to create a new vfat fs on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="946">extra options for the creation (right now
                                                passed to the 'mkfs.vfat' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_vfat_repair"
              c:identifier="bd_fs_vfat_repair"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="996"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="991">whether an vfat file system on the @device was successfully repaired
         (if needed) or not (error is set in that case)

Tech category: %BD_FS_TECH_VFAT-%BD_FS_TECH_MODE_REPAIR</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="986">the device containing the file system to repair</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="987">extra options for the repair (right now
                                                passed to the 'fsck.vfat' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_vfat_resize"
              c:identifier="bd_fs_vfat_resize"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="1037"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="1033">whether the file system on @device was successfully resized or not

Tech category: %BD_FS_TECH_VFAT-%BD_FS_TECH_MODE_RESIZE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="1028">the device the file system of which to resize</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="new_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="1029">new requested size for the file system (if 0, the file system is
           adapted to the underlying block device)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_vfat_set_label"
              c:identifier="bd_fs_vfat_set_label"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="1010"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="1005">whether the label of vfat file system on the @device was
         successfully set or not

Tech category: %BD_FS_TECH_VFAT-%BD_FS_TECH_MODE_SET_LABEL</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="1001">the device containing the file system to set label for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="label" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="1002">label to set</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_vfat_wipe" c:identifier="bd_fs_vfat_wipe" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="967"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="962">whether an vfat signature was successfully wiped from the @device or
         not

Tech category: %BD_FS_TECH_VFAT-%BD_FS_TECH_MODE_WIPE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="959">the device to wipe an vfat signature from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_wipe" c:identifier="bd_fs_wipe" throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/fs.h"
           line="235">Note: This function will wipe signatures on a mounted @device without
      asking. Use %bd_fs_wipe_force if you want to control this
      behaviour manually.</doc>
      <source-position filename="lib/plugin_apis/fs.h" line="249"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="245">whether signatures were successfully wiped on @device or not

Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_WIPE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="237">the device to wipe signatures from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="all" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="238">whether to wipe all (%TRUE) signatures or just the first (%FALSE) one</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_wipe_force" c:identifier="bd_fs_wipe_force" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="263"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="259">whether signatures were successfully wiped on @device or not

Tech category: %BD_FS_TECH_GENERIC-%BD_FS_TECH_MODE_WIPE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="254">the device to wipe signatures from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="all" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="255">whether to wipe all (%TRUE) signatures or just the first (%FALSE) one</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="force" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="256">whether to force wipe even if the filesystem is mounted</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_xfs_check" c:identifier="bd_fs_xfs_check" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="880"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="873">whether an xfs file system on the @device is clean or not

Note: If the file system is mounted RW, it will always be reported as not
      clean!

Tech category: %BD_FS_TECH_XFS-%BD_FS_TECH_MODE_CHECK</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="870">the device containing the file system to check</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_xfs_get_info"
              c:identifier="bd_fs_xfs_get_info"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="924"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="919">information about the file system on @device or
                          %NULL in case of error

Tech category: %BD_FS_TECH_XFS-%BD_FS_TECH_MODE_QUERY</doc>
        <type name="FSXfsInfo" c:type="BDFSXfsInfo*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="914">the device containing the file system to get info for (device must
            be mounted, trying to get info for an unmounted device will result
            in an error)</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_xfs_mkfs" c:identifier="bd_fs_xfs_mkfs" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="852"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="848">whether a new xfs fs was successfully created on @device or not

Tech category: %BD_FS_TECH_XFS-%BD_FS_TECH_MODE_MKFS</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="843">the device to create a new xfs fs on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="844">extra options for the creation (right now
                                                passed to the 'mkfs.xfs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_xfs_repair" c:identifier="bd_fs_xfs_repair" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="895"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="890">whether an xfs file system on the @device was successfully repaired
         (if needed) or not (error is set in that case)

Tech category: %BD_FS_TECH_XFS-%BD_FS_TECH_MODE_REPAIR</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="885">the device containing the file system to repair</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="886">extra options for the repair (right now
                                                passed to the 'xfs_repair' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_xfs_resize" c:identifier="bd_fs_xfs_resize" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="940"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="936">whether the file system mounted on @mpoint was successfully resized or not

Tech category: %BD_FS_TECH_XFS-%BD_FS_TECH_MODE_RESIZE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="mpoint" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="929">the mount point of the file system to resize</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="new_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="930">new requested size for the file system *in file system blocks* (see bd_fs_xfs_get_info())
           (if 0, the file system is adapted to the underlying block device)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="932">extra options for the resize (right now
                                                passed to the 'xfs_growfs' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="fs_xfs_set_label"
              c:identifier="bd_fs_xfs_set_label"
              throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="909"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="904">whether the label of xfs file system on the @device was
         successfully set or not

Tech category: %BD_FS_TECH_XFS-%BD_FS_TECH_MODE_SET_LABEL</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="900">the device containing the file system to set label for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="label" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="901">label to set</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fs_xfs_wipe" c:identifier="bd_fs_xfs_wipe" throws="1">
      <source-position filename="lib/plugin_apis/fs.h" line="865"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/fs.h"
             line="860">whether an xfs signature was successfully wiped from the @device or
         not

Tech category: %BD_FS_TECH_XFS-%BD_FS_TECH_MODE_WIPE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/fs.h"
               line="857">the device to wipe an xfs signature from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_available_plugin_names"
              c:identifier="bd_get_available_plugin_names">
      <source-position filename="lib/plugins.h" line="37"/>
      <return-value transfer-ownership="container">
        <doc xml:space="preserve"
             filename="lib/blockdev.c"
             line="708">an array of string
names of plugins that are available</doc>
        <array c:type="gchar**">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <function name="get_plugin_name" c:identifier="bd_get_plugin_name">
      <source-position filename="lib/plugins.h" line="39"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/blockdev.c"
             line="762">name of the plugin</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="plugin" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="760">the queried plugin</doc>
          <type name="Plugin" c:type="BDPlugin"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_plugin_soname" c:identifier="bd_get_plugin_soname">
      <source-position filename="lib/plugins.h" line="38"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/blockdev.c"
             line="748">name of the shared object loaded for the plugin or
%NULL if none is loaded</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="plugin" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="746">the queried plugin</doc>
          <type name="Plugin" c:type="BDPlugin"/>
        </parameter>
      </parameters>
    </function>
    <function name="init" c:identifier="bd_init" throws="1">
      <source-position filename="lib/blockdev.h" line="20"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/blockdev.c"
             line="395">whether the library was successfully initialized with all the
         required or default (see @require_plugins) plugins or not

Example of libblockdev initialization with 'fs' and 'lvm' plugins. Specific
version of the lvm plugin is required:

|[&lt;!-- language="C" --&gt;
GError *error = NULL;
gboolean ret = FALSE;
BDPluginSpec fs_plugin = {BD_PLUGIN_FS, NULL};
BDPluginSpec lvm_plugin = {BD_PLUGIN_LVM, "libbd_lvm.so.2"};

BDPluginSpec *plugins[] = {&amp;fs_plugin, &amp;lvm_plugin, NULL};

ret = bd_init (plugins, NULL, &amp;error);
]|</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="require_plugins"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="388">%NULL-terminated list
                of plugins that should be loaded (if no so_name is specified
                for the plugin, the default is used) or %NULL to load all
                plugins</doc>
          <array c:type="BDPluginSpec**">
            <type name="PluginSpec" c:type="BDPluginSpec*"/>
          </array>
        </parameter>
        <parameter name="log_func"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="notified">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="392">logging function to use</doc>
          <type name="UtilsLogFunc" c:type="BDUtilsLogFunc"/>
        </parameter>
      </parameters>
    </function>
    <function name="init_error_quark"
              c:identifier="bd_init_error_quark"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="is_initialized" c:identifier="bd_is_initialized">
      <source-position filename="lib/blockdev.h" line="27"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/blockdev.c"
             line="691">whether the library is initialized or not

The library is considered initialized if some of the *init*() functions
was/were called and either at least one plugin is loaded or 0 plugins are
loaded after an explicit call that requested 0 plugins to be loaded.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="is_plugin_available" c:identifier="bd_is_plugin_available">
      <source-position filename="lib/plugins.h" line="36"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/blockdev.c"
             line="735">whether the given plugin is available or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="plugin" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="733">the queried plugin</doc>
          <type name="Plugin" c:type="BDPlugin"/>
        </parameter>
      </parameters>
    </function>
    <function name="kbd_bcache_attach"
              c:identifier="bd_kbd_bcache_attach"
              throws="1">
      <source-position filename="lib/plugin_apis/kbd.h" line="244"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="240">whether the @c_set_uuid cache was successfully attached to @bcache_device or not

Tech category: %BD_KBD_TECH_BCACHE-%BD_KBD_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="c_set_uuid" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="236">cache set UUID of the cache to attach</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="bcache_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="237">bcache device to attach @c_set_uuid cache to</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="kbd_bcache_create"
              c:identifier="bd_kbd_bcache_create"
              throws="1">
      <source-position filename="lib/plugin_apis/kbd.h" line="231"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="227">whether the bcache device was successfully created or not

Tech category: %BD_KBD_TECH_BCACHE-%BD_KBD_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="backing_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="220">backing (slow) device of the cache</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="cache_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="221">cache (fast) device of the cache</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="222">extra options for the creation (right now
                                                passed to the 'make-bcache' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
        <parameter name="bcache_device"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="224">place to store the name of the new bcache device (if any)</doc>
          <type name="utf8" c:type="const gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="kbd_bcache_destroy"
              c:identifier="bd_kbd_bcache_destroy"
              throws="1">
      <source-position filename="lib/plugin_apis/kbd.h" line="270"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="266">whether the bcache device @bcache_device was successfully destroyed or not

Tech category: %BD_KBD_TECH_BCACHE-%BD_KBD_TECH_MODE_DESTROY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="bcache_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="263">bcache device to destroy</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="kbd_bcache_detach"
              c:identifier="bd_kbd_bcache_detach"
              throws="1">
      <source-position filename="lib/plugin_apis/kbd.h" line="258"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="252">whether the bcache device @bcache_device was successfully destroyed or not

Note: Flushes the cache first.

Tech category: %BD_KBD_TECH_BCACHE-%BD_KBD_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="bcache_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="249">bcache device to detach the cache from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="c_set_uuid"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="250">cache set UUID of the detached cache</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="kbd_bcache_get_backing_device"
              c:identifier="bd_kbd_bcache_get_backing_device"
              throws="1">
      <source-position filename="lib/plugin_apis/kbd.h" line="343"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="338">name of the backing device of the @bcache_device
                          or %NULL if failed to determine (@error is populated)

Tech category: %BD_KBD_TECH_BCACHE-%BD_KBD_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="bcache_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="335">Bcache device to get the backing device for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="kbd_bcache_get_cache_device"
              c:identifier="bd_kbd_bcache_get_cache_device"
              throws="1">
      <source-position filename="lib/plugin_apis/kbd.h" line="359"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="351">name of the cache device of the @bcache_device
                          or %NULL if failed to determine (@error is populated)

Note: returns the name of the first cache device of @bcache_device (in case
      there are more)

Tech category: %BD_KBD_TECH_BCACHE-%BD_KBD_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="bcache_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="348">Bcache device to get the cache device for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="kbd_bcache_get_mode"
              c:identifier="bd_kbd_bcache_get_mode"
              throws="1">
      <source-position filename="lib/plugin_apis/kbd.h" line="282"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="278">current mode of the @bcache_device

Tech category: %BD_KBD_TECH_BCACHE-%BD_KBD_TECH_MODE_QUERY</doc>
        <type name="KBDBcacheMode" c:type="BDKBDBcacheMode"/>
      </return-value>
      <parameters>
        <parameter name="bcache_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="275">device to get mode of</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="kbd_bcache_get_mode_from_str"
              c:identifier="bd_kbd_bcache_get_mode_from_str"
              throws="1">
      <source-position filename="lib/plugin_apis/kbd.h" line="304"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="302">mode matching the @mode_str given or %BD_KBD_MODE_UNKNOWN in case of no match</doc>
        <type name="KBDBcacheMode" c:type="BDKBDBcacheMode"/>
      </return-value>
      <parameters>
        <parameter name="mode_str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="299">string representation of mode</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="kbd_bcache_get_mode_str"
              c:identifier="bd_kbd_bcache_get_mode_str"
              throws="1">
      <source-position filename="lib/plugin_apis/kbd.h" line="294"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="290">string representation of @mode or %NULL in case of error

Tech category: always available</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="287">mode to get string representation of</doc>
          <type name="KBDBcacheMode" c:type="BDKBDBcacheMode"/>
        </parameter>
      </parameters>
    </function>
    <function name="kbd_bcache_set_mode"
              c:identifier="bd_kbd_bcache_set_mode"
              throws="1">
      <source-position filename="lib/plugin_apis/kbd.h" line="317"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="313">whether the mode was successfully set or not

Tech category: %BD_KBD_TECH_BCACHE-%BD_KBD_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="bcache_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="309">bcache device to set mode of</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="310">mode to set</doc>
          <type name="KBDBcacheMode" c:type="BDKBDBcacheMode"/>
        </parameter>
      </parameters>
    </function>
    <function name="kbd_bcache_status"
              c:identifier="bd_kbd_bcache_status"
              throws="1">
      <source-position filename="lib/plugin_apis/kbd.h" line="330"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="325">status of the @bcache_device or %NULL in case of
                          error (@error is set)

Tech category: %BD_KBD_TECH_BCACHE-%BD_KBD_TECH_MODE_QUERY</doc>
        <type name="KBDBcacheStats" c:type="BDKBDBcacheStats*"/>
      </return-value>
      <parameters>
        <parameter name="bcache_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="322">bcache device to get status for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="kbd_error_quark" c:identifier="bd_kbd_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="kbd_is_tech_avail"
              c:identifier="bd_kbd_is_tech_avail"
              throws="1">
      <source-position filename="lib/plugin_apis/kbd.h" line="144"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="141">whether the @tech-@mode combination is available -- supported by the
         plugin implementation and having all the runtime dependencies available</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tech" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="137">the queried tech</doc>
          <type name="KBDTech" c:type="BDKBDTech"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="138">a bit mask of queried modes of operation (#BDKBDTechMode) for @tech</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="kbd_zram_add_device"
              c:identifier="bd_kbd_zram_add_device"
              throws="1">
      <source-position filename="lib/plugin_apis/kbd.h" line="191"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="187">whether a new zRAM device was added or not

Tech category: %BD_KBD_TECH_ZRAM-%BD_KBD_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="182">size of the zRAM device to add</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="nstreams" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="183">number of streams to use for the new device (or 0 to use the defaults)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="device"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="184">place to store the name of the newly added device</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="kbd_zram_create_devices"
              c:identifier="bd_kbd_zram_create_devices"
              throws="1">
      <source-position filename="lib/plugin_apis/kbd.h" line="162"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="156">whether @num_devices zRAM devices were successfully created or not

**Lengths of @size and @nstreams (if given) have to be &gt;= @num_devices!**

Tech category: %BD_KBD_TECH_ZRAM-%BD_KBD_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="num_devices" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="149">number of devices to create</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="sizes" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="150">requested sizes (in bytes) for created zRAM
                                   devices</doc>
          <array c:type="const guint64*">
            <type name="guint64" c:type="guint64"/>
          </array>
        </parameter>
        <parameter name="nstreams"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="152">numbers of streams for created
                                                   zRAM devices</doc>
          <array c:type="const guint64*">
            <type name="guint64" c:type="guint64"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="kbd_zram_destroy_devices"
              c:identifier="bd_kbd_zram_destroy_devices"
              throws="1">
      <source-position filename="lib/plugin_apis/kbd.h" line="177"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="169">whether zRAM devices were successfully destroyed or not

The only way how to destroy zRAM device right now is to unload the 'zram'
module and thus destroy all of them. That's why this function doesn't allow
specification of which devices should be destroyed.

Tech category: %BD_KBD_TECH_ZRAM-%BD_KBD_TECH_MODE_DESTROY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="kbd_zram_get_stats"
              c:identifier="bd_kbd_zram_get_stats"
              throws="1">
      <source-position filename="lib/plugin_apis/kbd.h" line="215"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="211">statistics for the zRAM device

Tech category: %BD_KBD_TECH_ZRAM-%BD_KBD_TECH_MODE_QUERY</doc>
        <type name="KBDZramStats" c:type="BDKBDZramStats*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="208">zRAM device to get stats for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="kbd_zram_remove_device"
              c:identifier="bd_kbd_zram_remove_device"
              throws="1">
      <source-position filename="lib/plugin_apis/kbd.h" line="203"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/kbd.h"
             line="199">whether the @device was successfully removed or not

Tech category: %BD_KBD_TECH_ZRAM-%BD_KBD_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/kbd.h"
               line="196">zRAM device to remove</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="loop_error_quark" c:identifier="bd_loop_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="loop_get_autoclear"
              c:identifier="bd_loop_get_autoclear"
              throws="1">
      <source-position filename="lib/plugin_apis/loop.h" line="118"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/loop.h"
             line="114">whether the autoclear flag is set on the @loop device or not (if %FALSE, @error may be set)

Tech category: %BD_LOOP_TECH_LOOP-%BD_LOOP_TECH_MODE_QUERY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="loop" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="111">path or name of the loop device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="loop_get_backing_file"
              c:identifier="bd_loop_get_backing_file"
              throws="1">
      <source-position filename="lib/plugin_apis/loop.h" line="48"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/loop.h"
             line="43">path of the device's backing file or %NULL if none
                          is found

Tech category: %BD_LOOP_TECH_LOOP-%BD_LOOP_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="dev_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="40">name of the loop device to get backing file for (e.g. "loop0")</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="loop_get_loop_name"
              c:identifier="bd_loop_get_loop_name"
              throws="1">
      <source-position filename="lib/plugin_apis/loop.h" line="60"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/loop.h"
             line="56">name of the loop device associated with the given @file

Tech category: %BD_LOOP_TECH_LOOP-%BD_LOOP_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="53">path of the backing file to get loop name for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="loop_is_tech_avail"
              c:identifier="bd_loop_is_tech_avail"
              throws="1">
      <source-position filename="lib/plugin_apis/loop.h" line="35"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/loop.h"
             line="32">whether the @tech-@mode combination is available -- supported by the
         plugin implementation and having all the runtime dependencies available</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tech" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="28">the queried tech</doc>
          <type name="LoopTech" c:type="BDLoopTech"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="29">a bit mask of queried modes of operation (#BDLoopTechMode) for @tech</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="loop_set_autoclear"
              c:identifier="bd_loop_set_autoclear"
              throws="1">
      <source-position filename="lib/plugin_apis/loop.h" line="131"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/loop.h"
             line="127">whether the autoclear flag was successfully set on the @loop device or not

Tech category: %BD_LOOP_TECH_LOOP-%BD_LOOP_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="loop" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="123">path or name of the loop device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="autoclear" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="124">whether to set or unset the autoclear flag</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="loop_setup" c:identifier="bd_loop_setup" throws="1">
      <source-position filename="lib/plugin_apis/loop.h" line="77"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/loop.h"
             line="73">whether the @file was successfully setup as a loop device or not

Tech category: %BD_LOOP_TECH_LOOP-%BD_LOOP_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="65">file to setup as a loop device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="offset" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="66">offset of the start of the device (in @file)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="67">maximum size of the device (or 0 to leave unspecified)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="read_only" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="68">whether to setup as read-only (%TRUE) or read-write (%FALSE)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="part_scan" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="69">whether to enforce partition scan on the newly created device or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="loop_name"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="70">if not %NULL, it is used to store the name of the loop device</doc>
          <type name="utf8" c:type="const gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="loop_setup_from_fd"
              c:identifier="bd_loop_setup_from_fd"
              throws="1">
      <source-position filename="lib/plugin_apis/loop.h" line="94"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/loop.h"
             line="90">whether an new loop device was successfully setup for @fd or not

Tech category: %BD_LOOP_TECH_LOOP-%BD_LOOP_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="fd" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="82">file descriptor for a file to setup as a new loop device</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="offset" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="83">offset of the start of the device (in file given by @fd)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="84">maximum size of the device (or 0 to leave unspecified)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="read_only" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="85">whether to setup as read-only (%TRUE) or read-write (%FALSE)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="part_scan" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="86">whether to enforce partition scan on the newly created device or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="loop_name"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="87">if not %NULL, it is used to store the name of the loop device</doc>
          <type name="utf8" c:type="const gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="loop_teardown" c:identifier="bd_loop_teardown" throws="1">
      <source-position filename="lib/plugin_apis/loop.h" line="106"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/loop.h"
             line="102">whether the @loop device was successfully torn down or not

Tech category: %BD_LOOP_TECH_LOOP-%BD_LOOP_TECH_MODE_DESTROY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="loop" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/loop.h"
               line="99">path or name of the loop device to tear down</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_cache_attach"
              c:identifier="bd_lvm_cache_attach"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1128"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1124">whether the @cache_pool_lv was successfully attached to the @data_lv or not

Tech category: %BD_LVM_TECH_CACHE-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1117">name of the VG containing the @data_lv and the @cache_pool_lv LVs</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="data_lv" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1118">data LV to attache the @cache_pool_lv to</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="cache_pool_lv" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1119">cache pool LV to attach to the @data_lv</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1120">extra options for the cache attachment
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_cache_create_cached_lv"
              c:identifier="bd_lvm_cache_create_cached_lv"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1166"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1162">whether the cached LV @lv_name was successfully created or not

Tech category: %BD_LVM_TECH_CACHE-%BD_LVM_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1151">name of the VG to create a cached LV in</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1152">name of the cached LV to create</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="data_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1153">size of the data LV</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="cache_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1154">size of the cache (or cached LV more precisely)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="md_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1155">size of the cache metadata LV or 0 to use the default</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1156">cache mode for the cached LV</doc>
          <type name="LVMCacheMode" c:type="BDLVMCacheMode"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1157">a combination of (ORed) #BDLVMCachePoolFlags</doc>
          <type name="LVMCachePoolFlags" c:type="BDLVMCachePoolFlags"/>
        </parameter>
        <parameter name="slow_pvs" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1158">list of slow PVs (used for the data LV)</doc>
          <array c:type="const gchar**">
            <type name="utf8" c:type="gchar*"/>
          </array>
        </parameter>
        <parameter name="fast_pvs" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1159">list of fast PVs (used for the cache LV)</doc>
          <array c:type="const gchar**">
            <type name="utf8" c:type="gchar*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_cache_create_pool"
              c:identifier="bd_lvm_cache_create_pool"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1112"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1108">whether the cache pool @vg_name/@pool_name was successfully created or not

Tech category: %BD_LVM_TECH_CACHE-%BD_LVM_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1097">name of the VG to create @pool_name in</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pool_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1098">name of the cache pool LV to create</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pool_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1099">desired size of the cache pool @pool_name</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="md_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1100">desired size of the @pool_name cache pool's metadata LV or 0 to
          use the default</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1102">cache mode of the @pool_name cache pool</doc>
          <type name="LVMCacheMode" c:type="BDLVMCacheMode"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1103">a combination of (ORed) #BDLVMCachePoolFlags</doc>
          <type name="LVMCachePoolFlags" c:type="BDLVMCachePoolFlags"/>
        </parameter>
        <parameter name="fast_pvs" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1104">list of (fast) PVs to create the @pool_name
                                      cache pool (and the metadata LV)</doc>
          <array c:type="const gchar**">
            <type name="utf8" c:type="gchar*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_cache_detach"
              c:identifier="bd_lvm_cache_detach"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1146"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1140">whether the cache was successfully detached from the @cached_lv or not

Note: synces the cache first

Tech category: %BD_LVM_TECH_CACHE-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1133">name of the VG containing the @cached_lv</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="cached_lv" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1134">name of the cached LV to detach its cache from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="destroy" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1135">whether to destroy the cache after detach or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1136">extra options for the cache detachment
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_cache_get_default_md_size"
              c:identifier="bd_lvm_cache_get_default_md_size"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1067"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1063">recommended default size of the cache metadata LV or 0 in case of error

Tech category: %BD_LVM_TECH_CACHE_CALCS no mode (it is ignored)</doc>
        <type name="guint64" c:type="guint64"/>
      </return-value>
      <parameters>
        <parameter name="cache_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1060">size of the cache to determine MD size for</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_cache_get_mode_from_str"
              c:identifier="bd_lvm_cache_get_mode_from_str"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1092"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1087">cache mode for the @mode_str or %BD_LVM_CACHE_MODE_UNKNOWN if
         failed to determine

Tech category: always provided/supported</doc>
        <type name="LVMCacheMode" c:type="BDLVMCacheMode"/>
      </return-value>
      <parameters>
        <parameter name="mode_str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1084">string representation of a cache mode</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_cache_get_mode_str"
              c:identifier="bd_lvm_cache_get_mode_str"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1079"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1075">string representation of @mode or %NULL in case of error

Tech category: always provided/supported</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1072">mode to get the string representation for</doc>
          <type name="LVMCacheMode" c:type="BDLVMCacheMode"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_cache_pool_convert"
              c:identifier="bd_lvm_cache_pool_convert"
              throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/lvm.h"
           line="1244">Converts the @data_lv and @metadata_lv into a new cache pool in the @vg_name
VG.</doc>
      <source-position filename="lib/plugin_apis/lvm.h" line="1262"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1257">whether the new cache pool was successfully created from @data_lv and
         @metadata_lv or not

Tech category: %BD_LVM_TECH_CACHE-%BD_LVM_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1246">name of the VG to create the new thin pool in</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="data_lv" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1247">name of the LV that should become the data part of the new pool</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="metadata_lv" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1248">name of the LV that should become the metadata part of the new pool</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="name"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1249">name for the thin pool (if %NULL, the name @data_lv is inherited)</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1250">extra options for the thin pool creation
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_cache_pool_name"
              c:identifier="bd_lvm_cache_pool_name"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1179"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1175">name of the cache pool LV used by the @cached_lv or %NULL in case of error

Tech category: %BD_LVM_TECH_CACHE-%BD_LVM_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1171">name of the VG containing the @cached_lv</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="cached_lv" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1172">cached LV to get the name of the its pool LV for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_cache_stats"
              c:identifier="bd_lvm_cache_stats"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1192"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1188">stats for the @cached_lv or %NULL in case of error

Tech category: %BD_LVM_TECH_CACHE-%BD_LVM_TECH_MODE_QUERY</doc>
        <type name="LVMCacheStats" c:type="BDLVMCacheStats*"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1184">name of the VG containing the @cached_lv</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="cached_lv" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1185">cached LV to get stats for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_cache_stats_free"
              c:identifier="bd_lvm_cache_stats_free"
              moved-to="LVMCacheStats.free"
              introspectable="0">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/lvm.h"
           line="383">Frees @data.</doc>
      <source-position filename="lib/plugin_apis/lvm.h" line="388"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <type name="LVMLVdata" c:type="BDLVMLVdata*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_data_lv_name"
              c:identifier="bd_lvm_data_lv_name"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1206"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1201">the name of the (internal) data LV of the
@vg_name/@lv_name LV

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1197">name of the VG containing the queried LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1198">name of the queried LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_error_quark" c:identifier="bd_lvm_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="lvm_get_global_config"
              c:identifier="bd_lvm_get_global_config"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1055"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1050">a copy of a string representation of the currently set LVM global
         configuration

Tech category: %BD_LVM_TECH_GLOB_CONF no mode (it is ignored)</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
    </function>
    <function name="lvm_get_lv_physical_size"
              c:identifier="bd_lvm_get_lv_physical_size"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="490"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="483">space taken on disk(s) by the LV with given @size

Gives number of bytes needed for an LV with the size @lv_size on an LVM stack
using given @pe_size.

Tech category: %BD_LVM_TECH_CALCS no mode (it is ignored)</doc>
        <type name="guint64" c:type="guint64"/>
      </return-value>
      <parameters>
        <parameter name="lv_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="479">LV size</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="pe_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="480">PE size</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_get_max_lv_size"
              c:identifier="bd_lvm_get_max_lv_size"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="455"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="451">maximum LV size in bytes

Tech category: %BD_LVM_TECH_CALCS no mode (it is ignored)</doc>
        <type name="guint64" c:type="guint64"/>
      </return-value>
    </function>
    <function name="lvm_get_supported_pe_sizes"
              c:identifier="bd_lvm_get_supported_pe_sizes"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="444"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="440">list of supported PE sizes

Tech category: %BD_LVM_TECH_CALCS no mode (it is ignored)</doc>
        <array c:type="guint64*">
          <type name="guint64" c:type="guint64"/>
        </array>
      </return-value>
    </function>
    <function name="lvm_get_thpool_meta_size"
              c:identifier="bd_lvm_get_thpool_meta_size"
              throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/lvm.h"
           line="508">Note: This function will be changed in 3.0: the @n_snapshots parameter
      is currently not used and will be removed.</doc>
      <source-position filename="lib/plugin_apis/lvm.h" line="522"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="518">recommended size of the metadata space for the specified pool

Tech category: %BD_LVM_TECH_THIN_CALCS no mode (it is ignored)</doc>
        <type name="guint64" c:type="guint64"/>
      </return-value>
      <parameters>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="510">size of the thin pool</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="chunk_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="511">chunk size of the thin pool or 0 to use the default (%BD_LVM_DEFAULT_CHUNK_SIZE)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="n_snapshots" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="512">ignored</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_get_thpool_padding"
              c:identifier="bd_lvm_get_thpool_padding"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="505"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="500">size of the padding needed for a thin pool with the given @size
        according to the @pe_size and @included

Tech category: %BD_LVM_TECH_THIN_CALCS no mode (it is ignored)</doc>
        <type name="guint64" c:type="guint64"/>
      </return-value>
      <parameters>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="495">size of the thin pool</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="pe_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="496">PE size or 0 if the default value should be used</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="included" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="497">if padding is already included in the size</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_get_vdo_compression_state_str"
              c:identifier="bd_lvm_get_vdo_compression_state_str"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1459"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1455">string representation of @state or %NULL in case of error

Tech category: always provided/supported</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="state" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1452">state to get the string representation for</doc>
          <type name="LVMVDOCompressionState"
                c:type="BDLVMVDOCompressionState"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_get_vdo_index_state_str"
              c:identifier="bd_lvm_get_vdo_index_state_str"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1471"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1467">string representation of @state or %NULL in case of error

Tech category: always provided/supported</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="state" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1464">state to get the string representation for</doc>
          <type name="LVMVDOIndexState" c:type="BDLVMVDOIndexState"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_get_vdo_operating_mode_str"
              c:identifier="bd_lvm_get_vdo_operating_mode_str"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1447"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1443">string representation of @mode or %NULL in case of error

Tech category: always provided/supported</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1440">mode to get the string representation for</doc>
          <type name="LVMVDOOperatingMode" c:type="BDLVMVDOOperatingMode"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_get_vdo_write_policy_from_str"
              c:identifier="bd_lvm_get_vdo_write_policy_from_str"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1496"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1491">write policy for the @policy_str or %BD_LVM_VDO_WRITE_POLICY_UNKNOWN if
         failed to determine

Tech category: always provided/supported</doc>
        <type name="LVMVDOWritePolicy" c:type="BDLVMVDOWritePolicy"/>
      </return-value>
      <parameters>
        <parameter name="policy_str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1488">string representation of a policy</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_get_vdo_write_policy_str"
              c:identifier="bd_lvm_get_vdo_write_policy_str"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1483"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1479">string representation of @policy or %NULL in case of error

Tech category: always provided/supported</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="policy" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1476">policy to get the string representation for</doc>
          <type name="LVMVDOWritePolicy" c:type="BDLVMVDOWritePolicy"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_is_supported_pe_size"
              c:identifier="bd_lvm_is_supported_pe_size"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="433"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="429">whether the given size is supported physical extent size or not

Tech category: %BD_LVM_TECH_CALCS no mode (it is ignored)</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="426">size (in bytes) to test</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_is_tech_avail"
              c:identifier="bd_lvm_is_tech_avail"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="421"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="418">whether the @tech-@mode combination is avaible -- supported by the
         plugin implementation and having all the runtime dependencies available</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tech" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="414">the queried tech</doc>
          <type name="LVMTech" c:type="BDLVMTech"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="415">a bit mask of queried modes of operation (#BDLVMTechMode) for @tech</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_is_valid_thpool_chunk_size"
              c:identifier="bd_lvm_is_valid_thpool_chunk_size"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="547"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="543">whether the given size is a valid thin pool chunk size or not

Tech category: %BD_LVM_TECH_THIN_CALCS no mode (it is ignored)</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="539">the size to be tested</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="discard" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="540">whether discard/TRIM is required to be supported or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_is_valid_thpool_md_size"
              c:identifier="bd_lvm_is_valid_thpool_md_size"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="534"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="530">whether the given size is a valid thin pool metadata size or not

Tech category: %BD_LVM_TECH_THIN_CALCS no mode (it is ignored)</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="527">the size to be tested</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_lvactivate"
              c:identifier="bd_lvm_lvactivate"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="885"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="881">whether the @vg_name/@lv_name LV was successfully activated or not

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="874">name of the VG containing the to-be-activated LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="875">name of the to-be-activated LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="ignore_skip" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="876">whether to ignore the skip flag or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="877">extra options for the LV activation
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_lvcreate" c:identifier="bd_lvm_lvcreate" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="820"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="816">whether the given @vg_name/@lv_name LV was successfully created or not

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="806">name of the VG to create a new LV in</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="807">name of the to-be-created LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="808">requested size of the new LV</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="type"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="809">type of the new LV ("striped", "raid1",..., see lvcreate (8))</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pv_list"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="810">list of PVs the newly created LV should use or %NULL
if not specified</doc>
          <array c:type="const gchar**">
            <type name="utf8" c:type="gchar*"/>
          </array>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="812">extra options for the LV creation
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_lvdeactivate"
              c:identifier="bd_lvm_lvdeactivate"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="900"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="896">whether the @vg_name/@lv_name LV was successfully deactivated or not

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="890">name of the VG containing the to-be-deactivated LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="891">name of the to-be-deactivated LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="892">extra options for the LV deactivation
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_lvinfo" c:identifier="bd_lvm_lvinfo" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="947"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="942">information about the @vg_name/@lv_name LV or %NULL in case
of error (the @error) gets populated in those cases)

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_QUERY</doc>
        <type name="LVMLVdata" c:type="BDLVMLVdata*"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="938">name of the VG that contains the LV to get information about</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="939">name of the LV to get information about</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_lvorigin" c:identifier="bd_lvm_lvorigin" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="801"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="796">the origin volume for the @vg_name/@lv_name LV or
%NULL if failed to determine (@error) is set in those cases)

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="792">name of the VG containing the queried LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="793">name of the queried LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_lvremove" c:identifier="bd_lvm_lvremove" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="836"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="832">whether the @vg_name/@lv_name LV was successfully removed or not

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_REMOVE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="825">name of the VG containing the to-be-removed LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="826">name of the to-be-removed LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="force" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="827">whether to force removal or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="828">extra options for the LV removal
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_lvrename" c:identifier="bd_lvm_lvrename" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="853"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="848">whether the @vg_name/@lv_name LV was successfully renamed to
@vg_name/@new_name or not

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="841">name of the VG containing the to-be-renamed LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="842">name of the to-be-renamed LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="new_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="843">new name for the @vg_name/@lv_name LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="844">extra options for the LV rename
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_lvresize" c:identifier="bd_lvm_lvresize" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="869"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="865">whether the @vg_name/@lv_name LV was successfully resized or not

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="858">name of the VG containing the to-be-resized LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="859">name of the to-be-resized LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="860">the requested new size of the LV</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="861">extra options for the LV resize
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_lvs" c:identifier="bd_lvm_lvs" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="960"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="955">information about LVs found in the given
@vg_name VG or in system if @vg_name is %NULL

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_QUERY</doc>
        <array c:type="BDLVMLVdata**">
          <type name="LVMLVdata" c:type="BDLVMLVdata*"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="vg_name"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="952">name of the VG to get information about LVs from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_lvsnapshotcreate"
              c:identifier="bd_lvm_lvsnapshotcreate"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="918"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="913">whether the @snapshot_name snapshot of the @vg_name/@origin_name LV
was successfully created or not.

Tech category: %BD_LVM_TECH_BASIC_SNAP-%BD_LVM_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="905">name of the VG containing the LV a new snapshot should be created of</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="origin_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="906">name of the LV a new snapshot should be created of</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="snapshot_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="907">name fo the to-be-created snapshot</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="908">requested size for the snapshot</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="909">extra options for the LV snapshot creation
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_lvsnapshotmerge"
              c:identifier="bd_lvm_lvsnapshotmerge"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="933"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="929">whether the @vg_name/@snapshot_name LV snapshot was successfully merged or not

Tech category: %BD_LVM_TECH_BASIC_SNAP-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="923">name of the VG containing the to-be-merged LV snapshot</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="snapshot_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="924">name of the to-be-merged LV snapshot</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="925">extra options for the LV snapshot merge
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_metadata_lv_name"
              c:identifier="bd_lvm_metadata_lv_name"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1220"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1215">the name of the (internal) metadata LV of the
@vg_name/@lv_name LV

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1211">name of the VG containing the queried LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1212">name of the queried LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_pvcreate" c:identifier="bd_lvm_pvcreate" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="563"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="559">whether the PV was successfully created or not

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="552">the device to make PV from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="data_alignment" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="553">data (first PE) alignment or 0 to use the default</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="metadata_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="554">size of the area reserved for metadata or 0 to use the default</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="555">extra options for the PV creation
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_pvinfo" c:identifier="bd_lvm_pvinfo" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="645"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="640">information about the PV on the given @device or
%NULL in case of error (the @error) gets populated in those cases)

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_QUERY</doc>
        <type name="LVMPVdata" c:type="BDLVMPVdata*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="637">a PV to get information about or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_pvmove" c:identifier="bd_lvm_pvmove" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="614"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="607">whether the extents from the @src PV where successfully moved or not

If @dest is %NULL, VG allocation rules are used for the extents from the @src
PV (see pvmove(8)).

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="601">the PV device to move extents off of</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="dest"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="602">the PV device to move extents onto or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="603">extra options for the PV move
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_pvremove" c:identifier="bd_lvm_pvremove" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="596"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="592">whether the PV was successfully removed/destroyed or not

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_REMOVE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="587">the PV device to be removed/destroyed</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="588">extra options for the PV removal
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_pvresize" c:identifier="bd_lvm_pvresize" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="582"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="574">whether the PV's size was successfully changed or not

If given @size different from 0, sets the PV's size to the given value (see
pvresize(8)). If given @size 0, adjusts the PV's size to the underlaying
block device's size.

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="568">the device to resize</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="569">the new requested size of the PV or 0 if it should be adjusted to device's size</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="570">extra options for the PV resize
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_pvs" c:identifier="bd_lvm_pvs" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="656"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="652">information about PVs found in the system

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_QUERY</doc>
        <array c:type="BDLVMPVdata**">
          <type name="LVMPVdata" c:type="BDLVMPVdata*"/>
        </array>
      </return-value>
    </function>
    <function name="lvm_pvscan" c:identifier="bd_lvm_pvscan" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="632"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="625">whether the system or @device was successfully scanned for PVs or not

The @device argument is used only if @update_cache is %TRUE. Otherwise the
whole system is scanned for PVs.

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_QUERY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="619">the device to scan for PVs or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="update_cache" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="620">whether to update the lvmetad cache or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="621">extra options for the PV scan
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_round_size_to_pe"
              c:identifier="bd_lvm_round_size_to_pe"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="474"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="465">@size rounded to @pe_size according to the @roundup

Rounds given @size up/down to a multiple of @pe_size according to the value
of the @roundup parameter. If the rounded value is too big to fit in the
return type, the result is rounded down (floored) regardless of the @roundup
parameter.

Tech category: %BD_LVM_TECH_CALCS no mode (it is ignored)</doc>
        <type name="guint64" c:type="guint64"/>
      </return-value>
      <parameters>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="460">size to be rounded</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="pe_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="461">physical extent (PE) size or 0 to use the default</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="roundup" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="462">whether to round up or down (ceil or floor)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_set_global_config"
              c:identifier="bd_lvm_set_global_config"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1043"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1038">whether the new requested global config @new_config was successfully
         set or not

Tech category: %BD_LVM_TECH_GLOB_CONF no mode (it is ignored)</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="new_config"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1034">string representation of the new global LVM
                           configuration to set or %NULL to reset to default</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_thlvcreate"
              c:identifier="bd_lvm_thlvcreate"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="997"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="993">whether the @vg_name/@lv_name thin LV was successfully created or not

Tech category: %BD_LVM_TECH_THIN-%BD_LVM_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="985">name of the VG containing the thin pool providing extents for the to-be-created thin LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pool_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="986">name of the pool LV providing extents for the to-be-created thin LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="987">name of the to-be-created thin LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="988">requested virtual size of the to-be-created thin LV</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="989">extra options for the thin LV creation
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_thlvpoolname"
              c:identifier="bd_lvm_thlvpoolname"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1011"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1006">the name of the pool volume for the @vg_name/@lv_name
thin LV or %NULL if failed to determine (@error) is set in those cases)

Tech category: %BD_LVM_TECH_THIN-%BD_LVM_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1002">name of the VG containing the queried thin LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1003">name of the queried thin LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_thpool_convert"
              c:identifier="bd_lvm_thpool_convert"
              throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/lvm.h"
           line="1223">Converts the @data_lv and @metadata_lv into a new thin pool in the @vg_name
VG.</doc>
      <source-position filename="lib/plugin_apis/lvm.h" line="1241"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1236">whether the new thin pool was successfully created from @data_lv and
         @metadata_lv or not

Tech category: %BD_LVM_TECH_THIN-%BD_LVM_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1225">name of the VG to create the new thin pool in</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="data_lv" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1226">name of the LV that should become the data part of the new pool</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="metadata_lv" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1227">name of the LV that should become the metadata part of the new pool</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="name"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1228">name for the thin pool (if %NULL, the name @data_lv is inherited)</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1229">extra options for the thin pool creation
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_thpoolcreate"
              c:identifier="bd_lvm_thpoolcreate"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="980"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="976">whether the @vg_name/@lv_name thin pool was successfully created or not

Tech category: %BD_LVM_TECH_THIN-%BD_LVM_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="965">name of the VG to create a thin pool in</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="966">name of the to-be-created pool LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="967">requested size of the to-be-created pool</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="md_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="968">requested metadata size or 0 to use the default</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="chunk_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="969">requested chunk size or 0 to use the default</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="profile"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="970">profile to use (see lvm(8) for more information) or %NULL to use
                        the default</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="972">extra options for the thin pool creation
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_thsnapshotcreate"
              c:identifier="bd_lvm_thsnapshotcreate"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1029"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1024">whether the @snapshot_name snapshot of the @vg_name/@origin_name
thin LV was successfully created or not.

Tech category: %BD_LVM_TECH_THIN-%BD_LVM_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1016">name of the VG containing the thin LV a new snapshot should be created of</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="origin_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1017">name of the thin LV a new snapshot should be created of</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="snapshot_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1018">name fo the to-be-created snapshot</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pool_name"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1019">name of the thin pool to create the snapshot in or %NULL if not specified</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1020">extra options for the thin LV snapshot creation
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vdo_disable_compression"
              c:identifier="bd_lvm_vdo_disable_compression"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1314"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1310">whether compression was successfully disabled on @vg_name/@pool_name LV or not

Tech category: %BD_LVM_TECH_VDO-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1304">name of the VG containing the to-be-changed VDO pool LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pool_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1305">name of the VDO pool LV to disable compression on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1306">extra options for the VDO change
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vdo_disable_deduplication"
              c:identifier="bd_lvm_vdo_disable_deduplication"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1344"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1340">whether deduplication was successfully disabled on @vg_name/@pool_name LV or not

Tech category: %BD_LVM_TECH_VDO-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1334">name of the VG containing the to-be-changed VDO pool LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pool_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1335">name of the VDO pool LV to disable deduplication on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1336">extra options for the VDO change
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vdo_enable_compression"
              c:identifier="bd_lvm_vdo_enable_compression"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1299"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1295">whether compression was successfully enabled on @vg_name/@pool_name LV or not

Tech category: %BD_LVM_TECH_VDO-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1289">name of the VG containing the to-be-changed VDO pool LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pool_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1290">name of the VDO pool LV to enable compression on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1291">extra options for the VDO change
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vdo_enable_deduplication"
              c:identifier="bd_lvm_vdo_enable_deduplication"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1329"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1325">whether deduplication was successfully enabled on @vg_name/@pool_name LV or not

Tech category: %BD_LVM_TECH_VDO-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1319">name of the VG containing the to-be-changed VDO pool LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pool_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1320">name of the VDO pool LV to enable deduplication on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1321">extra options for the VDO change
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vdo_get_stats"
              c:identifier="bd_lvm_vdo_get_stats"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1533"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1525">a structure containing selected statistics or %NULL in case of error
                          (@error gets populated in those cases)

In contrast to @bd_lvm_vdo_get_stats_full this function will only return selected statistics
in a fixed structure. In case a value is not available, -1 would be returned.

Tech category: %BD_LVM_TECH_VDO-%BD_LVM_TECH_MODE_QUERY</doc>
        <type name="LVMVDOStats" c:type="BDLVMVDOStats*"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1521">name of the VG that contains @pool_name VDO pool</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pool_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1522">name of the VDO pool to get statistics for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vdo_get_stats_full"
              c:identifier="bd_lvm_vdo_get_stats_full"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1516"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1505">hashtable of type string - string of available
                                                   statistics or %NULL in case of error
                                                   (@error gets populated in those cases)

Statistics are collected from the values exposed by the kernel `kvdo` module
at the `/sys/kvdo/&lt;VDO_NAME&gt;/statistics/` path.
Some of the keys are computed to mimic the information produced by the vdo tools.
Please note the contents of the hashtable may vary depending on the actual kvdo module version.

Tech category: %BD_LVM_TECH_VDO-%BD_LVM_TECH_MODE_QUERY</doc>
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="utf8"/>
          <type name="utf8"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1501">name of the VG that contains @pool_name VDO pool</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pool_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1502">name of the VDO pool to get statistics for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vdo_info" c:identifier="bd_lvm_vdo_info" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1358"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1353">information about the @vg_name/@lv_name LV or %NULL in case
of error (the @error) gets populated in those cases)

Tech category: %BD_LVM_TECH_VDO-%BD_LVM_TECH_MODE_QUERY</doc>
        <type name="LVMVDOPooldata" c:type="BDLVMVDOPooldata*"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1349">name of the VG that contains the LV to get information about</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1350">name of the LV to get information about</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vdo_pool_convert"
              c:identifier="bd_lvm_vdo_pool_convert"
              throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/lvm.h"
           line="1398">Converts the @pool_lv into a new VDO pool LV in the @vg_name VG and creates a new
@name VDO LV with size @virtual_size.

Note: All data on @pool_lv will be irreversibly destroyed.</doc>
      <source-position filename="lib/plugin_apis/lvm.h" line="1421"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1417">whether the new VDO pool LV was successfully created from @pool_lv and or not

Tech category: %BD_LVM_TECH_POOL-%BD_LVM_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1400">name of the VG that contains @pool_lv</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pool_lv" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1401">name of the LV that should become the new VDO pool LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="name"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1402">name for the VDO LV or %NULL for default name</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="virtual_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1403">virtual size for the new VDO LV</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="index_memory" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1404">amount of index memory (in bytes) or 0 for default</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="compression" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1405">whether to enable compression or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="deduplication" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1406">whether to enable deduplication or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="write_policy" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1407">write policy for the volume</doc>
          <type name="LVMVDOWritePolicy" c:type="BDLVMVDOWritePolicy"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1408">extra options for the VDO pool creation
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vdo_pool_create"
              c:identifier="bd_lvm_vdo_pool_create"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1284"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1280">whether the given @vg_name/@lv_name VDO LV was successfully created or not

Tech category: %BD_LVM_TECH_VDO-%BD_LVM_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1267">name of the VG to create a new LV in</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1268">name of the to-be-created VDO LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pool_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1269">name of the to-be-created VDO pool LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="data_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1270">requested size of the data VDO LV (physical size of the @pool_name VDO pool LV)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="virtual_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1271">requested virtual_size of the @lv_name VDO LV</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="index_memory" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1272">amount of index memory (in bytes) or 0 for default</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="compression" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1273">whether to enable compression or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="deduplication" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1274">whether to enable deduplication or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="write_policy" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1275">write policy for the volume</doc>
          <type name="LVMVDOWritePolicy" c:type="BDLVMVDOWritePolicy"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1276">extra options for the VDO LV creation
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vdo_pool_resize"
              c:identifier="bd_lvm_vdo_pool_resize"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1395"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1389">whether the @vg_name/@pool_name VDO pool LV was successfully resized or not

Note: Size of the VDO pool LV can be only extended, not reduced.

Tech category: %BD_LVM_TECH_VDO-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1382">name of the VG containing the to-be-resized VDO pool LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pool_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1383">name of the to-be-resized VDO pool LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1384">the requested new size of the VDO pool LV</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1385">extra options for the VDO pool LV resize
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vdo_resize"
              c:identifier="bd_lvm_vdo_resize"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1377"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1370">whether the @vg_name/@lv_name VDO LV was successfully resized or not

Note: Reduction needs to process TRIM for reduced disk area to unmap used data blocks
      from the VDO pool LV and it may take a long time.

Tech category: %BD_LVM_TECH_VDO-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1363">name of the VG containing the to-be-resized VDO LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1364">name of the to-be-resized VDO LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1365">the requested new size of the VDO LV</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1366">extra options for the VDO LV resize
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vdolvpoolname"
              c:identifier="bd_lvm_vdolvpoolname"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="1435"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="1430">the name of the pool volume for the @vg_name/@lv_name
VDO LV or %NULL if failed to determine (@error) is set in those cases)

Tech category: %BD_LVM_TECH_VDO-%BD_LVM_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1426">name of the VG containing the queried VDO LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="lv_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="1427">name of the queried VDO LV</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vgactivate"
              c:identifier="bd_lvm_vgactivate"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="715"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="711">whether the VG was successfully activated or not

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="706">name of the to be activated VG</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="707">extra options for the VG activation
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vgcreate" c:identifier="bd_lvm_vgcreate" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="672"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="668">whether the VG @name was successfully created or not

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="661">name of the newly created VG</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="pv_list" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="662">list of PVs the newly created VG should use</doc>
          <array c:type="const gchar**">
            <type name="utf8" c:type="gchar*"/>
          </array>
        </parameter>
        <parameter name="pe_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="663">PE size or 0 if the default value should be used</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="664">extra options for the VG creation
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vgdeactivate"
              c:identifier="bd_lvm_vgdeactivate"
              throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="729"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="725">whether the VG was successfully deactivated or not

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="720">name of the to be deactivated VG</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="721">extra options for the VG deactivation
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vgextend" c:identifier="bd_lvm_vgextend" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="744"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="740">whether the VG @vg_name was successfully extended with the given @device or not.

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="734">name of the to be extended VG</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="735">PV device to extend the @vg_name VG with</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="736">extra options for the VG extension
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vginfo" c:identifier="bd_lvm_vginfo" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="776"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="771">information about the @vg_name VG or %NULL in case
of error (the @error) gets populated in those cases)

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_QUERY</doc>
        <type name="LVMVGdata" c:type="BDLVMVGdata*"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="768">a VG to get information about</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vgreduce" c:identifier="bd_lvm_vgreduce" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="763"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="756">whether the VG @vg_name was successfully reduced of the given @device or not

Note: This function does not move extents off of the PV before removing
      it from the VG. You must do that first by calling #bd_lvm_pvmove.

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="749">name of the to be reduced VG</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="device"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="750">PV device the @vg_name VG should be reduced of or %NULL
                       if the VG should be reduced of the missing PVs</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="752">extra options for the VG reduction
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vgremove" c:identifier="bd_lvm_vgremove" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="686"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="682">whether the VG was successfully removed or not

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_REMOVE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="677">name of the to be removed VG</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="678">extra options for the VG removal
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vgrename" c:identifier="bd_lvm_vgrename" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="701"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="697">whether the VG was successfully renamed or not

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="old_vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="691">old name of the VG to rename</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="new_vg_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="692">new name for the @old_vg_name VG</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/lvm.h"
               line="693">extra options for the VG rename
                                                (just passed to LVM as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="lvm_vgs" c:identifier="bd_lvm_vgs" throws="1">
      <source-position filename="lib/plugin_apis/lvm.h" line="787"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/lvm.h"
             line="783">information about VGs found in the system

Tech category: %BD_LVM_TECH_BASIC-%BD_LVM_TECH_MODE_QUERY</doc>
        <array c:type="BDLVMVGdata**">
          <type name="LVMVGdata" c:type="BDLVMVGdata*"/>
        </array>
      </return-value>
    </function>
    <function name="md_activate" c:identifier="bd_md_activate" throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="230"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="224">whether the MD RAID @device was successfully activated or not

Note: either @members or @uuid (or both) have to be specified.

Tech category: %BD_MD_TECH_MDRAID-%BD_MD_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="raid_spec"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="216">specification of the RAID device (name, node or path) to activate (if not given "--scan" is implied and @members is ignored)</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="members"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="217">member devices to be considered for @device activation</doc>
          <array c:type="const gchar**">
            <type name="utf8" c:type="gchar*"/>
          </array>
        </parameter>
        <parameter name="uuid"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="218">UUID (in the MD RAID format!) of the MD RAID to activate</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="start_degraded" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="219">whether to start the array even if it's degraded</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="220">extra options for the activation (right now
                                                passed to the 'mdadm' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="md_add" c:identifier="bd_md_add" throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="297"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="285">whether the @device was successfully added to the @raid_spec RAID or
not

The @raid_devs parameter is used when adding devices to a raid array that has
no actual redundancy. In this case it is necessary to explicitly grow the
array all at once rather than manage it in the sense of adding spares.

Whether the new device will be added as a spare or an active member is
decided by mdadm.

Tech category: %BD_MD_TECH_MDRAID-%BD_MD_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="raid_spec" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="277">specification of the RAID device (name, node or path) to add @device into</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="278">name of the device to add to the @raid_spec RAID device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="raid_devs" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="279">number of devices the @raid_spec RAID should actively use or 0
            to leave unspecified (see below)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="281">extra options for the addition (right now
                                                passed to the 'mdadm' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="md_canonicalize_uuid"
              c:identifier="bd_md_canonicalize_uuid"
              throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="353"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="346">cannonicalized form of @uuid

This function expects a UUID in the form that mdadm returns. The change is as
follows: 3386ff85:f5012621:4a435f06:1eb47236 -&gt; 3386ff85-f501-2621-4a43-5f061eb47236

Tech category: always available</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="uuid" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="343">UUID to canonicalize</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md_create" c:identifier="bd_md_create" throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="187"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="183">whether the new MD RAID device @device_name was successfully created or not

Tech category: %BD_MD_TECH_MDRAID-%BD_MD_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="172">name of the device to create</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="level" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="173">RAID level (as understood by mdadm, see mdadm(8))</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="disks" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="174">disks to use for the new RAID (including spares)</doc>
          <array c:type="const gchar**">
            <type name="utf8" c:type="gchar*"/>
          </array>
        </parameter>
        <parameter name="spares" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="175">number of spare devices</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="version"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="176">metadata version</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="bitmap" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="177">whether to create an internal bitmap on the device or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="chunk_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="178">chunk size of the device to create</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="179">extra options for the creation (right now
                                                passed to the 'mdadm' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="md_deactivate" c:identifier="bd_md_deactivate" throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="211"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="207">whether the RAID device @raid_spec was successfully deactivated or not

Tech category: %BD_MD_TECH_MDRAID-%BD_MD_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="raid_spec" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="204">specification of the RAID device (name, node or path)</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md_denominate" c:identifier="bd_md_denominate" throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="272"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="265">whether the @device was successfully denominated (added to its
appropriate RAID) or not

Note: may start the MD RAID if it becomes ready by adding @device.

Tech category: %BD_MD_TECH_MDRAID-%BD_MD_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="262">device to denominate (remove from its appropriate RAID) as a MD RAID device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md_destroy" c:identifier="bd_md_destroy" throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="199"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="195">whether the MD RAID metadata was successfully destroyed on @device or not

Tech category: %BD_MD_TECH_MDRAID-%BD_MD_TECH_MODE_DELETE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="192">device to destroy MD RAID metadata on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md_detail" c:identifier="bd_md_detail" throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="338"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="334">information about the MD RAID @raid_spec

Tech category: %BD_MD_TECH_MDRAID-%BD_MD_TECH_MODE_QUERY</doc>
        <type name="MDDetailData" c:type="BDMDDetailData*"/>
      </return-value>
      <parameters>
        <parameter name="raid_spec" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="331">specification of the RAID device (name, node or path) to examine</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md_error_quark" c:identifier="bd_md_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="md_examine" c:identifier="bd_md_examine" throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="326"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="322">information about the MD RAID extracted from the @device

Tech category: %BD_MD_TECH_MDRAID-%BD_MD_TECH_MODE_QUERY</doc>
        <type name="MDExamineData" c:type="BDMDExamineData*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="319">name of the device (a member of an MD RAID) to examine</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md_get_bitmap_location"
              c:identifier="bd_md_get_bitmap_location"
              throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="431"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="427">bitmap location for @raid_spec

Tech category: %BD_MD_TECH_MDRAID-%BD_MD_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="raid_spec" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="424">specification of the RAID device (name, node or path) to get the bitmap location</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md_get_md_uuid"
              c:identifier="bd_md_get_md_uuid"
              throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="370"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="361">transformed form of @uuid

This function expects a UUID in the canonical (traditional format) and
returns a UUID in the format used by MD RAID and is thus reverse to
bd_md_canonicalize_uuid(). The change is as follows:
3386ff85-f501-2621-4a43-5f061eb47236 -&gt; 3386ff85:f5012621:4a435f06:1eb47236

Tech category: always available</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="uuid" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="358">UUID to transform into format used by MD RAID</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md_get_status" c:identifier="bd_md_get_status" throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="406"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="402">status of the @raid_spec RAID.

Tech category: %BD_MD_TECH_MDRAID-%BD_MD_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="raid_spec" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="399">specification of the RAID device (name, node or path) to get status</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md_get_superblock_size"
              c:identifier="bd_md_get_superblock_size"
              throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="167"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="162">Calculated superblock size for an array with a given @member_size
and metadata @version or default if unsupported @version is used.

Tech category: always available</doc>
        <type name="guint64" c:type="guint64"/>
      </return-value>
      <parameters>
        <parameter name="member_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="158">size of an array member</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="version"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="159">metadata version or %NULL to use the current default version</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md_is_tech_avail"
              c:identifier="bd_md_is_tech_avail"
              throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="153"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="150">whether the @tech-@mode combination is available -- supported by the
         plugin implementation and having all the runtime dependencies available</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tech" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="146">the queried tech</doc>
          <type name="MDTech" c:type="BDMDTech"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="147">a bit mask of queried modes of operation for @tech</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="md_name_from_node"
              c:identifier="bd_md_name_from_node"
              throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="394"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="390">@name of the MD RAID the device node belongs to or %NULL in case of error

Tech category: always available</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="387">path of the MD RAID's device node</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md_node_from_name"
              c:identifier="bd_md_node_from_name"
              throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="382"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="378">device node of the @name MD RAID or %NULL in case of error

Tech category: always available</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="375">name of the MD RAID</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md_nominate" c:identifier="bd_md_nominate" throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="257"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="250">whether the @device was successfully nominated (added to its
appropriate RAID) or not

Note: may start the MD RAID if it becomes ready by adding @device.

Tech category: %BD_MD_TECH_MDRAID-%BD_MD_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="247">device to nominate (add to its appropriate RAID) as a MD RAID device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md_remove" c:identifier="bd_md_remove" throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="314"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="309">whether the @device was successfully removed from the @raid_spec
RAID or not.

Tech category: %BD_MD_TECH_MDRAID-%BD_MD_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="raid_spec" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="302">specification of the RAID device (name, node or path) to remove @device from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="303">device to remove from the @raid_spec RAID</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="fail" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="304">whether to mark the @device as failed before removing</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="305">extra options for the removal (right now
                                                passed to the 'mdadm' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="md_request_sync_action"
              c:identifier="bd_md_request_sync_action"
              throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="445"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="440">whether the @action was successfully requested for the @raid_spec
RAID or not.

Tech category: %BD_MD_TECH_MDRAID-%BD_MD_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="raid_spec" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="436">specification of the RAID device (name, node or path) to request sync action on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="action" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="437">requested sync action (resync, recovery, check, repair or idle)</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md_run" c:identifier="bd_md_run" throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="242"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="238">whether the @raid_spec was successfully started or not

Tech category: %BD_MD_TECH_MDRAID-%BD_MD_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="raid_spec" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="235">specification of the (possibly degraded) RAID device (name, node or path) to be started</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md_set_bitmap_location"
              c:identifier="bd_md_set_bitmap_location"
              throws="1">
      <source-position filename="lib/plugin_apis/mdraid.h" line="419"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mdraid.h"
             line="415">whether @location was successfully set for @raid_spec

Tech category: %BD_MD_TECH_MDRAID-%BD_MD_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="raid_spec" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="411">specification of the RAID device (name, node or path) to set the bitmap location</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="location" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mdraid.h"
               line="412">bitmap location (none, internal or path)</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mpath_error_quark" c:identifier="bd_mpath_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="mpath_flush_mpaths"
              c:identifier="bd_mpath_flush_mpaths"
              throws="1">
      <source-position filename="lib/plugin_apis/mpath.h" line="49"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mpath.h"
             line="43">whether multipath device maps were successfully flushed or not

Flushes all unused multipath device maps.

Tech category: %BD_MPATH_TECH_BASE-%BD_MPATH_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="mpath_get_mpath_members"
              c:identifier="bd_mpath_get_mpath_members"
              throws="1">
      <source-position filename="lib/plugin_apis/mpath.h" line="75"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mpath.h"
             line="69">list of names of all devices that are
                                                    members of the mpath mappings (or %NULL
                                                    in case of error)

Tech category: %BD_MPATH_TECH_BASE-%BD_MPATH_TECH_MODE_QUERY</doc>
        <array c:type="gchar**">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <function name="mpath_is_mpath_member"
              c:identifier="bd_mpath_is_mpath_member"
              throws="1">
      <source-position filename="lib/plugin_apis/mpath.h" line="62"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mpath.h"
             line="57">%TRUE if the device is a multipath member, %FALSE if not or an error
appeared when queried (@error is set in those cases)

Tech category: %BD_MPATH_TECH_BASE-%BD_MPATH_TECH_MODE_QUERY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mpath.h"
               line="54">device to test</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mpath_is_tech_avail"
              c:identifier="bd_mpath_is_tech_avail"
              throws="1">
      <source-position filename="lib/plugin_apis/mpath.h" line="36"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mpath.h"
             line="33">whether the @tech-@mode combination is avaible -- supported by the
         plugin implementation and having all the runtime dependencies available</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tech" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mpath.h"
               line="29">the queried tech</doc>
          <type name="MpathTech" c:type="BDMpathTech"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mpath.h"
               line="30">a bit mask of queried modes of operation for @tech</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="mpath_set_friendly_names"
              c:identifier="bd_mpath_set_friendly_names"
              throws="1">
      <source-position filename="lib/plugin_apis/mpath.h" line="87"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/mpath.h"
             line="83">if successfully set or not

Tech category: %BD_MPATH_TECH_FRIENDLY_NAMES-%BD_MPATH_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="enabled" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/mpath.h"
               line="80">whether friendly names should be enabled or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="nvdimm_error_quark" c:identifier="bd_nvdimm_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="nvdimm_is_tech_avail"
              c:identifier="bd_nvdimm_is_tech_avail"
              throws="1">
      <source-position filename="lib/plugin_apis/nvdimm.h" line="92"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="89">whether the @tech-@mode combination is available -- supported by the
         plugin implementation and having all the runtime dependencies available</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tech" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="85">the queried tech</doc>
          <type name="NVDIMMTech" c:type="BDNVDIMMTech"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="86">a bit mask of queried modes of operation (#BDNVDIMMTechMode) for @tech</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="nvdimm_list_namespaces"
              c:identifier="bd_nvdimm_list_namespaces"
              throws="1">
      <source-position filename="lib/plugin_apis/nvdimm.h" line="189"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="184">information about the namespaces on @bus and @region or
                                    %NULL if no namespaces were found (@error may be set to indicate error)

Tech category: %BD_NVDIMM_TECH_NAMESPACE-%BD_NVDIMM_TECH_MODE_QUERY</doc>
        <array c:type="BDNVDIMMNamespaceInfo**">
          <type name="NVDIMMNamespaceInfo" c:type="BDNVDIMMNamespaceInfo*"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="bus"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="175">return only namespaces on given bus (specified by name),
                    %NULL may be specified to return namespaces from all buses</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="region"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="177">return only namespaces on given region (specified by regionX name or region id),
                       %NULL may be specified to return namespaces from all regions</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="idle" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="179">whether to list idle (not enabled) namespaces too</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="180">extra options for the creation (right now
                                                passed to the 'ndctl' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="nvdimm_namepace_get_supported_sector_sizes"
              c:identifier="bd_nvdimm_namepace_get_supported_sector_sizes"
              throws="1">
      <source-position filename="lib/plugin_apis/nvdimm.h" line="214"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="210">list of supported sector sizes for @mode

Tech category: %BD_NVDIMM_TECH_NAMESPACE-%BD_NVDIMM_TECH_MODE_QUERY</doc>
        <array c:type="const guint64*">
          <type name="guint64" c:type="guint64"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="207">namespace mode</doc>
          <type name="NVDIMMNamespaceMode" c:type="BDNVDIMMNamespaceMode"/>
        </parameter>
      </parameters>
    </function>
    <function name="nvdimm_namespace_disable"
              c:identifier="bd_nvdimm_namespace_disable"
              throws="1">
      <source-position filename="lib/plugin_apis/nvdimm.h" line="156"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="152">whether the @namespace was successfully disabled or not

Tech category: %BD_NVDIMM_TECH_NAMESPACE-%BD_NVDIMM_TECH_MODE_ACTIVATE_DEACTIVATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="namespace" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="148">name of the namespace to disable</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="149">extra options (currently unused)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="nvdimm_namespace_enable"
              c:identifier="bd_nvdimm_namespace_enable"
              throws="1">
      <source-position filename="lib/plugin_apis/nvdimm.h" line="143"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="139">whether the @namespace was successfully enabled or not

Tech category: %BD_NVDIMM_TECH_NAMESPACE-%BD_NVDIMM_TECH_MODE_ACTIVATE_DEACTIVATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="namespace" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="135">name of the namespace to enable</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="136">extra options (currently unused)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="nvdimm_namespace_get_devname"
              c:identifier="bd_nvdimm_namespace_get_devname"
              throws="1">
      <source-position filename="lib/plugin_apis/nvdimm.h" line="130"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="124">namespace device name (e.g. "namespaceX.Y") for @device
                          or %NULL if @device is not a NVDIMM namespace
                          (@error may be set to indicate error)

Tech category: %BD_NVDIMM_TECH_NAMESPACE-%BD_NVDIMM_TECH_MODE_QUERY</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="121">name or path of a block device (e.g. "/dev/pmem0")</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="nvdimm_namespace_get_mode_from_str"
              c:identifier="bd_nvdimm_namespace_get_mode_from_str"
              throws="1">
      <source-position filename="lib/plugin_apis/nvdimm.h" line="104"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="100">mode matching the @mode_str given or %BD_NVDIMM_NAMESPACE_MODE_UNKNOWN in case of no match

Tech category: always available</doc>
        <type name="NVDIMMNamespaceMode" c:type="BDNVDIMMNamespaceMode"/>
      </return-value>
      <parameters>
        <parameter name="mode_str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="97">string representation of mode</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="nvdimm_namespace_get_mode_str"
              c:identifier="bd_nvdimm_namespace_get_mode_str"
              throws="1">
      <source-position filename="lib/plugin_apis/nvdimm.h" line="116"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="112">string representation of @mode or %NULL in case of error

Tech category: always available</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="109">mode to get string representation of</doc>
          <type name="NVDIMMNamespaceMode" c:type="BDNVDIMMNamespaceMode"/>
        </parameter>
      </parameters>
    </function>
    <function name="nvdimm_namespace_info"
              c:identifier="bd_nvdimm_namespace_info"
              throws="1">
      <source-position filename="lib/plugin_apis/nvdimm.h" line="170"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="165">information about given namespace or %NULL if no such
                          namespace was found (@error may be set to indicate error)

Tech category: %BD_NVDIMM_TECH_NAMESPACE-%BD_NVDIMM_TECH_MODE_QUERY</doc>
        <type name="NVDIMMNamespaceInfo" c:type="BDNVDIMMNamespaceInfo*"/>
      </return-value>
      <parameters>
        <parameter name="namespace" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="161">namespace to get information about</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="162">extra options (currently unused)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="nvdimm_namespace_reconfigure"
              c:identifier="bd_nvdimm_namespace_reconfigure"
              throws="1">
      <source-position filename="lib/plugin_apis/nvdimm.h" line="202"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/nvdimm.h"
             line="200">whether @namespace was successfully reconfigured or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="namespace" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="194">name of the namespace to recofigure</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="195">mode type to set (memory/sector/raw/dax)</doc>
          <type name="NVDIMMNamespaceMode" c:type="BDNVDIMMNamespaceMode"/>
        </parameter>
        <parameter name="force" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/nvdimm.h"
               line="197">extra options for the creation (right now
                                                passed to the 'ndctl' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="part_create_part"
              c:identifier="bd_part_create_part"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="277"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="270">specification of the created partition or %NULL in case of error

NOTE: The resulting partition may start at a different position than given by
      @start and can have different size than @size due to alignment.

Tech category: %BD_PART_TECH_MODE_MODIFY_TABLE + the tech according to the partition table type</doc>
        <type name="PartSpec" c:type="BDPartSpec*"/>
      </return-value>
      <parameters>
        <parameter name="disk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="261">disk to create partition on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="262">type of the partition to create (if %BD_PART_TYPE_REQ_NEXT, the
       partition type will be determined automatically based on the existing
       partitions)</doc>
          <type name="PartTypeReq" c:type="BDPartTypeReq"/>
        </parameter>
        <parameter name="start" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="265">where the partition should start (i.e. offset from the disk start)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="266">desired size of the partition (if 0, a max-sized partition is created)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="align" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="267">alignment to use for the partition</doc>
          <type name="PartAlign" c:type="BDPartAlign"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_create_table"
              c:identifier="bd_part_create_table"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="172"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="168">whether the partition table was successfully created or not

Tech category: %BD_PART_TECH_MODE_CREATE_TABLE + the tech according to @type</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="disk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="162">path of the disk block device to create partition table on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="163">type of the partition table to create</doc>
          <type name="PartTableType" c:type="BDPartTableType"/>
        </parameter>
        <parameter name="ignore_existing" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="164">whether to ignore/overwrite the existing table or not
                  (reports an error if %FALSE and there's some table on @disk)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_delete_part"
              c:identifier="bd_part_delete_part"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="290"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="286">whether the @part partition was successfully deleted from @disk

Tech category: %BD_PART_TECH_MODE_MODIFY_TABLE + the tech according to the partition table type</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="disk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="282">disk to remove the partition from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="part" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="283">partition to remove</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_error_quark" c:identifier="bd_part_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="part_get_best_free_region"
              c:identifier="bd_part_get_best_free_region"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="256"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="245">spec of the best free region on @disk for a new partition of type @type
                          with the size of @size or %NULL if there is none such region or if
                          there was an error (@error gets populated)

Note: For the @type %BD_PART_TYPE_NORMAL, the smallest possible space that *is not* in an extended partition
      is found. For the @type %BD_PART_TYPE_LOGICAL, the smallest possible space that *is* in an extended
      partition is found. For %BD_PART_TYPE_EXTENDED, the biggest possible space is found as long as there
      is no other extended partition (there can only be one).

Tech category: %BD_PART_TECH_MODE_QUERY_TABLE + the tech according to the partition table type</doc>
        <type name="PartSpec" c:type="BDPartSpec*"/>
      </return-value>
      <parameters>
        <parameter name="disk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="240">disk to get the best free region for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="241">type of the partition that is planned to be added</doc>
          <type name="PartType" c:type="BDPartType"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="242">size of the partition to be added</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_get_disk_free_regions"
              c:identifier="bd_part_get_disk_free_regions"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="235"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="231">specs of the free regions from @disk or %NULL in case of error

Tech category: %BD_PART_TECH_MODE_QUERY_TABLE + the tech according to the partition table type</doc>
        <array c:type="BDPartSpec**">
          <type name="PartSpec" c:type="BDPartSpec*"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="disk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="228">disk to get free regions for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_get_disk_parts"
              c:identifier="bd_part_get_disk_parts"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="223"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="219">specs of the partitions from @disk or %NULL in case of error

Tech category: %BD_PART_TECH_MODE_QUERY_TABLE + the tech according to the partition table type</doc>
        <array c:type="BDPartSpec**">
          <type name="PartSpec" c:type="BDPartSpec*"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="disk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="216">disk to get information about partitions for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_get_disk_spec"
              c:identifier="bd_part_get_disk_spec"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="211"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="207">information about the given @disk or %NULL (in case of error)

Tech category: %BD_PART_TECH_MODE_QUERY_TABLE + the tech according to the partition table type</doc>
        <type name="PartDiskSpec" c:type="BDPartDiskSpec*"/>
      </return-value>
      <parameters>
        <parameter name="disk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="204">disk to get information about</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_get_flag_str"
              c:identifier="bd_part_get_flag_str"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="435"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="431">string representation of @flag

Tech category: always available</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="flag" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="428">flag to get string representation for</doc>
          <type name="PartFlag" c:type="BDPartFlag"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_get_part_by_pos"
              c:identifier="bd_part_get_part_by_pos"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="199"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="194">spec of the partition from @disk spanning over the @position or %NULL if no such
         partition exists or in case of error (@error is set)

Tech category: %BD_PART_TECH_MODE_QUERY_PART + the tech according to the partition table type</doc>
        <type name="PartSpec" c:type="BDPartSpec*"/>
      </return-value>
      <parameters>
        <parameter name="disk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="190">disk to remove the partition from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="position" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="191">position (in bytes) determining the partition</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_get_part_id"
              c:identifier="bd_part_get_part_id"
              throws="1">
      <doc xml:space="preserve"
           filename="lib/plugin_apis/part.h"
           line="401">Returns (transfer full): partition id type or %NULL in case of error

Tech category: %BD_PART_TECH_MODE_QUERY_PART + the tech according to the partition table type</doc>
      <source-position filename="lib/plugin_apis/part.h" line="411"/>
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="disk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="403">device the partition belongs to</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="part" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="404">partition the should be set for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_get_part_spec"
              c:identifier="bd_part_get_part_spec"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="185"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="181">spec of the @part partition from @disk or %NULL in case of error

Tech category: %BD_PART_TECH_MODE_QUERY_PART + the tech according to the partition table type</doc>
        <type name="PartSpec" c:type="BDPartSpec*"/>
      </return-value>
      <parameters>
        <parameter name="disk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="177">disk to remove the partition from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="part" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="178">partition to get spec for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_get_part_table_type_str"
              c:identifier="bd_part_get_part_table_type_str"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="423"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="419">string representation of @table_type

Tech category: the tech according to @type</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="416">table type to get string representation for</doc>
          <type name="PartTableType" c:type="BDPartTableType"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_get_type_str"
              c:identifier="bd_part_get_type_str"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="447"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="443">string representation of @type

Tech category: always available</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="440">type to get string representation for</doc>
          <type name="PartType" c:type="BDPartType"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_is_tech_avail"
              c:identifier="bd_part_is_tech_avail"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="157"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="154">whether the @tech-@mode combination is available -- supported by the
         plugin implementation and having all the runtime dependencies available</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tech" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="150">the queried tech</doc>
          <type name="PartTech" c:type="BDPartTech"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="151">a bit mask of queried modes of operation (#BDPartTechMode) for @tech</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_resize_part"
              c:identifier="bd_part_resize_part"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="307"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="301">whether the @part partition was successfully resized on @disk to @size

NOTE: The resulting partition may be slightly bigger than requested due to alignment.

Tech category: %BD_PART_TECH_MODE_MODIFY_TABLE + the tech according to the partition table type</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="disk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="295">disk containing the paritition</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="part" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="296">partition to resize</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="297">new partition size, 0 for maximal size</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="align" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="298">alignment to use for the partition end</doc>
          <type name="PartAlign" c:type="BDPartAlign"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_set_disk_flag"
              c:identifier="bd_part_set_disk_flag"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="337"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="333">whether the flag @flag was successfully set on the @disk or not

Tech category: %BD_PART_TECH_MODE_MODIFY_TABLE + the tech according to the partition table type</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="disk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="328">disk the partition belongs to</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="flag" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="329">flag to set</doc>
          <type name="PartDiskFlag" c:type="BDPartDiskFlag"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="330">state to set for the @flag (%TRUE = enabled)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_set_part_flag"
              c:identifier="bd_part_set_part_flag"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="323"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="318">whether the flag @flag was successfully set on the @part partition
or not.

Tech category: %BD_PART_TECH_MODE_MODIFY_PART + the tech according to the partition table type</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="disk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="312">disk the partition belongs to</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="part" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="313">partition to set the flag on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="flag" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="314">flag to set</doc>
          <type name="PartFlag" c:type="BDPartFlag"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="315">state to set for the @flag (%TRUE = enabled)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_set_part_flags"
              c:identifier="bd_part_set_part_flags"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="356"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="347">whether the @flags were successfully set on the @part partition or
         not

Note: Unsets all the other flags on the partition.
      Only GPT-specific flags and the legacy boot flag are supported on GPT
      partition tables.

Tech category: %BD_PART_TECH_MODE_MODIFY_PART + the tech according to the partition table type</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="disk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="342">disk the partition belongs to</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="part" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="343">partition to set the flag on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="344">flags to set (mask combined from #BDPartFlag numbers)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_set_part_id"
              c:identifier="bd_part_set_part_id"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="398"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="394">whether the @part_id type was successfully set for @part or not

Tech category: %BD_PART_TECH_MODE_MODIFY_PART + the tech according to the partition table type</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="disk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="389">device the partition belongs to</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="part" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="390">partition the should be set for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="part_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="391">partition Id</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_set_part_name"
              c:identifier="bd_part_set_part_name"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="370"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="366">whether the name was successfully set or not

Tech category: %BD_PART_TECH_GPT-%BD_PART_TECH_MODE_MODIFY_PART</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="disk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="361">device the partition belongs to</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="part" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="362">partition the should be set for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="363">name to set</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="part_set_part_type"
              c:identifier="bd_part_set_part_type"
              throws="1">
      <source-position filename="lib/plugin_apis/part.h" line="384"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/part.h"
             line="380">whether the @type_guid type was successfully set for @part or not

Tech category: %BD_PART_TECH_GPT-%BD_PART_TECH_MODE_MODIFY_PART</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="disk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="375">device the partition belongs to</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="part" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="376">partition the should be set for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="type_guid" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/part.h"
               line="377">GUID of the type</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="reinit" c:identifier="bd_reinit" throws="1">
      <source-position filename="lib/blockdev.h" line="22"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/blockdev.c"
             line="594">whether the library was successfully initialized or not

If @reload is %TRUE all the plugins are closed and reloaded otherwise only
the missing plugins are loaded.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="require_plugins"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="585">%NULL-terminated list
                of plugins that should be loaded (if no so_name is specified
                for the plugin, the default is used) or %NULL to load all
                plugins</doc>
          <array c:type="BDPluginSpec**">
            <type name="PluginSpec" c:type="BDPluginSpec*"/>
          </array>
        </parameter>
        <parameter name="reload" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="589">whether to reload the already loaded plugins or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="log_func"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="notified">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="590">logging function to use or %NULL
                                          to keep the old one</doc>
          <type name="UtilsLogFunc" c:type="BDUtilsLogFunc"/>
        </parameter>
      </parameters>
    </function>
    <function name="swap_error_quark" c:identifier="bd_swap_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="swap_is_tech_avail"
              c:identifier="bd_swap_is_tech_avail"
              throws="1">
      <source-position filename="lib/plugin_apis/swap.h" line="39"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/swap.h"
             line="36">whether the @tech-@mode combination is available -- supported by the
         plugin implementation and having all the runtime dependencies available</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tech" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/swap.h"
               line="32">the queried tech</doc>
          <type name="SwapTech" c:type="BDSwapTech"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/swap.h"
               line="33">a bit mask of queried modes of operation (#BDSwapTechMode) for @tech</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="swap_mkswap" c:identifier="bd_swap_mkswap" throws="1">
      <source-position filename="lib/plugin_apis/swap.h" line="54"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/swap.h"
             line="50">whether the swap space was successfully created or not

Tech category: %BD_SWAP_TECH_SWAP-%BD_SWAP_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/swap.h"
               line="44">a device to create swap space on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="label"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/swap.h"
               line="45">a label for the swap space device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/swap.h"
               line="46">extra options for the creation (right now
                                                passed to the 'mkswap' utility)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="swap_set_label"
              c:identifier="bd_swap_set_label"
              throws="1">
      <source-position filename="lib/plugin_apis/swap.h" line="105"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/swap.h"
             line="101">whether the label was successfully set or not

Tech category: %BD_SWAP_TECH_SWAP-%BD_SWAP_TECH_MODE_SET_LABEL</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/swap.h"
               line="97">a device to set label on</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="label" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/swap.h"
               line="98">label that will be set</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="swap_swapoff" c:identifier="bd_swap_swapoff" throws="1">
      <source-position filename="lib/plugin_apis/swap.h" line="79"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/swap.h"
             line="75">whether the swap device was successfully deactivated or not

Tech category: %BD_SWAP_TECH_SWAP-%BD_SWAP_TECH_MODE_ACTIVATE_DEACTIVATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/swap.h"
               line="72">swap device to deactivate</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="swap_swapon" c:identifier="bd_swap_swapon" throws="1">
      <source-position filename="lib/plugin_apis/swap.h" line="67"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/swap.h"
             line="63">whether the swap device was successfully activated or not

Tech category: %BD_SWAP_TECH_SWAP-%BD_SWAP_TECH_MODE_ACTIVATE_DEACTIVATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/swap.h"
               line="59">swap device to activate</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="priority" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/swap.h"
               line="60">priority of the activated device or -1 to use the default</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="swap_swapstatus"
              c:identifier="bd_swap_swapstatus"
              throws="1">
      <source-position filename="lib/plugin_apis/swap.h" line="92"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/swap.h"
             line="87">%TRUE if the swap device is active, %FALSE if not active or failed
to determine (@error) is set not a non-NULL value in such case)

Tech category: %BD_SWAP_TECH_SWAP-%BD_SWAP_TECH_MODE_QUERY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/swap.h"
               line="84">swap device to get status of</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="switch_init_checks"
              c:identifier="bd_switch_init_checks"
              throws="1">
      <doc xml:space="preserve"
           filename="lib/blockdev.c"
           line="768">Enables or disables plugins' init checks based on @enable.

Note: The current implementation (un)sets the LIBBLOCKDEV_SKIP_DEP_CHECKS
      environment variable.</doc>
      <source-position filename="lib/blockdev.h" line="28"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="enable" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="770">whether to enable init checks (%TRUE) or not (%FALSE)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="try_init" c:identifier="bd_try_init" throws="1">
      <source-position filename="lib/blockdev.h" line="23"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/blockdev.c"
             line="538">whether the library was successfully initialized with all the
         required or default (see @require_plugins) plugins or not

*UNLIKE IN CASE OF bd_init() AND bd_ensure_init(), FAILURE TO LOAD A PLUGIN
 IS NOT CONSIDERED ERROR*</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="request_plugins"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="529">%NULL-terminated list
                  of plugins that should be loaded (if no so_name is specified
                  for the plugin, the default is used) or %NULL to load all
                  plugins</doc>
          <array c:type="BDPluginSpec**">
            <type name="PluginSpec" c:type="BDPluginSpec*"/>
          </array>
        </parameter>
        <parameter name="log_func"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="notified">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="533">logging function to use</doc>
          <type name="UtilsLogFunc" c:type="BDUtilsLogFunc"/>
        </parameter>
        <parameter name="loaded_plugin_names"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="container"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="534">names
                      of the successfully loaded plugins</doc>
          <array c:type="gchar***">
            <type name="utf8" c:type="gchar**"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="try_reinit" c:identifier="bd_try_reinit" throws="1">
      <source-position filename="lib/blockdev.h" line="25"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/blockdev.c"
             line="646">whether the library was successfully initialized or not

If @reload is %TRUE all the plugins are closed and reloaded otherwise only
the missing plugins are loaded.

*UNLIKE IN CASE OF bd_init() AND bd_ensure_init(), FAILURE TO LOAD A PLUGIN
 IS NOT CONSIDERED ERROR*</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="require_plugins"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="635">%NULL-terminated list
                of plugins that should be loaded (if no so_name is specified
                for the plugin, the default is used) or %NULL to load all
                plugins</doc>
          <array c:type="BDPluginSpec**">
            <type name="PluginSpec" c:type="BDPluginSpec*"/>
          </array>
        </parameter>
        <parameter name="reload" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="639">whether to reload the already loaded plugins or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="log_func"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="notified">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="640">logging function to use or %NULL
                                          to keep the old one</doc>
          <type name="UtilsLogFunc" c:type="BDUtilsLogFunc"/>
        </parameter>
        <parameter name="loaded_plugin_names"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="container"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/blockdev.c"
               line="642">names of the successfully
                                                               loaded plugins</doc>
          <array c:type="gchar***">
            <type name="utf8" c:type="gchar**"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="utils_check_linux_version"
              c:identifier="bd_utils_check_linux_version">
      <doc xml:space="preserve"
           filename="utils/module.c"
           line="277">Checks whether the currently running linux kernel version is equal or higher
than the specified required @major.@minor.@micro version.</doc>
      <source-position filename="utils/module.h" line="27"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/module.c"
             line="286">an integer less than, equal to, or greater than zero, if detected version is &lt;, == or &gt; than the specified @major.@minor.@micro version.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="major" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/module.c"
               line="279">Minimal major linux kernel version.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="minor" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/module.c"
               line="280">Minimal minor linux kernel version.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="micro" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/module.c"
               line="281">Minimal micro linux kernel version.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_check_util_version"
              c:identifier="bd_utils_check_util_version"
              throws="1">
      <source-position filename="utils/exec.h" line="82"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/exec.c"
             line="702">whether the @util is available in a version &gt;= @version or not
         (@error is set in such case).</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="util" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="693">name of the utility to check</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="version"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="694">minimum required version of the utility or %NULL
          if no version is required</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="version_arg"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="696">argument to use with the @util to get version
              info or %NULL to use "--version"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="version_regexp"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="698">regexp to extract version from the version
                 info or %NULL if only version is printed by "$ @util @version_arg"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_dbus_error_quark"
              c:identifier="bd_utils_dbus_error_quark"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="utils_dbus_service_available"
              c:identifier="bd_utils_dbus_service_available"
              throws="1">
      <source-position filename="utils/dbus.h" line="14"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/dbus.c"
             line="47">whether the service was found in the system</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="connection"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="utils/dbus.c"
               line="41">existing GDBusConnection or %NULL</doc>
          <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
        </parameter>
        <parameter name="bus_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/dbus.c"
               line="42">bus type (system or session), ignored if @connection is specified</doc>
          <type name="Gio.BusType" c:type="GBusType"/>
        </parameter>
        <parameter name="bus_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/dbus.c"
               line="43">name of the service to check (e.g. "com.redhat.lvmdbus1")</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="obj_prefix" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/dbus.c"
               line="44">object path prefix for the service (e.g. "/com/redhat/lvmdbus1")</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_dev_utils_error_quark"
              c:identifier="bd_utils_dev_utils_error_quark"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="utils_echo_str_to_file"
              c:identifier="bd_utils_echo_str_to_file"
              throws="1">
      <source-position filename="utils/exec.h" line="94"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/exec.c"
             line="914">whether the @str was successfully written to @file_path
or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="910">string to write to @file_path</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="file_path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="911">path to file</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_exec_and_capture_output"
              c:identifier="bd_utils_exec_and_capture_output"
              throws="1">
      <doc xml:space="preserve"
           filename="utils/exec.c"
           line="559">Note that any NULL bytes read from standard output and standard error
output will be discarded.</doc>
      <source-position filename="utils/exec.h" line="78"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/exec.c"
             line="569">whether the @argv was successfully executed capturing the output or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="argv" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="561">the argv array for the call</doc>
          <array c:type="const gchar**">
            <type name="utf8" c:type="gchar*"/>
          </array>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="562">extra arguments</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
        <parameter name="output"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="563">variable to store output to</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_exec_and_report_error"
              c:identifier="bd_utils_exec_and_report_error"
              throws="1">
      <source-position filename="utils/exec.h" line="75"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/exec.c"
             line="151">whether the @argv was successfully executed (no error and exit code 0) or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="argv" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="147">the argv array for the call</doc>
          <array c:type="const gchar**">
            <type name="utf8" c:type="gchar*"/>
          </array>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="148">extra arguments</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="utils_exec_and_report_error_no_progress"
              c:identifier="bd_utils_exec_and_report_error_no_progress"
              throws="1">
      <source-position filename="utils/exec.h" line="76"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/exec.c"
             line="166">whether the @argv was successfully executed (no error and exit code 0) or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="argv" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="162">the argv array for the call</doc>
          <array c:type="const gchar**">
            <type name="utf8" c:type="gchar*"/>
          </array>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="163">extra arguments</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="utils_exec_and_report_progress"
              c:identifier="bd_utils_exec_and_report_progress"
              throws="1">
      <doc xml:space="preserve"
           filename="utils/exec.c"
           line="541">Note that any NULL bytes read from standard output and standard error
output are treated as separators similar to newlines and @prog_extract
will be called with the respective chunk.</doc>
      <source-position filename="utils/exec.h" line="79"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/exec.c"
             line="553">whether the @argv was successfully executed (no error and exit code 0) or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="argv" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="543">the argv array for the call</doc>
          <array c:type="const gchar**">
            <type name="utf8" c:type="gchar*"/>
          </array>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="544">extra arguments</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
        <parameter name="prog_extract"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="notified">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="545">function for extracting progress information</doc>
          <type name="UtilsProgExtract" c:type="BDUtilsProgExtract"/>
        </parameter>
        <parameter name="proc_status"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="546">place to store the process exit status</doc>
          <type name="gint" c:type="gint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_exec_and_report_status_error"
              c:identifier="bd_utils_exec_and_report_status_error"
              throws="1">
      <source-position filename="utils/exec.h" line="77"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/exec.c"
             line="181">whether the @argv was successfully executed (no error and exit code 0) or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="argv" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="176">the argv array for the call</doc>
          <array c:type="const gchar**">
            <type name="utf8" c:type="gchar*"/>
          </array>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="177">extra arguments</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
        <parameter name="status"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="178">place to store the status</doc>
          <type name="gint" c:type="gint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_exec_error_quark"
              c:identifier="bd_utils_exec_error_quark"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="utils_get_device_symlinks"
              c:identifier="bd_utils_get_device_symlinks"
              throws="1">
      <source-position filename="utils/dev_utils.h" line="33"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="utils/dev_utils.c"
             line="82">a list of all symlinks (known to udev) for the
                                                    device specified with @dev_spec or %NULL in
                                                    case of error</doc>
        <array c:type="gchar**">
          <type name="utf8"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="dev_spec" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/dev_utils.c"
               line="78">specification of the device (e.g. "/dev/sda", any symlink, or the name of a file
           under "/dev")</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_get_linux_version"
              c:identifier="bd_utils_get_linux_version"
              throws="1">
      <doc xml:space="preserve"
           filename="utils/module.c"
           line="228">Retrieves version of currently running Linux kernel. Acts also as an initializer for statically cached data.</doc>
      <source-position filename="utils/module.h" line="26"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/module.c"
             line="234">Detected Linux kernel version or %NULL in case of an error. The returned value belongs to the library, do not free.</doc>
        <type name="UtilsLinuxVersion" c:type="BDUtilsLinuxVersion*"/>
      </return-value>
    </function>
    <function name="utils_have_kernel_module"
              c:identifier="bd_utils_have_kernel_module"
              throws="1">
      <source-position filename="utils/module.h" line="22"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/module.c"
             line="44">whether the @module_name was found in the system, either as a module
or built-in in the kernel</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="module_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/module.c"
               line="41">name of the kernel module to check</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_init_logging"
              c:identifier="bd_utils_init_logging"
              throws="1">
      <source-position filename="utils/exec.h" line="80"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/exec.c"
             line="607">whether logging was successfully initialized or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="new_log_func"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="notified">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="603">logging function to use or
                                              %NULL to reset to default</doc>
          <type name="UtilsLogFunc" c:type="BDUtilsLogFunc"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_init_prog_reporting"
              c:identifier="bd_utils_init_prog_reporting"
              throws="1">
      <source-position filename="utils/exec.h" line="84"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/exec.c"
             line="794">whether progress reporting was successfully initialized or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="new_prog_func"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="notified">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="790">progress reporting function to
                                               use or %NULL to reset to default</doc>
          <type name="UtilsProgFunc" c:type="BDUtilsProgFunc"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_init_prog_reporting_thread"
              c:identifier="bd_utils_init_prog_reporting_thread"
              throws="1">
      <source-position filename="utils/exec.h" line="85"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/exec.c"
             line="812">whether progress reporting was successfully initialized or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="new_prog_func"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="notified">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="807">progress reporting function to
                                               use on current thread or %NULL
                                               to reset to default or global</doc>
          <type name="UtilsProgFunc" c:type="BDUtilsProgFunc"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_load_kernel_module"
              c:identifier="bd_utils_load_kernel_module"
              throws="1">
      <source-position filename="utils/module.h" line="23"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/module.c"
             line="94">whether the @module_name was successfully loaded or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="module_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/module.c"
               line="90">name of the kernel module to load</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="options"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="utils/module.c"
               line="91">module options</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_log" c:identifier="bd_utils_log">
      <source-position filename="utils/exec.h" line="92"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="level" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="937">log level</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="msg" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="938">log message</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_module_error_quark"
              c:identifier="bd_utils_module_error_quark"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="utils_mute_prog_reporting_thread"
              c:identifier="bd_utils_mute_prog_reporting_thread"
              throws="1">
      <source-position filename="utils/exec.h" line="86"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/exec.c"
             line="835">whether progress reporting for the current thread was successfully
muted (deinitialized even in presence of a global reporting function) or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="utils_prog_reporting_initialized"
              c:identifier="bd_utils_prog_reporting_initialized">
      <source-position filename="utils/exec.h" line="87"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/exec.c"
             line="850">TRUE if progress reporting has been initialized, i.e. a reporting
function was set up with either bd_utils_init_prog_reporting or
bd_utils_init_prog_reporting_thread (takes precedence). FALSE if
bd_utils_mute_prog_reporting_thread was used to mute the thread.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="utils_report_finished"
              c:identifier="bd_utils_report_finished">
      <source-position filename="utils/exec.h" line="90"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="task_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="897">ID of the task/action</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="msg" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="898">message describing the status of the task/action</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_report_progress"
              c:identifier="bd_utils_report_progress">
      <source-position filename="utils/exec.h" line="89"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="task_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="883">ID of the task/action</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="completion" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="884">percentage of completion</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="msg" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="885">message describing the status of the task/action</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_report_started"
              c:identifier="bd_utils_report_started">
      <source-position filename="utils/exec.h" line="88"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/exec.c"
             line="863">ID of the started task/action</doc>
        <type name="guint64" c:type="guint64"/>
      </return-value>
      <parameters>
        <parameter name="msg" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="861">message describing the started task/action</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_resolve_device"
              c:identifier="bd_utils_resolve_device"
              throws="1">
      <source-position filename="utils/dev_utils.h" line="32"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="utils/dev_utils.c"
             line="39">the full real path of the device (e.g. "/dev/md126"
                          for "/dev/md/my_raid") or %NULL in case of error</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="dev_spec" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/dev_utils.c"
               line="35">specification of the device (e.g. "/dev/sda", any symlink, or the name of a file
           under "/dev")</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_unload_kernel_module"
              c:identifier="bd_utils_unload_kernel_module"
              throws="1">
      <source-position filename="utils/module.h" line="24"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/module.c"
             line="156">whether the @module_name was successfully unloaded or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="module_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/module.c"
               line="153">name of the kernel module to unload</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_version_cmp"
              c:identifier="bd_utils_version_cmp"
              throws="1">
      <source-position filename="utils/exec.h" line="81"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="utils/exec.c"
             line="624">-1, 0 or 1 if @ver_string1 is lower, the same or higher version as
         @ver_string2 respectively. If an error occurs, returns -2 and @error
         is set.

**ONLY SUPPORTS VERSION STRINGS OF FORMAT X[.Y[.Z[.Z2[.Z3...[-R]]]]] where all components
  are natural numbers!**</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="ver_string1" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="620">first version string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="ver_string2" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="utils/exec.c"
               line="621">second version string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_activate"
              c:identifier="bd_vdo_activate"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="334"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="328">whether the VDO volume was successfully activated or not

Tech category: %BD_VDO_TECH_VDO-%BD_VDO_TECH_MODE_ACTIVATE_DEACTIVATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="323">name of an existing VDO volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="324">extra options for the VDO creation
                                                (just passed to VDO as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_change_write_policy"
              c:identifier="bd_vdo_change_write_policy"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="254"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="248">whether the policy was successfully changed or not

Tech category: %BD_VDO_TECH_VDO-%BD_VDO_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="242">name of an existing VDO volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="write_policy" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="243">new write policy for the volume</doc>
          <type name="VDOWritePolicy" c:type="BDVDOWritePolicy"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="244">extra options for the VDO creation
                                                (just passed to VDO as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_create"
              c:identifier="bd_vdo_create"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="220"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="214">whether the VDO volume was successfully created or not

Tech category: %BD_VDO_TECH_VDO-%BD_VDO_TECH_MODE_CREATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="200">name for the VDO volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="backing_device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="201">device to use for VDO storage</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="logical_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="202">logical VDO volume size or 0 for default (size of @backing_device)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="index_memory" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="203">amount of index memory or 0 for default; note that only some
               sizes are valid here (0.25, 0.5 and 0.75 GB and integer multiples of 1 GB)
               invalid sizes will be rounded DOWN to nearest GB (or one of the allowed
               decimal values)</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="compression" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="207">whether to enable compression or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="deduplication" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="208">whether to enable deduplication or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="write_policy" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="209">write policy for the volume</doc>
          <type name="VDOWritePolicy" c:type="BDVDOWritePolicy"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="210">extra options for the VDO creation
                                                (just passed to VDO as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_deactivate"
              c:identifier="bd_vdo_deactivate"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="350"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="344">whether the VDO volume was successfully deactivated or not

Tech category: %BD_VDO_TECH_VDO-%BD_VDO_TECH_MODE_ACTIVATE_DEACTIVATE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="339">name of an existing VDO volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="340">extra options for the VDO creation
                                                (just passed to VDO as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_disable_compression"
              c:identifier="bd_vdo_disable_compression"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="286"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="280">whether the compression was successfully disabled or not

Tech category: %BD_VDO_TECH_VDO-%BD_VDO_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="275">name of an existing VDO volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="276">extra options for the VDO creation
                                                (just passed to VDO as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_disable_deduplication"
              c:identifier="bd_vdo_disable_deduplication"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="318"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="312">whether the deduplication was successfully disabled or not

Tech category: %BD_VDO_TECH_VDO-%BD_VDO_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="307">name of an existing VDO volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="308">extra options for the VDO creation
                                                (just passed to VDO as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_enable_compression"
              c:identifier="bd_vdo_enable_compression"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="270"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="264">whether the compression was successfully enabled or not

Tech category: %BD_VDO_TECH_VDO-%BD_VDO_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="259">name of an existing VDO volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="260">extra options for the VDO creation
                                                (just passed to VDO as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_enable_deduplication"
              c:identifier="bd_vdo_enable_deduplication"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="302"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="296">whether the deduplication was successfully enabled or not

Tech category: %BD_VDO_TECH_VDO-%BD_VDO_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="291">name of an existing VDO volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="292">extra options for the VDO creation
                                                (just passed to VDO as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_error_quark" c:identifier="bd_vdo_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="vdo_get_stats"
              c:identifier="bd_vdo_get_stats"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="444"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="425">a structure containing selected statistics or %NULL in case of error (@error gets populated in those cases)

In contrast to @bd_vdo_get_stats_full this function will only return selected statistics in a fixed structure. In case a value is not available, -1 would be returned.

The following statistics are presented:
  - `"block_size"`: The block size of a VDO volume, in bytes.
  - `"logical_block_size"`: The logical block size, in bytes.
  - `"physical_blocks"`: The total number of physical blocks allocated for a VDO volume.
  - `"data_blocks_used"`: The number of physical blocks currently in use by a VDO volume to store data.
  - `"overhead_blocks_used"`: The number of physical blocks currently in use by a VDO volume to store VDO metadata.
  - `"logical_blocks_used"`: The number of logical blocks currently mapped.
  - `"usedPercent"`: The percentage of physical blocks used on a VDO volume (= used blocks / allocated blocks * 100).
  - `"savingPercent"`: The percentage of physical blocks saved on a VDO volume (= [logical blocks used - physical blocks used] / logical blocks used).
  - `"writeAmplificationRatio"`: The average number of block writes to the underlying storage per block written to the VDO device.

Tech category: %BD_VDO_TECH_VDO-%BD_VDO_TECH_MODE_QUERY</doc>
        <type name="VDOStats" c:type="BDVDOStats*"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="422">name of an existing VDO volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_get_stats_full"
              c:identifier="bd_vdo_get_stats_full"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="461"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="452">hashtable of type string - string of available statistics or %NULL in case of error (@error gets populated in those cases)

Statistics are collected from the values exposed by the kernel `kvdo` module at the `/sys/kvdo/&lt;VDO_NAME&gt;/statistics/` path. Some of the keys are computed to mimic the information produced by the vdo tools.
Please note the contents of the hashtable may vary depending on the actual kvdo module version.

Tech category: %BD_VDO_TECH_VDO-%BD_VDO_TECH_MODE_QUERY</doc>
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="utf8"/>
          <type name="utf8"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="449">name of an existing VDO volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_get_write_policy_from_str"
              c:identifier="bd_vdo_get_write_policy_from_str"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="180"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="173">write policy for the @mode_str or %BD_VDO_WRITE_POLICY_UNKNOWN if
         failed to determine

Tech category: always provided/supported</doc>
        <type name="VDOWritePolicy" c:type="BDVDOWritePolicy"/>
      </return-value>
      <parameters>
        <parameter name="policy_str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="170">string representation of a write policy mode</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_get_write_policy_str"
              c:identifier="bd_vdo_get_write_policy_str"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="165"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="159">string representation of @policy or %NULL in case of error

Tech category: always provided/supported</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="policy" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="156">policy to get the string representation for</doc>
          <type name="VDOWritePolicy" c:type="BDVDOWritePolicy"/>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_grow_logical"
              c:identifier="bd_vdo_grow_logical"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="401"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="395">whether the VDO volume was successfully resized or not

Tech category: %BD_VDO_TECH_VDO-%BD_VDO_TECH_MODE_GROW</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="389">name of an existing VDO volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="390">new logical size for the volume</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="391">extra options for the VDO creation
                                                (just passed to VDO as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_grow_physical"
              c:identifier="bd_vdo_grow_physical"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="417"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="411">whether the VDO volume was successfully grown or not

Tech category: %BD_VDO_TECH_VDO-%BD_VDO_TECH_MODE_GROW</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="406">name of an existing VDO volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="407">extra options for the VDO tool
                                                (just passed to VDO as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_info"
              c:identifier="bd_vdo_info"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="195"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="188">information about the VDO volume or %NULL
in case of error (@error gets populated in those cases)

Tech category: %BD_VDO_TECH_VDO-%BD_VDO_TECH_MODE_QUERY</doc>
        <type name="VDOInfo" c:type="BDVDOInfo*"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="185">a VDO volume to get information about</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_is_tech_avail"
              c:identifier="bd_vdo_is_tech_avail"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="151"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="146">whether the @tech-@mode combination is available -- supported by the
         plugin implementation and having all the runtime dependencies available</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tech" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="142">the queried tech</doc>
          <type name="VDOTech" c:type="BDVDOTech"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="143">a bit mask of queried modes of operation (#BDVDOTechMode) for @tech</doc>
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_remove"
              c:identifier="bd_vdo_remove"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="237"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="231">whether the VDO volume was successfully removed or not

Tech category: %BD_VDO_TECH_VDO-%BD_VDO_TECH_MODE_MODIFY</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="225">name of an existing VDO volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="force" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="226">force remove the volume</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="227">extra options for the VDO creation
                                                (just passed to VDO as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_start"
              c:identifier="bd_vdo_start"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="367"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="361">whether the VDO volume was successfully started or not

Tech category: %BD_VDO_TECH_VDO-%BD_VDO_TECH_MODE_START_STOP</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="355">name of an existing VDO volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="rebuild" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="356">force rebuild the volume</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="357">extra options for the VDO creation
                                                (just passed to VDO as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="vdo_stop"
              c:identifier="bd_vdo_stop"
              deprecated="1"
              deprecated-version="2.24"
              throws="1">
      <doc-deprecated xml:space="preserve">Use LVM-VDO integration instead.</doc-deprecated>
      <source-position filename="lib/plugin_apis/vdo.h" line="384"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="lib/plugin_apis/vdo.h"
             line="378">whether the VDO volume was successfully stopped or not

Tech category: %BD_VDO_TECH_VDO-%BD_VDO_TECH_MODE_START_STOP</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="372">name of an existing VDO volume</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="force" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="373">force stop the volume</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="extra"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="lib/plugin_apis/vdo.h"
               line="374">extra options for the VDO creation
                                                (just passed to VDO as is)</doc>
          <array c:type="const BDExtraArg**">
            <type name="ExtraArg" c:type="BDExtraArg*"/>
          </array>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
