### Class

# FwupdPlugin Plugin

#### Description [src]

    class FwupdPlugin.Plugin : Fwupd.Plugin
      implements Fwupd.Codec {
      /* No available fields */
    }

A plugin which is used by fwupd to enumerate and update devices.

See also: `FuDevice`, `FwupdPlugin`.

#### Hierarchy

#### Ancestors

- FwupdPlugin
- GObject

#### Implements

- FwupdCodec

#### Constructors

###### fu_plugin_new

Creates a new `FuPlugin`.

since: 0.8.0

###### fu_plugin_new_from_gtype

Creates a new `FuPlugin`.

since: 1.8.6

#### Functions

###### fu_plugin_guess_name_from_fn

Tries to guess the name of the plugin from a filename.

since: 1.0.8

#### Instance methods

###### fu_plugin_add_device

Asks the daemon to add a device to the exported list. If this device ID has already been added by a different plugin then this request will be ignored.

since: 2.1.1

###### fu_plugin_add_device_gtype

Adds the device `GType` which is used when creating devices.

since: 1.6.0

###### fu_plugin_add_device_udev_subsystem

Add this plugin as a possible handler of devices with this udev subsystem. Use `fu_plugin_add_udev_subsystem()` if you just want to ensure the subsystem is watched.

since: 1.9.3

###### fu_plugin_add_firmware_gtype

Adds a firmware `GType` which is used when creating devices.

since: 2.1.1

###### fu_plugin_add_private_flag

Adds a private flag that can be used by the plugin for any purpose.

since: 2.1.5

###### fu_plugin_add_report_metadata

Sets any additional metadata to be included in the firmware report to aid debugging problems.

since: 1.0.4

###### fu_plugin_add_rule

If the plugin name is found, the rule will be used to sort the plugin list, for example the plugin specified by `name` will be ordered after this plugin when `FU_PLUGIN_RULE_RUN_AFTER` is used.

since: 1.0.0

###### fu_plugin_add_string

Add daemon-specific device metadata to an existing string.

since: 1.8.4

###### fu_plugin_add_udev_subsystem

Registers the udev subsystem to be watched by the daemon.

since: 1.6.2

###### fu_plugin_alloc_data

Allocates the per-plugin allocated private data.

since: 0.8.0

###### fu_plugin_cache_add

Adds an object to the per-plugin cache.

since: 0.8.0

###### fu_plugin_cache_lookup

Finds an object in the per-plugin cache.

since: 0.8.0

###### fu_plugin_cache_remove

Removes an object from the per-plugin cache.

since: 0.8.0

###### fu_plugin_device_register

Registers the device with other plugins so they can set metadata.

since: 0.9.7

###### fu_plugin_get_config_value

Return the value of a key, falling back to the default value.

since: 1.0.6

###### fu_plugin_get_config_value_boolean

Return the boolean value of a key if it’s been configured.

since: 1.4.0

###### fu_plugin_get_context

Gets the context for a plugin.

since: 1.6.0

###### fu_plugin_get_data

Gets the per-plugin allocated private data. This will return `NULL` unless `fu_plugin_alloc_data()` has been called by the plugin.

since: 0.8.0

###### fu_plugin_get_device_gtype_default

Gets the default device `GType`.

since: 1.9.14

###### fu_plugin_get_device_gtypes

Gets all device `GTypes`.

since: 2.0.2

###### fu_plugin_get_devices

Returns all devices added by the plugin using `fu_plugin_add_device()` and not yet removed with `fu_plugin_remove_device()`.

since: 1.5.6

###### fu_plugin_get_name

Gets the plugin name.

since: 0.8.0

###### fu_plugin_get_order

Gets the plugin order, where higher numbers are run after lower numbers.

since: 1.0.0

###### fu_plugin_get_priority

Gets the plugin priority, where higher numbers are better.

since: 1.1.1

###### fu_plugin_get_report_metadata

Returns the list of additional metadata to be added when filing a report.

