## Plugins

Plugins — functions related to querying plugins

## Functions

BDPluginSpec * | bd_plugin_spec_copy ()
void | bd_plugin_spec_free ()
BDPluginSpec * | bd_plugin_spec_new ()
gboolean | bd_is_plugin_available ()
gchar ** | bd_get_available_plugin_names ()
gchar * | bd_get_plugin_soname ()
gchar * | bd_get_plugin_name ()

## Types and Values

enum | BDPlugin

## Includes

    #include <blockdev.h>

## Description

## Functions

### bd_plugin_spec_copy ()

    BDPluginSpec *
    bd_plugin_spec_copy (BDPluginSpec *spec);

Creates a new copy of `spec` .

[skip]

#### Parameters

spec | `BDPluginSpec` to copy. | [nullable]

### bd_plugin_spec_free ()

    void
    bd_plugin_spec_free (BDPluginSpec *spec);

Frees `spec` .

[skip]

#### Parameters

spec | `BDPluginSpec` to free. | [nullable]

### bd_plugin_spec_new ()

    BDPluginSpec *
    bd_plugin_spec_new (BDPlugin name,
                        const gchar *so_name);

[constructor]

#### Parameters

name | `BDPlugin` name, e.g. `BD_PLUGIN_LVM` |
so_name | SO name of the plugin to load or `NULL` for default. | [nullable]

#### Returns

a new plugin spec.

[transfer full]

### bd_is_plugin_available ()

    gboolean
    bd_is_plugin_available (BDPlugin plugin);

#### Parameters

plugin | the queried plugin |

#### Returns

whether the given plugin is available or not

### bd_get_available_plugin_names ()

    gchar **
    bd_get_available_plugin_names (void);

#### Returns

an array of string names of plugins that are available.

[transfer container][array zero-terminated=1]

### bd_get_plugin_soname ()

    gchar *
    bd_get_plugin_soname (BDPlugin plugin);

#### Parameters

plugin | the queried plugin |

#### Returns

name of the shared object loaded for the plugin or `NULL` if none is loaded.

[transfer full]

### bd_get_plugin_name ()

    gchar *
    bd_get_plugin_name (BDPlugin plugin);

#### Parameters

plugin | the queried plugin |

#### Returns

name of the plugin.

[transfer none]

## Types and Values

### enum BDPlugin

#### Members

BD_PLUGIN_LVM |  |
BD_PLUGIN_BTRFS |  |
BD_PLUGIN_SWAP |  |
BD_PLUGIN_LOOP |  |
BD_PLUGIN_CRYPTO |  |
BD_PLUGIN_MPATH |  |
BD_PLUGIN_DM |  |
BD_PLUGIN_MDRAID |  |
BD_PLUGIN_S390 |  |
BD_PLUGIN_PART |  |
BD_PLUGIN_FS |  |
BD_PLUGIN_NVDIMM |  |
BD_PLUGIN_NVME |  |
BD_PLUGIN_SMART |  |
BD_PLUGIN_UNDEF |  |