mirror of
https://git.proxmox.com/git/fwupd
synced 2025-08-07 12:25:38 +00:00
Add FuDevice->prepare() and FuDevice->cleanup() vfuncs for future use
This commit is contained in:
parent
9e4bf87184
commit
b05d39adff
@ -2015,6 +2015,62 @@ fu_device_reload (FuDevice *self, GError **error)
|
|||||||
return klass->reload (self, error);
|
return klass->reload (self, error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fu_device_prepare:
|
||||||
|
* @self: A #FuDevice
|
||||||
|
* @error: A #GError
|
||||||
|
*
|
||||||
|
* Prepares a device for update. A different plugin can handle each of
|
||||||
|
* FuDevice->prepare(), FuDevice->detach() and FuDevice->write_firmware().
|
||||||
|
*
|
||||||
|
* Returns: %TRUE on success
|
||||||
|
*
|
||||||
|
* Since: 1.3.3
|
||||||
|
**/
|
||||||
|
gboolean
|
||||||
|
fu_device_prepare (FuDevice *self, FwupdInstallFlags flags, GError **error)
|
||||||
|
{
|
||||||
|
FuDeviceClass *klass = FU_DEVICE_GET_CLASS (self);
|
||||||
|
|
||||||
|
g_return_val_if_fail (FU_IS_DEVICE (self), FALSE);
|
||||||
|
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
|
||||||
|
|
||||||
|
/* no plugin-specific method */
|
||||||
|
if (klass->prepare == NULL)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
/* call vfunc */
|
||||||
|
return klass->prepare (self, flags, error);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fu_device_cleanup:
|
||||||
|
* @self: A #FuDevice
|
||||||
|
* @error: A #GError
|
||||||
|
*
|
||||||
|
* Cleans up a device after an update. A different plugin can handle each of
|
||||||
|
* FuDevice->write_firmware(), FuDevice->attach() and FuDevice->cleanup().
|
||||||
|
*
|
||||||
|
* Returns: %TRUE on success
|
||||||
|
*
|
||||||
|
* Since: 1.3.3
|
||||||
|
**/
|
||||||
|
gboolean
|
||||||
|
fu_device_cleanup (FuDevice *self, FwupdInstallFlags flags, GError **error)
|
||||||
|
{
|
||||||
|
FuDeviceClass *klass = FU_DEVICE_GET_CLASS (self);
|
||||||
|
|
||||||
|
g_return_val_if_fail (FU_IS_DEVICE (self), FALSE);
|
||||||
|
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
|
||||||
|
|
||||||
|
/* no plugin-specific method */
|
||||||
|
if (klass->cleanup == NULL)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
/* call vfunc */
|
||||||
|
return klass->cleanup (self, flags, error);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fu_device_open:
|
* fu_device_open:
|
||||||
* @self: A #FuDevice
|
* @self: A #FuDevice
|
||||||
|
@ -58,8 +58,14 @@ struct _FuDeviceClass
|
|||||||
GError **error);
|
GError **error);
|
||||||
gboolean (*reload) (FuDevice *self,
|
gboolean (*reload) (FuDevice *self,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
gboolean (*prepare) (FuDevice *self,
|
||||||
|
FwupdInstallFlags flags,
|
||||||
|
GError **error);
|
||||||
|
gboolean (*cleanup) (FuDevice *self,
|
||||||
|
FwupdInstallFlags flags,
|
||||||
|
GError **error);
|
||||||
/*< private >*/
|
/*< private >*/
|
||||||
gpointer padding[18];
|
gpointer padding[16];
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -227,6 +233,12 @@ gboolean fu_device_detach (FuDevice *self,
|
|||||||
GError **error);
|
GError **error);
|
||||||
gboolean fu_device_reload (FuDevice *self,
|
gboolean fu_device_reload (FuDevice *self,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
gboolean fu_device_prepare (FuDevice *self,
|
||||||
|
FwupdInstallFlags flags,
|
||||||
|
GError **error);
|
||||||
|
gboolean fu_device_cleanup (FuDevice *self,
|
||||||
|
FwupdInstallFlags flags,
|
||||||
|
GError **error);
|
||||||
void fu_device_incorporate (FuDevice *self,
|
void fu_device_incorporate (FuDevice *self,
|
||||||
FuDevice *donor);
|
FuDevice *donor);
|
||||||
gboolean fu_device_open (FuDevice *self,
|
gboolean fu_device_open (FuDevice *self,
|
||||||
|
Loading…
Reference in New Issue
Block a user