since: 1.0.4

###### fu_plugin_get_rules

Gets the plugin IDs that should be run after this plugin.

since: 1.0.0

###### fu_plugin_has_private_flag

Tests for a private flag that can be used by the plugin for any purpose.

since: 2.1.5

###### fu_plugin_is_open

Determines if the plugin is opened.

since: 1.3.5

###### fu_plugin_name_compare

Compares two plugins by their names.

since: 1.0.8

###### fu_plugin_open

Opens the plugin module, and calls `->load()` on it.

since: 0.8.0

###### fu_plugin_order_compare

Compares two plugins by their depsolved order, and then by name.

since: 1.0.8

###### fu_plugin_register_private_flag

Registers a private flag so it can be used by `fu_plugin_add_private_flag()` and fu_plugin_has_private_flag().

since: 2.1.5

###### fu_plugin_remove_device

Asks the daemon to remove a device from the exported list.

since: 2.1.1

###### fu_plugin_remove_private_flag

Removes a private flag that can be used by the plugin for any purpose.

since: 2.1.5

###### fu_plugin_reset_config_values

Reset all the plugin keys back to the default values.

since: 1.9.15

###### fu_plugin_runner_activate

Call into the plugin’s activate routine.

since: 1.2.6

###### fu_plugin_runner_add_security_attrs

Runs the `add_security_attrs()` routine for the plugin.

since: 1.5.0

###### fu_plugin_runner_attach

Runs the update_attach routine for the plugin.

since: 1.7.0

###### fu_plugin_runner_backend_device_added

Call the backend_device_added routine for the plugin.

since: 1.5.6

###### fu_plugin_runner_backend_device_changed

Call the backend_device_changed routine for the plugin.

since: 1.5.6

###### fu_plugin_runner_cleanup

Runs the update_cleanup routine for the plugin.

since: 1.7.0

###### fu_plugin_runner_clear_results

Call into the plugin’s clear results routine.

since: 0.8.0

###### fu_plugin_runner_coldplug

Runs the coldplug routine for the plugin.

since: 0.8.0

###### fu_plugin_runner_composite_cleanup

Runs the composite_cleanup routine for the plugin.

since: 1.0.9

###### fu_plugin_runner_composite_peek_firmware

Notify when the firmware has been parsed and the update is ready to be deployed.

since: 2.0.19

###### fu_plugin_runner_composite_prepare

Runs the composite_prepare routine for the plugin.

since: 1.0.9

###### fu_plugin_runner_detach

Runs the update_detach routine for the plugin.

since: 1.7.0

###### fu_plugin_runner_device_added

Call the device_added routine for the plugin.

since: 1.5.0

###### fu_plugin_runner_device_created

Call the device_created routine for the plugin.

since: 1.4.0

###### fu_plugin_runner_device_register

Call the device_registered routine for the plugin.

since: 0.9.7

###### fu_plugin_runner_device_removed

Call the device_removed routine for the plugin.

since: 1.1.2

###### fu_plugin_runner_fix_host_security_attr

Fix the specific security attribute.

since: 1.9.6

###### fu_plugin_runner_get_results

Call into the plugin’s get results routine.

since: 0.8.0

###### fu_plugin_runner_init

Runs the constructed routine for the plugin, if enabled.

since: 1.8.1

###### fu_plugin_runner_modify_config

Sets a plugin config option, which may be allow-listed or value-checked.

since: 2.0.0

###### fu_plugin_runner_prepare

Runs the update_prepare routine for the plugin.

since: 1.7.0

###### fu_plugin_runner_ready

Runs the ready routine for the plugin.

since: 1.9.6

###### fu_plugin_runner_reboot_cleanup

Performs cleanup actions after the reboot has been performed.

since: 1.9.7

###### fu_plugin_runner_reload

Runs reload routine for a device.

since: 1.7.0

###### fu_plugin_runner_startup

Runs the startup routine for the plugin.

since: 0.8.0

