Top | ![]() |
![]() |
![]() |
![]() |
#define | FU_TYPE_PLUGIN |
struct | FuPluginClass |
enum | FuPluginVerifyFlags |
enum | FuPluginRule |
typedef | FuPluginData |
FuPlugin |
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
FuPluginData * fu_plugin_alloc_data (FuPlugin *self
,gsize data_sz
);
Allocates the per-plugin allocated private data.
Since: 0.8.0
gboolean
fu_plugin_get_enabled (FuPlugin *self
);
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
);
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
);
Gets the shared USB context that all plugins can use.
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 intance 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_set_coldplug_delay (FuPlugin *self
,guint duration
);
Set the minimum time that should be waited inbetween the call to
fu_plugin_coldplug_prepare()
and fu_plugin_coldplug()
. This is usually going
to be the minimum hardware initialisation 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
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
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
gboolean fu_plugin_check_supported (FuPlugin *self
,const gchar *guid
);
Checks to see if a specific device GUID is supported, i.e. available in the AppStream metadata.
Since: 1.0.0
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. |
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()
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.
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
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
struct FuPluginClass { GObjectClass 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); };
The rules used for ordering plugins.
Plugins are expected to add rules in fu_plugin_initialize()
.