fwupd/plugins
Richard Hughes e87fc05ab9 Speed up the daemon startup by ~2% by doing dlsym much less
We were calling g_module_symbol() 2703 times, which is actually more
expensive than you'd think.

It also means the plugins are actually what we tell people they are:
A set of vfuncs that get run. The reality before that they were dlsym'd
functions that get called at pretty random times.
2021-11-09 12:02:07 +00:00
..
acpi-dmar Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
acpi-facp Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
acpi-phat Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
altos Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
amt Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
analogix Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
ata Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
bcm57xx Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
bios Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
ccgx Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
cfu Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
colorhug Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
cpu Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
cros-ec Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
dell Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
dell-dock Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
dell-esrt Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
dfu Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
dfu-csr Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
ebitdo Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
elanfp Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
elantp Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
emmc Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
ep963x Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
fastboot Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
flashrom Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
fresco-pd Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
goodix-moc Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
hailuck Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
intel-spi Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
iommu Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
jabra Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
lenovo-thinklmi Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
linux-lockdown Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
linux-sleep Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
linux-swap Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
linux-tainted Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
logind Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
logitech-bulkcontroller Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
logitech-hidpp Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
modem-manager Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
msr Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
mtd Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
nitrokey Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
nvme Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
optionrom Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
parade-lspcon Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
pci-bcr Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
pci-mei Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
pixart-rf Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
platform-integrity Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
powerd Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
realtek-mst Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
redfish Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
rts54hid Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
rts54hub Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
solokey Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
steelseries Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
superio Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
synaptics-cape Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
synaptics-cxaudio Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
synaptics-mst Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
synaptics-prometheus Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
synaptics-rmi Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
system76-launch Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
test Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
thelio-io Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
thunderbolt Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
tpm Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
uefi-capsule Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
uefi-dbx Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
uefi-pk Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
uefi-recovery Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
upower Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
vli Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
wacom-raw Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
wacom-usb Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
meson.build Add a new plugin to handle MTD devices 2021-11-05 20:01:51 +00:00
README.md Rename the development branch from master to main 2021-09-24 14:20:24 -05: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.

You can use the fwupd developer documentation to assist with APIs available to write the plugin.

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.

We will not accept plugins that upgrade hardware using a proprietary Linux executable, proprietary UEFI executable, proprietary library, or DBus interface.

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/fwupd/fwupd/blob/main/libfwupdplugin/fu-device-metadata.h

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