###### fu_plugin_runner_undo_host_security_attr

Fix the security issue of given security attribute.

since: 1.9.6

###### fu_plugin_runner_unlock

Call into the plugin’s unlock routine.

since: 0.8.0

###### fu_plugin_runner_verify

Call into the plugin’s verify routine.

since: 0.8.0

###### fu_plugin_runner_write_firmware

Call into the plugin’s write firmware routine.

since: 2.0.7

###### fu_plugin_security_attr_new

Creates a new `FwupdSecurityAttr` for this specific plugin.

since: 1.8.4

###### fu_plugin_set_config_default

Sets the config default value.

since: 2.0.0

###### fu_plugin_set_config_value

Sets a plugin config value.

since: 1.7.0

###### fu_plugin_set_context

Sets the context for this plugin.

since: 1.8.6

###### fu_plugin_set_device_gtype_default

Sets the default device `GType`.

since: 1.9.14

###### fu_plugin_set_name

Sets the plugin name.

since: 0.8.0

###### fu_plugin_set_order

Sets the plugin order, where higher numbers are run after lower numbers.

since: 1.0.0

###### fu_plugin_set_priority

Sets the plugin priority, where higher numbers are better.

since: 1.0.0

###### fu_plugin_to_string

This allows us to easily print the plugin metadata.

since: 1.8.4

##### Methods inherited from FwupdPlugin (7)

###### fwupd_plugin_add_flag

Adds a specific plugin flag to the plugin.

###### fwupd_plugin_get_flags

Gets the plugin flags.

###### fwupd_plugin_get_name

Gets the plugin name.

###### fwupd_plugin_has_flag

Finds if the plugin has a specific plugin flag.

###### fwupd_plugin_remove_flag

Removes a specific plugin flag from the plugin.

###### fwupd_plugin_set_flags

Sets the plugin flags.

###### fwupd_plugin_set_name

Sets the plugin name.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from FwupdCodec (8)

###### fwupd_codec_add_string

Converts an object that implements `FwupdCodec` to a debug string, appending it to `str`.

###### fwupd_codec_from_json

Converts an object that implements `FwupdCodec` from a JSON object.

###### fwupd_codec_from_json_string

Converts an object that implements `FwupdCodec` from a JSON string.

###### fwupd_codec_from_variant

Converts an object that implements `FwupdCodec` from a `GVariant` value.

###### fwupd_codec_to_json

Converts an object that implements `FwupdCodec` to a JSON builder object.

###### fwupd_codec_to_json_string

Converts an object that implements `FwupdCodec` to a JSON string.

###### fwupd_codec_to_string

Converts an object that implements `FwupdCodec` to a debug string.

###### fwupd_codec_to_variant

Converts an object that implements `FwupdCodec` to a `GVariant`.

#### Properties

###### FwupdPlugin.Plugin:context

The `FuContext` to use.

since: 1.8.6

##### Properties inherited from FwupdPlugin (2)

###### Fwupd.Plugin:flags

The plugin flags.

###### Fwupd.Plugin:name

The plugin name.

#### Signals

###### FwupdPlugin.Plugin::check-supported

The ::check-supported signal is emitted when a plugin wants to ask the daemon if a specific device GUID is supported in the existing system metadata.

since: 1.0.0

###### FwupdPlugin.Plugin::device-added

The ::device-added signal is emitted when a device has been added by the plugin.

since: 0.8.0

###### FwupdPlugin.Plugin::device-register

The ::device-register signal is emitted when another plugin has added the device.

since: 0.9.7

###### FwupdPlugin.Plugin::device-removed

The ::device-removed signal is emitted when a device has been removed by the plugin.

since: 0.8.0

###### FwupdPlugin.Plugin::rules-changed

