mirror of
https://git.proxmox.com/git/fwupd
synced 2025-07-27 11:09:28 +00:00
Add a new vfunc to check if two firmwares are compatible
For future use.
This commit is contained in:
parent
e12b46b991
commit
a5397c6836
@ -772,6 +772,37 @@ fu_firmware_tokenize(FuFirmware *self, GBytes *fw, FwupdInstallFlags flags, GErr
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* fu_firmware_check_compatible:
|
||||
* @self: a #FuFirmware
|
||||
* @other: a #FuFirmware
|
||||
* @flags: install flags, e.g. %FWUPD_INSTALL_FLAG_FORCE
|
||||
* @error: (nullable): optional return location for an error
|
||||
*
|
||||
* Check a new firmware is compatible with the existing firmware.
|
||||
*
|
||||
* Returns: %TRUE for success
|
||||
*
|
||||
* Since: 1.8.4
|
||||
**/
|
||||
gboolean
|
||||
fu_firmware_check_compatible(FuFirmware *self,
|
||||
FuFirmware *other,
|
||||
FwupdInstallFlags flags,
|
||||
GError **error)
|
||||
{
|
||||
FuFirmwareClass *klass = FU_FIRMWARE_GET_CLASS(self);
|
||||
|
||||
g_return_val_if_fail(FU_IS_FIRMWARE(self), FALSE);
|
||||
g_return_val_if_fail(FU_IS_FIRMWARE(other), FALSE);
|
||||
g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
|
||||
|
||||
/* optionally subclassed */
|
||||
if (klass->check_compatible == NULL)
|
||||
return TRUE;
|
||||
return klass->check_compatible(self, other, flags, error);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
fu_firmware_check_magic_for_offset(FuFirmware *self,
|
||||
GBytes *fw,
|
||||
|
@ -63,8 +63,12 @@ struct _FuFirmwareClass {
|
||||
GChecksumType csum_kind,
|
||||
GError **error)G_GNUC_WARN_UNUSED_RESULT;
|
||||
gboolean (*check_magic)(FuFirmware *self, GBytes *fw, gsize offset, GError **error);
|
||||
gboolean (*check_compatible)(FuFirmware *self,
|
||||
FuFirmware *other,
|
||||
FwupdInstallFlags flags,
|
||||
GError **error);
|
||||
/*< private >*/
|
||||
gpointer padding[25];
|
||||
gpointer padding[24];
|
||||
};
|
||||
|
||||
/**
|
||||
@ -292,6 +296,11 @@ gboolean
|
||||
fu_firmware_write_file(FuFirmware *self, GFile *file, GError **error) G_GNUC_WARN_UNUSED_RESULT;
|
||||
gchar *
|
||||
fu_firmware_get_checksum(FuFirmware *self, GChecksumType csum_kind, GError **error);
|
||||
gboolean
|
||||
fu_firmware_check_compatible(FuFirmware *self,
|
||||
FuFirmware *other,
|
||||
FwupdInstallFlags flags,
|
||||
GError **error);
|
||||
|
||||
void
|
||||
fu_firmware_add_image(FuFirmware *self, FuFirmware *img);
|
||||
|
@ -1086,6 +1086,7 @@ LIBFWUPDPLUGIN_1.8.4 {
|
||||
fu_context_get_bios_settings;
|
||||
fu_context_reload_bios_settings;
|
||||
fu_device_security_attr_new;
|
||||
fu_firmware_check_compatible;
|
||||
fu_plugin_add_string;
|
||||
fu_plugin_security_attr_new;
|
||||
fu_plugin_to_string;
|
||||
|
Loading…
Reference in New Issue
Block a user