fwupd/plugins
Richard Hughes c125ec02ed Clarify what the platform ID actually is by renaming it
It wasn't hugely clear what the platform ID was actually meant to represent. In
some cases it was being used like a physical ID, in others it was a logical ID,
and in others it was both. In some cases it was even used as a sysfs path.

Clear up all the confusion by splitting the platform ID into two parts, an
optional *physical* ID to represent the electrical connection, and an optional
*logical* ID to disambiguate composite devices with the same physical ID.

Also create an explicit sysfs_path getter for FuUdevDevice to make this clear.

This allows WAIT_FOR_REPLUG to always work, rather than depending on the order
that the GUIDs were added, and that the kernel would always return the same
sysfs path (which it doesn't have to do, especially for hidraw devices).
2018-09-06 16:22:46 +01:00
..
altos trivial: Include appstream-glib.h in the main plugin header 2018-09-04 08:22:39 -05:00
amt Clarify what the platform ID actually is by renaming it 2018-09-06 16:22:46 +01:00
colorhug trivial: Include appstream-glib.h in the main plugin header 2018-09-04 08:22:39 -05:00
csr trivial: Remove duplicate header includes 2018-09-04 08:22:39 -05:00
dell Clarify what the platform ID actually is by renaming it 2018-09-06 16:22:46 +01:00
dell-esrt trivial: Include appstream-glib.h in the main plugin header 2018-09-04 08:22:39 -05:00
dfu trivial: Remove duplicate header includes 2018-09-04 08:22:39 -05:00
ebitdo trivial: Include appstream-glib.h in the main plugin header 2018-09-04 08:22:39 -05:00
flashrom trivial: Remove duplicate header includes 2018-09-04 08:22:39 -05:00
nitrokey trivial: Include appstream-glib.h in the main plugin header 2018-09-04 08:22:39 -05:00
nvme Clarify what the platform ID actually is by renaming it 2018-09-06 16:22:46 +01:00
redfish trivial: Remove duplicate header includes 2018-09-04 08:22:39 -05:00
steelseries trivial: Remove duplicate header includes 2018-09-04 08:22:39 -05:00
superio trivial: Fix some NULL/FALSE confusion 2018-09-04 20:37:17 +01:00
synapticsmst Clarify what the platform ID actually is by renaming it 2018-09-06 16:22:46 +01:00
test trivial: Remove duplicate header includes 2018-09-04 08:22:39 -05:00
thunderbolt Clarify what the platform ID actually is by renaming it 2018-09-06 16:22:46 +01:00
thunderbolt-power trivial: Remove duplicate header includes 2018-09-04 08:22:39 -05:00
udev Clarify what the platform ID actually is by renaming it 2018-09-06 16:22:46 +01:00
uefi Clarify what the platform ID actually is by renaming it 2018-09-06 16:22:46 +01:00
unifying Clarify what the platform ID actually is by renaming it 2018-09-06 16:22:46 +01:00
upower trivial: Remove duplicate header includes 2018-09-04 08:22:39 -05:00
wacomhid Clarify what the platform ID actually is by renaming it 2018-09-06 16:22:46 +01:00
meson.build flashrom: Add a plugin for updating using the flashrom command line tool 2018-08-28 09:25:36 +01:00
README.md trivial: Use the SSL www-less homepage URL everywhere 2018-03-14 18:15:17 +00:00

Adding a new plugin

An extensible architecture allows for providing new plugin types (for reading and writing different firmware) as well as ways quirk their behavior.

You can find more information about the architecture in the developers section of the fwupd website.

If you have a firmware specification and would like to see support in this project, please file an issue and share the spec. Patches are also welcome.

Plugin interaction

Some plugins may be able to influence the behavior of other plugins. This includes things like one plugin turning on a device, or providing missing metadata to another plugin.

The ABI for these interactions is defined in: https://github.com/hughsie/fwupd/blob/master/src/fu-device-metadata.h

All interactions between plugins should have the interface defined in that file.