No description available.

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct FwupdPluginPluginClass {
      FwupdPluginClass parent_class;
      void (* _device_added) (
        FuPlugin* self,
        FuDevice* device
      );
      void (* _device_removed) (
        FuPlugin* self,
        FuDevice* device
      );
      void (* _status_changed) (
        FuPlugin* self,
        FwupdStatus status
      );
      void (* _percentage_changed) (
        FuPlugin* self,
        guint percentage
      );
      void (* _device_register) (
        FuPlugin* self,
        FuDevice* device
      );
      gboolean (* _check_supported) (
        FuPlugin* self,
        const gchar* guid
      );
      void (* _rules_changed) (
        FuPlugin* self
      );
      void (* constructed) (
        GObject* obj
      );
      void (* finalize) (
        GObject* obj
      );
      gboolean (* startup) (
        FuPlugin* self,
        FuProgress* progress,
        GError** error
      );
      gboolean (* ready) (
        FuPlugin* self,
        FuProgress* progress,
        GError** error
      );
      gboolean (* coldplug) (
        FuPlugin* self,
        FuProgress* progress,
        GError** error
      );
      gboolean (* device_created) (
        FuPlugin* self,
        FuDevice* device,
        GError** error
      );
      void (* device_registered) (
        FuPlugin* self,
        FuDevice* device
      );
      void (* device_added) (
        FuPlugin* self,
        FuDevice* device
      );
      gboolean (* verify) (
        FuPlugin* self,
        FuDevice* device,
        FuProgress* progress,
        FuPluginVerifyFlags flags,
        GError** error
      );
      gboolean (* get_results) (
        FuPlugin* self,
        FuDevice* device,
        GError** error
      );
      gboolean (* clear_results) (
        FuPlugin* self,
        FuDevice* device,
        GError** error
      );
      gboolean (* backend_device_added) (
        FuPlugin* self,
        FuDevice* device,
        FuProgress* progress,
        GError** error
      );
      gboolean (* backend_device_changed) (
        FuPlugin* self,
        FuDevice* device,
        GError** error
      );
      gboolean (* backend_device_removed) (
        FuPlugin* self,
        FuDevice* device,
        GError** error
      );
      void (* add_security_attrs) (
        FuPlugin* self,
        FuSecurityAttrs* attrs
      );
      gboolean (* write_firmware) (
        FuPlugin* self,
        FuDevice* device,
        FuFirmware* firmware,
        FuProgress* progress,
        FwupdInstallFlags flags,
        GError** error
      );
      gboolean (* unlock) (
        FuPlugin* self,
        FuDevice* device,
        GError** error
      );
      gboolean (* activate) (
        FuPlugin* self,
        FuDevice* device,
        FuProgress* progress,
        GError** error
      );
      gboolean (* attach) (
        FuPlugin* self,
        FuDevice* device,
        FuProgress* progress,
        GError** error
      );
      gboolean (* detach) (
        FuPlugin* self,
        FuDevice* device,
        FuProgress* progress,
        GError** error
      );
      gboolean (* prepare) (
        FuPlugin* self,
        FuDevice* device,
        FuProgress* progress,
        FwupdInstallFlags flags,
        GError** error
      );
      gboolean (* cleanup) (
        FuPlugin* self,
        FuDevice* device,
        FuProgress* progress,
        FwupdInstallFlags flags,
        GError** error
      );
      gboolean (* composite_prepare) (
        FuPlugin* self,
        GPtrArray* devices,
        GError** error
      );
      gboolean (* composite_cleanup) (
        FuPlugin* self,
        GPtrArray* devices,
        GError** error
      );
      void (* load) (
        FuContext* ctx
      );
      void (* to_string) (
        FuPlugin* self,
        guint idt,
        GString* str
      );
      gboolean (* fix_host_security_attr) (
        FuPlugin* self,
        FwupdSecurityAttr* attr,
        GError** error
      );
      gboolean (* undo_host_security_attr) (
        FuPlugin* self,
        FwupdSecurityAttr* attr,
        GError** error
      );
      gboolean (* reboot_cleanup) (
        FuPlugin* self,
        FuDevice* device,
        GError** error
      );
      gboolean (* modify_config) (
        FuPlugin* self,
        const gchar* key,
        const gchar* value,
        GError** error
      );
      gboolean (* composite_peek_firmware) (
        FuPlugin* self,
        FuDevice* device,
        FuFirmware* firmware,
        FuProgress* progress,
        FwupdInstallFlags flags,
        GError** error
      );

    }

