diff --git a/libfwupd/fwupd-result.c b/libfwupd/fwupd-result.c index 4185bb33a..071ccbf1f 100644 --- a/libfwupd/fwupd-result.c +++ b/libfwupd/fwupd-result.c @@ -1182,6 +1182,23 @@ fwupd_result_add_device_flag (FwupdResult *result, FwupdDeviceFlags flag) priv->device_flags |= flag; } +/** + * fwupd_result_remove_device_flag: + * @result: A #FwupdResult + * @flag: the #FwupdDeviceFlags + * + * Removes a specific device flag from the result. + * + * Since: 0.7.3 + **/ +void +fwupd_result_remove_device_flag (FwupdResult *result, FwupdDeviceFlags flag) +{ + FwupdResultPrivate *priv = GET_PRIVATE (result); + g_return_if_fail (FWUPD_IS_RESULT (result)); + priv->device_flags &= ~flag; +} + /** * fwupd_result_has_device_flag: * @result: A #FwupdResult diff --git a/libfwupd/fwupd-result.h b/libfwupd/fwupd-result.h index 553524145..343d50709 100644 --- a/libfwupd/fwupd-result.h +++ b/libfwupd/fwupd-result.h @@ -79,6 +79,8 @@ void fwupd_result_set_device_flags (FwupdResult *result, guint64 device_flags); void fwupd_result_add_device_flag (FwupdResult *result, FwupdDeviceFlags flag); +void fwupd_result_remove_device_flag (FwupdResult *result, + FwupdDeviceFlags flag); gboolean fwupd_result_has_device_flag (FwupdResult *result, FwupdDeviceFlags flag); guint64 fwupd_result_get_device_created (FwupdResult *result); diff --git a/src/fu-device.h b/src/fu-device.h index 809bae0f1..2765597a4 100644 --- a/src/fu-device.h +++ b/src/fu-device.h @@ -42,6 +42,7 @@ FuDevice *fu_device_new (void); /* compat setters */ #define fu_device_add_flag(d,v) fwupd_result_add_device_flag(FWUPD_RESULT(d),v) +#define fu_device_remove_flag(d,v) fwupd_result_remove_device_flag(FWUPD_RESULT(d),v) #define fu_device_has_flag(d,v) fwupd_result_has_device_flag(FWUPD_RESULT(d),v) #define fu_device_set_checksum(d,v) fwupd_result_set_device_checksum(FWUPD_RESULT(d),v) #define fu_device_set_checksum_kind(d,v) fwupd_result_set_device_checksum_kind(FWUPD_RESULT(d),v)