Top | ![]() |
![]() |
![]() |
![]() |
#define | FU_TYPE_PLUGIN |
struct | FuPluginClass |
enum | FuPluginVerifyFlags |
enum | FuPluginRule |
typedef | FuPluginData |
FuPlugin |
#define fu_plugin_remove_flag(p,f) fwupd_plugin_remove_flag(FWUPD_PLUGIN(p),f)
const gchar *
fu_plugin_get_name (FuPlugin *self
);
Gets the plugin name.
Since: 0.8.0
FuPluginData *
fu_plugin_get_data (FuPlugin *self
);
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
gboolean
fu_plugin_get_enabled (FuPlugin *self
);
fu_plugin_get_enabled
is deprecated and should not be used in newly-written code.
Returns if the plugin is enabled. Plugins may self-disable using
fu_plugin_set_enabled()
or can be disabled by the daemon.
Since: 0.8.0
void fu_plugin_set_enabled (FuPlugin *self
,gboolean enabled
);
fu_plugin_set_enabled
is deprecated and should not be used in newly-written code.
Enables or disables a plugin. Plugins can self-disable at any point.
Since: 0.8.0
void fu_plugin_set_build_hash (FuPlugin *self
,const gchar *build_hash
);
Sets the plugin build hash, typically a SHA256 checksum. All plugins must set the correct checksum to avoid the daemon being marked as tainted.
Since: 1.2.4
GUsbContext *
fu_plugin_get_usb_context (FuPlugin *self
);
This used to get the shared USB context that all plugins can use; it now
returns NULL
;
Since: 0.8.0
void fu_plugin_device_add (FuPlugin *self
,FuDevice *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.
Plugins should use fu_plugin_device_add_delay()
if they are not capable of
actually flashing an image to the hardware so that higher-priority plugins
can add the device themselves.
Since: 0.8.0
void fu_plugin_device_remove (FuPlugin *self
,FuDevice *device
);
Asks the daemon to remove a device from the exported list.
Since: 0.8.0
void fu_plugin_device_register (FuPlugin *self
,FuDevice *device
);
Registers the device with other plugins so they can set metadata.
Plugins do not have to call this manually as this is done automatically
when using fu_plugin_device_add()
. They may wish to use this manually
if for instance the coldplug should be ignored based on the metadata
set from other plugins.
Since: 0.9.7
void
fu_plugin_request_recoldplug (FuPlugin *self
);
Ask all the plugins to coldplug all devices, which will include the prepare()
and cleanup()
phases. Duplicate devices added will be ignored.
Since: 0.8.0
void
fu_plugin_security_changed (FuPlugin *self
);
Informs the daemon that the HSI state may have changed.
Since: 1.5.0
void fu_plugin_set_coldplug_delay (FuPlugin *self
,guint duration
);
Set the minimum time that should be waited in-between the call to
fu_plugin_coldplug_prepare()
and fu_plugin_coldplug()
. This is usually going
to be the minimum hardware initialization time from a datasheet.
It is better to use this function rather than using a sleep()
in the plugin
itself as then only one delay is done in the daemon rather than waiting for
each coldplug prepare in a serial way.
Additionally, very long delays should be avoided as the daemon will be blocked from processing requests whilst the coldplug delay is being performed.
Since: 0.8.0
void fu_plugin_set_device_gtype (FuPlugin *self
,GType device_gtype
);
Sets the device GType which is used when creating devices.
If this method is used then fu_plugin_backend_device_added()
is not called, and
instead the object is created in the daemon for the plugin.
Plugins can use this method only in fu_plugin_init()
Since: 1.3.3
void fu_plugin_add_firmware_gtype (FuPlugin *self
,const gchar *id
,GType gtype
);
Adds a firmware GType which is used when creating devices. If id
is not
specified then it is guessed using the GType name.
Plugins can use this method only in fu_plugin_init()
self |
a FuPlugin |
|
id |
An optional string describing the type, e.g. "ihex". |
[nullable] |
gtype |
a GType e.g. |
Since: 1.3.3
void fu_plugin_add_possible_quirk_key (FuPlugin *self
,const gchar *possible_key
);
Adds a possible quirk key. If added by a plugin it should be namespaced using the plugin name, where possible.
Plugins can use this method only in fu_plugin_init()
Since: 1.5.8
gpointer fu_plugin_cache_lookup (FuPlugin *self
,const gchar *id
);
Finds an object in the per-plugin cache.
Since: 0.8.0
void fu_plugin_cache_remove (FuPlugin *self
,const gchar *id
);
Removes an object from the per-plugin cache.
Since: 0.8.0
void fu_plugin_cache_add (FuPlugin *self
,const gchar *id
,gpointer dev
);
Adds an object to the per-plugin cache.
Since: 0.8.0
gboolean fu_plugin_check_hwid (FuPlugin *self
,const gchar *hwid
);
Checks to see if a specific GUID exists. All hardware IDs on a
specific system can be shown using the fwupdmgr hwids
command.
Since: 0.9.1
gchar * fu_plugin_get_hwid_replace_value (FuPlugin *self
,const gchar *keys
,GError **error
);
Gets the replacement value for a specific key. All hardware IDs on a
specific system can be shown using the fwupdmgr hwids
command.
self |
A FuPlugin |
|
keys |
A key, e.g. |
|
error |
A GError or |
Since: 1.3.3
GPtrArray *
fu_plugin_get_devices (FuPlugin *self
);
Returns all devices added by the plugin using fu_plugin_device_add()
and
not yet removed with fu_plugin_device_remove()
.
Since: 1.5.6
GPtrArray *
fu_plugin_get_hwids (FuPlugin *self
);
Returns all the HWIDs defined in the system. All hardware IDs on a
specific system can be shown using the fwupdmgr hwids
command.
Since: 1.1.1
const gchar * fu_plugin_get_dmi_value (FuPlugin *self
,const gchar *dmi_id
);
Gets a hardware DMI value.
Since: 0.9.7
const gchar * fu_plugin_get_smbios_string (FuPlugin *self
,guint8 structure_type
,guint8 offset
);
Gets a hardware SMBIOS string.
The type
and offset
can be referenced from the DMTF SMBIOS specification:
https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.1.1.pdf
self |
A FuPlugin |
|
structure_type |
A SMBIOS structure type, e.g. |
|
offset |
A SMBIOS offset |
Since: 0.9.8
GBytes * fu_plugin_get_smbios_data (FuPlugin *self
,guint8 structure_type
);
Gets a hardware SMBIOS data.
self |
A FuPlugin |
|
structure_type |
A SMBIOS structure type, e.g. |
Since: 0.9.8
void fu_plugin_add_rule (FuPlugin *self
,FuPluginRule rule
,const gchar *name
);
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.
NOTE: The depsolver is iterative and may not solve overly-complicated rules; If depsolving fails then fwupd will not start.
self |
a FuPlugin |
|
rule |
a FuPluginRule, e.g. |
|
name |
a plugin name, e.g. |
Since: 1.0.0
void fu_plugin_add_udev_subsystem (FuPlugin *self
,const gchar *subsystem
);
Registers the udev subsystem to be watched by the daemon.
Plugins can use this method only in fu_plugin_init()
Since: 1.1.2
FuQuirks *
fu_plugin_get_quirks (FuPlugin *self
);
Returns the hardware database object. This can be used to discover device quirks or other device-specific settings.
Since: 1.0.1
const gchar * fu_plugin_lookup_quirk_by_id (FuPlugin *self
,const gchar *group
,const gchar *key
);
Looks up an entry in the hardware database using a string value.
self |
A FuPlugin |
|
group |
A string, e.g. "DfuFlags" |
|
key |
An ID to match the entry, e.g. "Summary" |
Since: 1.0.1
guint64 fu_plugin_lookup_quirk_by_id_as_uint64 (FuPlugin *self
,const gchar *group
,const gchar *key
);
Looks up an entry in the hardware database using a string key, returning an integer value. Values are assumed base 10, unless prefixed with "0x" where they are parsed as base 16.
self |
A FuPlugin |
|
group |
A string, e.g. "DfuFlags" |
|
key |
An ID to match the entry, e.g. "Size" |
Since: 1.1.2
void fu_plugin_add_report_metadata (FuPlugin *self
,const gchar *key
,const gchar *value
);
Sets any additional metadata to be included in the firmware report to aid debugging problems.
Any data included here will be sent to the metadata server after user confirmation.
Since: 1.0.4
gchar * fu_plugin_get_config_value (FuPlugin *self
,const gchar *key
);
Return the value of a key if it's been configured
Since: 1.0.6
gboolean fu_plugin_get_config_value_boolean (FuPlugin *self
,const gchar *key
);
Return the boolean value of a key if it's been configured
Since: 1.4.0
void fu_plugin_add_runtime_version (FuPlugin *self
,const gchar *component_id
,const gchar *version
);
Sets a runtime version of a specific dependency.
self |
A FuPlugin |
|
component_id |
An AppStream component id, e.g. "org.gnome.Software" |
|
version |
A version string, e.g. "1.2.3" |
Since: 1.0.7
void fu_plugin_add_compile_version (FuPlugin *self
,const gchar *component_id
,const gchar *version
);
Sets a compile-time version of a specific dependency.
self |
A FuPlugin |
|
component_id |
An AppStream component id, e.g. "org.gnome.Software" |
|
version |
A version string, e.g. "1.2.3" |
Since: 1.0.7
gboolean fu_plugin_has_custom_flag (FuPlugin *self
,const gchar *flag
);
Returns if a per-plugin HwId custom flag exists, typically added from a DMI quirk.
Since: 1.3.1
struct FuPluginClass { FwupdPluginClass parent_class; /* signals */ 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 (* recoldplug) (FuPlugin *self); void (* set_coldplug_delay) (FuPlugin *self, guint duration); void (* device_register) (FuPlugin *self, FuDevice *device); gboolean (* check_supported) (FuPlugin *self, const gchar *guid); void (* rules_changed) (FuPlugin *self); gboolean (* add_firmware_gtype) (FuPlugin *self, const gchar *id, GType gtype); void (* security_changed) (FuPlugin *self); };
The rules used for ordering plugins.
Plugins are expected to add rules in fu_plugin_initialize()
.