No description available.

###### Class members

`parent_class: FwupdPluginClass`

  No description available.

`_device_added: void (* _device_added) ( FuPlugin* self, FuDevice* device )`

  No description available.

`_device_removed: void (* _device_removed) ( FuPlugin* self, FuDevice* device )`

  No description available.

`_status_changed: void (* _status_changed) ( FuPlugin* self, FwupdStatus status )`

  No description available.

`_percentage_changed: void (* _percentage_changed) ( FuPlugin* self, guint percentage )`

  No description available.

`_device_register: void (* _device_register) ( FuPlugin* self, FuDevice* device )`

  No description available.

`_check_supported: gboolean (* _check_supported) ( FuPlugin* self, const gchar* guid )`

  No description available.

`_rules_changed: void (* _rules_changed) ( FuPlugin* self )`

  No description available.

`constructed: void (* constructed) ( GObject* obj )`

  No description available.

`finalize: void (* finalize) ( GObject* obj )`

  No description available.

`startup: gboolean (* startup) ( FuPlugin* self, FuProgress* progress, GError** error )`

  No description available.

`ready: gboolean (* ready) ( FuPlugin* self, FuProgress* progress, GError** error )`

  No description available.

`coldplug: gboolean (* coldplug) ( FuPlugin* self, FuProgress* progress, GError** error )`

  No description available.

`device_created: gboolean (* device_created) ( FuPlugin* self, FuDevice* device, GError** error )`

  No description available.

`device_registered: void (* device_registered) ( FuPlugin* self, FuDevice* device )`

  No description available.

`device_added: void (* device_added) ( FuPlugin* self, FuDevice* device )`

  No description available.

`verify: gboolean (* verify) ( FuPlugin* self, FuDevice* device, FuProgress* progress, FuPluginVerifyFlags flags, GError** error )`

  No description available.

`get_results: gboolean (* get_results) ( FuPlugin* self, FuDevice* device, GError** error )`

  No description available.

`clear_results: gboolean (* clear_results) ( FuPlugin* self, FuDevice* device, GError** error )`

  No description available.

`backend_device_added: gboolean (* backend_device_added) ( FuPlugin* self, FuDevice* device, FuProgress* progress, GError** error )`

  No description available.

`backend_device_changed: gboolean (* backend_device_changed) ( FuPlugin* self, FuDevice* device, GError** error )`

  No description available.

`backend_device_removed: gboolean (* backend_device_removed) ( FuPlugin* self, FuDevice* device, GError** error )`

  No description available.

`add_security_attrs: void (* add_security_attrs) ( FuPlugin* self, FuSecurityAttrs* attrs )`

  No description available.

`write_firmware: gboolean (* write_firmware) ( FuPlugin* self, FuDevice* device, FuFirmware* firmware, FuProgress* progress, FwupdInstallFlags flags, GError** error )`

  No description available.

`unlock: gboolean (* unlock) ( FuPlugin* self, FuDevice* device, GError** error )`

  No description available.

`activate: gboolean (* activate) ( FuPlugin* self, FuDevice* device, FuProgress* progress, GError** error )`

  No description available.

`attach: gboolean (* attach) ( FuPlugin* self, FuDevice* device, FuProgress* progress, GError** error )`

  No description available.

`detach: gboolean (* detach) ( FuPlugin* self, FuDevice* device, FuProgress* progress, GError** error )`

  No description available.

`prepare: gboolean (* prepare) ( FuPlugin* self, FuDevice* device, FuProgress* progress, FwupdInstallFlags flags, GError** error )`

  No description available.

`cleanup: gboolean (* cleanup) ( FuPlugin* self, FuDevice* device, FuProgress* progress, FwupdInstallFlags flags, GError** error )`

  No description available.

`composite_prepare: gboolean (* composite_prepare) ( FuPlugin* self, GPtrArray* devices, GError** error )`

  No description available.

`composite_cleanup: gboolean (* composite_cleanup) ( FuPlugin* self, GPtrArray* devices, GError** error )`

  No description available.

`load: void (* load) ( FuContext* ctx )`

  No description available.

`to_string: void (* to_string) ( FuPlugin* self, guint idt, GString* str )`

  No description available.

`fix_host_security_attr: gboolean (* fix_host_security_attr) ( FuPlugin* self, FwupdSecurityAttr* attr, GError** error )`

  No description available.

`undo_host_security_attr: gboolean (* undo_host_security_attr) ( FuPlugin* self, FwupdSecurityAttr* attr, GError** error )`

  No description available.

`reboot_cleanup: gboolean (* reboot_cleanup) ( FuPlugin* self, FuDevice* device, GError** error )`

  No description available.

`modify_config: gboolean (* modify_config) ( FuPlugin* self, const gchar* key, const gchar* value, GError** error )`

  No description available.

`composite_peek_firmware: gboolean (* composite_peek_firmware) ( FuPlugin* self, FuDevice* device, FuFirmware* firmware, FuProgress* progress, FwupdInstallFlags flags, GError** error )`

  No description available.

#### Virtual methods

###### FwupdPlugin.PluginClass._check_supported

No description available.

###### FwupdPlugin.PluginClass._device_added

No description available.

###### FwupdPlugin.PluginClass._device_register

No description available.

###### FwupdPlugin.PluginClass._device_removed

No description available.

###### FwupdPlugin.PluginClass._percentage_changed

No description available.

###### FwupdPlugin.PluginClass._rules_changed

No description available.

###### FwupdPlugin.PluginClass._status_changed

No description available.

###### FwupdPlugin.PluginClass.activate

No description available.

###### FwupdPlugin.PluginClass.add_security_attrs

No description available.

###### FwupdPlugin.PluginClass.attach

No description available.

###### FwupdPlugin.PluginClass.backend_device_added

No description available.

###### FwupdPlugin.PluginClass.backend_device_changed

No description available.

###### FwupdPlugin.PluginClass.backend_device_removed

No description available.

###### FwupdPlugin.PluginClass.cleanup

No description available.

###### FwupdPlugin.PluginClass.clear_results

No description available.

###### FwupdPlugin.PluginClass.coldplug

No description available.

###### FwupdPlugin.PluginClass.composite_cleanup

No description available.

###### FwupdPlugin.PluginClass.composite_peek_firmware

No description available.

###### FwupdPlugin.PluginClass.composite_prepare

No description available.

###### FwupdPlugin.PluginClass.detach

No description available.

###### FwupdPlugin.PluginClass.device_added

No description available.

###### FwupdPlugin.PluginClass.device_created

No description available.

###### FwupdPlugin.PluginClass.device_registered

No description available.

###### FwupdPlugin.PluginClass.fix_host_security_attr

No description available.

###### FwupdPlugin.PluginClass.get_results

No description available.

###### FwupdPlugin.PluginClass.modify_config

No description available.

###### FwupdPlugin.PluginClass.prepare

No description available.

###### FwupdPlugin.PluginClass.ready

No description available.

###### FwupdPlugin.PluginClass.reboot_cleanup

No description available.

###### FwupdPlugin.PluginClass.startup

No description available.

###### FwupdPlugin.PluginClass.to_string

No description available.

###### FwupdPlugin.PluginClass.undo_host_security_attr

No description available.

###### FwupdPlugin.PluginClass.unlock

No description available.

###### FwupdPlugin.PluginClass.verify

No description available.

###### FwupdPlugin.PluginClass.write_firmware

No description available.