fwupd/libfwupd/fwupd-enums.h

876 lines
25 KiB
C

/*
* Copyright (C) 2015 Richard Hughes <richard@hughsie.com>
*
* SPDX-License-Identifier: LGPL-2.1+
*/
#pragma once
#include <glib.h>
G_BEGIN_DECLS
/**
* FwupdStatus:
* @FWUPD_STATUS_UNKNOWN: Unknown state
* @FWUPD_STATUS_IDLE: Idle
* @FWUPD_STATUS_LOADING: Loading a resource
* @FWUPD_STATUS_DECOMPRESSING: Decompressing firmware
* @FWUPD_STATUS_DEVICE_RESTART: Restarting the device
* @FWUPD_STATUS_DEVICE_WRITE: Writing to a device
* @FWUPD_STATUS_DEVICE_VERIFY: Verifying (reading) a device
* @FWUPD_STATUS_SCHEDULING: Scheduling an offline update
* @FWUPD_STATUS_DOWNLOADING: A file is downloading
* @FWUPD_STATUS_DEVICE_READ: Reading from a device
* @FWUPD_STATUS_DEVICE_ERASE: Erasing a device
* @FWUPD_STATUS_WAITING_FOR_AUTH: Waiting for authentication
* @FWUPD_STATUS_DEVICE_BUSY: The device is busy
* @FWUPD_STATUS_SHUTDOWN: The daemon is shutting down
*
* The flags to show daemon status.
**/
typedef enum {
FWUPD_STATUS_UNKNOWN, /* Since: 0.1.1 */
FWUPD_STATUS_IDLE, /* Since: 0.1.1 */
FWUPD_STATUS_LOADING, /* Since: 0.1.1 */
FWUPD_STATUS_DECOMPRESSING, /* Since: 0.1.1 */
FWUPD_STATUS_DEVICE_RESTART, /* Since: 0.1.1 */
FWUPD_STATUS_DEVICE_WRITE, /* Since: 0.1.1 */
FWUPD_STATUS_DEVICE_VERIFY, /* Since: 0.1.1 */
FWUPD_STATUS_SCHEDULING, /* Since: 0.1.1 */
FWUPD_STATUS_DOWNLOADING, /* Since: 0.9.4 */
FWUPD_STATUS_DEVICE_READ, /* Since: 1.0.0 */
FWUPD_STATUS_DEVICE_ERASE, /* Since: 1.0.0 */
FWUPD_STATUS_WAITING_FOR_AUTH, /* Since: 1.0.0 */
FWUPD_STATUS_DEVICE_BUSY, /* Since: 1.0.1 */
FWUPD_STATUS_SHUTDOWN, /* Since: 1.2.1 */
/*< private >*/
FWUPD_STATUS_LAST
} FwupdStatus;
/**
* FwupdTrustFlags:
* @FWUPD_TRUST_FLAG_NONE: No trust
* @FWUPD_TRUST_FLAG_PAYLOAD: The firmware is trusted
* @FWUPD_TRUST_FLAG_METADATA: The metadata is trusted
*
* The flags to show the level of trust.
**/
typedef enum {
FWUPD_TRUST_FLAG_NONE = 0, /* Since: 0.1.2 */
FWUPD_TRUST_FLAG_PAYLOAD = 1 << 0, /* Since: 0.1.2 */
FWUPD_TRUST_FLAG_METADATA = 1 << 1, /* Since: 0.1.2 */
/*< private >*/
FWUPD_TRUST_FLAG_LAST
} FwupdTrustFlags;
/**
* FwupdFeatureFlags:
* @FWUPD_FEATURE_FLAG_NONE: No trust
* @FWUPD_FEATURE_FLAG_CAN_REPORT: Can upload a report of the update back to the server
* @FWUPD_FEATURE_FLAG_DETACH_ACTION: Can perform detach action, typically showing text
* @FWUPD_FEATURE_FLAG_UPDATE_ACTION: Can perform update action, typically showing text
* @FWUPD_FEATURE_FLAG_SWITCH_BRANCH: Can switch the firmware branch
* @FWUPD_FEATURE_FLAG_REQUESTS: Can show interactive requests
*
* The flags to the feature capabilities of the front-end client.
**/
typedef enum {
FWUPD_FEATURE_FLAG_NONE = 0, /* Since: 1.4.5 */
FWUPD_FEATURE_FLAG_CAN_REPORT = 1 << 0, /* Since: 1.4.5 */
FWUPD_FEATURE_FLAG_DETACH_ACTION = 1 << 1, /* Since: 1.4.5 */
FWUPD_FEATURE_FLAG_UPDATE_ACTION = 1 << 2, /* Since: 1.4.5 */
FWUPD_FEATURE_FLAG_SWITCH_BRANCH = 1 << 3, /* Since: 1.5.0 */
FWUPD_FEATURE_FLAG_REQUESTS = 1 << 4, /* Since: 1.6.2 */
/*< private >*/
FWUPD_FEATURE_FLAG_LAST
} FwupdFeatureFlags;
/**
* FWUPD_DEVICE_FLAG_NONE:
*
* No flags set
*
* Since 0.1.3
*/
#define FWUPD_DEVICE_FLAG_NONE (0u)
/**
* FWUPD_DEVICE_FLAG_INTERNAL:
*
* Device is internal to the platform and cannot be removed easily.
*
* Since 0.1.3
*/
#define FWUPD_DEVICE_FLAG_INTERNAL (1u << 0)
/**
* FWUPD_DEVICE_FLAG_UPDATABLE:
*
* Device has the ability to be updated in this or any other mode.
*
* Since 0.9.7
*/
#define FWUPD_DEVICE_FLAG_UPDATABLE (1u << 1)
/**
* FWUPD_DEVICE_FLAG_ONLY_OFFLINE:
*
* Update can only be done from a limited functionality OS (offline mode).
*
* Since 0.9.7
*/
#define FWUPD_DEVICE_FLAG_ONLY_OFFLINE (1u << 2)
/**
* FWUPD_DEVICE_FLAG_REQUIRE_AC:
*
* Device requires an external power source to be connected or the battery
* level at a minimum threshold to update.
*
* Since 0.6.3
*/
#define FWUPD_DEVICE_FLAG_REQUIRE_AC (1u << 3)
/**
* FWUPD_DEVICE_FLAG_LOCKED:
*
* The device can not be updated without manual user interaction.
*
* Since 0.6.3
*/
#define FWUPD_DEVICE_FLAG_LOCKED (1u << 4)
/**
* FWUPD_DEVICE_FLAG_SUPPORTED:
*
* The device is found in metadata loaded into the daemon.
*
* Since 0.7.1
*/
#define FWUPD_DEVICE_FLAG_SUPPORTED (1u << 5)
/**
* FWUPD_DEVICE_FLAG_NEEDS_BOOTLOADER:
*
* The device requires entering a bootloader mode to be manually.
*
* Since 0.7.3
*/
#define FWUPD_DEVICE_FLAG_NEEDS_BOOTLOADER (1u << 6)
/**
* FWUPD_DEVICE_FLAG_REGISTERED:
*
* The device has been registered with other plugins.
*
* Since 0.9.7
*/
#define FWUPD_DEVICE_FLAG_REGISTERED (1u << 7)
/**
* FWUPD_DEVICE_FLAG_NEEDS_REBOOT:
*
* The device requires a system reboot to apply firmware or to reload hardware.
*
* Since 0.9.7
*/
#define FWUPD_DEVICE_FLAG_NEEDS_REBOOT (1u << 8)
/**
* FWUPD_DEVICE_FLAG_REPORTED:
*
* The success or failure of a previous update has been reported to a metadata server.
*
* Since: 1.0.4
*/
#define FWUPD_DEVICE_FLAG_REPORTED (1u << 9)
/**
* FWUPD_DEVICE_FLAG_NOTIFIED:
*
* The user has been notified about a change in the device state.
*
* Since: 1.0.5
*/
#define FWUPD_DEVICE_FLAG_NOTIFIED (1u << 10)
/**
* FWUPD_DEVICE_FLAG_USE_RUNTIME_VERSION:
*
* The device will always display use the runtime version rather than the bootloader version.
*
* Since: 1.0.6
*/
#define FWUPD_DEVICE_FLAG_USE_RUNTIME_VERSION (1u << 11)
/**
* FWUPD_DEVICE_FLAG_INSTALL_PARENT_FIRST:
*
* The composite device requires installation of composite firmware on the parent before the child.
* Normally the child is installed before the parent.
*
* Since: 1.0.8
*/
#define FWUPD_DEVICE_FLAG_INSTALL_PARENT_FIRST (1u << 12)
/**
* FWUPD_DEVICE_FLAG_IS_BOOTLOADER:
*
* The device is currently in a read-only bootloader mode and not running application code.
*
* Since: 1.0.8
*/
#define FWUPD_DEVICE_FLAG_IS_BOOTLOADER (1u << 13)
/**
* FWUPD_DEVICE_FLAG_WAIT_FOR_REPLUG:
*
* The device is in the middle of and update and the hardware is waiting to be probed/replugged.
*
* Since: 1.1.2
*/
#define FWUPD_DEVICE_FLAG_WAIT_FOR_REPLUG (1u << 14)
/**
* FWUPD_DEVICE_FLAG_IGNORE_VALIDATION:
*
* When processing an update for the device, plugins should ignore all validation safety checks.
*
* Since: 1.1.2
*/
#define FWUPD_DEVICE_FLAG_IGNORE_VALIDATION (1u << 15)
/**
* FWUPD_DEVICE_FLAG_TRUSTED:
*
* A trusted client is reading information about the device.
* Extra metadata such as serial number can be exposed about this device.
*
* Since: 1.1.2
*/
#define FWUPD_DEVICE_FLAG_TRUSTED (1u << 16)
/**
* FWUPD_DEVICE_FLAG_NEEDS_SHUTDOWN:
*
* The device requires the system to be shutdown to finish application of new firmware.
*
* Since: 1.2.4
*/
#define FWUPD_DEVICE_FLAG_NEEDS_SHUTDOWN (1u << 17)
/**
* FWUPD_DEVICE_FLAG_ANOTHER_WRITE_REQUIRED:
*
* The device requires the update to be retried, possibly with a different plugin.
*
* Since: 1.2.5
*/
#define FWUPD_DEVICE_FLAG_ANOTHER_WRITE_REQUIRED (1u << 18)
/**
* FWUPD_DEVICE_FLAG_NO_AUTO_INSTANCE_IDS:
*
* Deprecated, no not use
*
* Since: 1.2.5
* Deprecated 1.5.5
*/
#define FWUPD_DEVICE_FLAG_NO_AUTO_INSTANCE_IDS (1u << 19)
/**
* FWUPD_DEVICE_FLAG_NEEDS_ACTIVATION:
*
* The device update needs to be separately activated.
* This process may occur automatically on shutdown in some operating systems
* or when the device is unplugged with some devices.
*
* Since: 1.2.6
*/
#define FWUPD_DEVICE_FLAG_NEEDS_ACTIVATION (1u << 20)
/**
* FWUPD_DEVICE_FLAG_ENSURE_SEMVER:
*
* Deprecated, no not use
*
* Since: 1.2.9
* Deprecate: 1.5.5
*/
#define FWUPD_DEVICE_FLAG_ENSURE_SEMVER (1u << 21)
/**
* FWUPD_DEVICE_FLAG_HISTORICAL:
*
* The device is used for historical data only.
*
* Since: 1.3.2
*/
#define FWUPD_DEVICE_FLAG_HISTORICAL (1u << 22)
/**
* FWUPD_DEVICE_FLAG_ONLY_SUPPORTED:
*
* Deprecated, no not use
*
* Since: 1.3.3
* Deprecated 1.5.5
*/
#define FWUPD_DEVICE_FLAG_ONLY_SUPPORTED (1u << 23)
/**
* FWUPD_DEVICE_FLAG_WILL_DISAPPEAR:
*
* The device will disappear after the update is complete and success
* or failure can't be verified.
*
* Since: 1.3.3
*/
#define FWUPD_DEVICE_FLAG_WILL_DISAPPEAR (1u << 24)
/**
* FWUPD_DEVICE_FLAG_CAN_VERIFY:
*
* THe device checksums can be compared against metadata.
*
* Since: 1.3.3
*/
#define FWUPD_DEVICE_FLAG_CAN_VERIFY (1u << 25)
/**
* FWUPD_DEVICE_FLAG_CAN_VERIFY_IMAGE:
*
* The device application firmware image can be dumped from device for verification.
*
* Since: 1.3.3
*/
#define FWUPD_DEVICE_FLAG_CAN_VERIFY_IMAGE (1u << 26)
/**
* FWUPD_DEVICE_FLAG_DUAL_IMAGE:
*
* The device firmware update architecture uses a redundancy mechanism such
* as A/B partitions for updates.
*
* Since: 1.3.3
*/
#define FWUPD_DEVICE_FLAG_DUAL_IMAGE (1u << 27)
/**
* FWUPD_DEVICE_FLAG_SELF_RECOVERY:
*
* In flashing mode, the device will only accept intended payloads and will
* revert back to a valid firmware image if an invalid or incomplete payload was sent.
*
* Since: 1.3.3
*/
#define FWUPD_DEVICE_FLAG_SELF_RECOVERY (1u << 28)
/**
* FWUPD_DEVICE_FLAG_USABLE_DURING_UPDATE:
*
* The device remains usable while the update flashes or schedules the update.
* The update will implicitly be applied next time the device is power cycled or possibly activated.
*
* Since: 1.3.3
*/
#define FWUPD_DEVICE_FLAG_USABLE_DURING_UPDATE (1u << 29)
/**
* FWUPD_DEVICE_FLAG_VERSION_CHECK_REQUIRED:
*
* All firmware updates for this device require a firmware version check.
*
* Since: 1.3.7
*/
#define FWUPD_DEVICE_FLAG_VERSION_CHECK_REQUIRED (1u << 30)
/**
* FWUPD_DEVICE_FLAG_INSTALL_ALL_RELEASES:
*
* Install each intermediate releases for the device rather than jumping directly to the newest.
*
* Since: 1.3.7
*/
#define FWUPD_DEVICE_FLAG_INSTALL_ALL_RELEASES (1u << 31)
/**
* FWUPD_DEVICE_FLAG_MD_SET_NAME:
*
* Deprecated, no not use
*
* Since: 1.4.0
* Deprecated 1.5.5
*/
#define FWUPD_DEVICE_FLAG_MD_SET_NAME (1llu << 32)
/**
* FWUPD_DEVICE_FLAG_MD_SET_NAME_CATEGORY:
*
* Deprecated, no not use
*
* Since: 1.4.0
* Deprecated 1.5.5
*/
#define FWUPD_DEVICE_FLAG_MD_SET_NAME_CATEGORY (1llu << 33)
/**
* FWUPD_DEVICE_FLAG_MD_SET_VERFMT:
*
* Deprecated, no not use
*
* Since: 1.4.0
* Deprecated 1.5.5
*/
#define FWUPD_DEVICE_FLAG_MD_SET_VERFMT (1llu << 34)
/**
* FWUPD_DEVICE_FLAG_ADD_COUNTERPART_GUIDS:
*
* The device will add counterpart GUIDs from an alternate mode like bootloader.
* This flag is typically specified in a quirk.
*
* Since: 1.4.0
*/
#define FWUPD_DEVICE_FLAG_ADD_COUNTERPART_GUIDS (1llu << 35)
/**
* FWUPD_DEVICE_FLAG_NO_GUID_MATCHING:
*
* Deprecated, no not use
*
* Since: 1.4.1
* Deprecated 1.5.8
*/
#define FWUPD_DEVICE_FLAG_NO_GUID_MATCHING (1llu << 36)
/**
* FWUPD_DEVICE_FLAG_UPDATABLE_HIDDEN:
*
* The device is updatable but is currently inhbitied from updates in the client.
* Reasons include but are not limited to low power or requiring reboot from a previous update.
*
* Since: 1.4.1
*/
#define FWUPD_DEVICE_FLAG_UPDATABLE_HIDDEN (1llu << 37)
/**
* FWUPD_DEVICE_FLAG_SKIPS_RESTART:
*
* The device relies upon activation or power cycle to load firmware.
*
* Since: 1.5.0
*/
#define FWUPD_DEVICE_FLAG_SKIPS_RESTART (1llu << 38)
/**
* FWUPD_DEVICE_FLAG_HAS_MULTIPLE_BRANCHES:
*
* The device supports switching to a different stream of firmware.
*
* Since: 1.5.0
*/
#define FWUPD_DEVICE_FLAG_HAS_MULTIPLE_BRANCHES (1llu << 39)
/**
* FWUPD_DEVICE_FLAG_BACKUP_BEFORE_INSTALL:
*
* The device firmware should be saved before installing firmware.
*
* Since: 1.5.0
*/
#define FWUPD_DEVICE_FLAG_BACKUP_BEFORE_INSTALL (1llu << 40)
/**
* FWUPD_DEVICE_FLAG_MD_SET_ICON:
*
*Deprecated, no not use
*
* Since: 1.5.2
* Deprecated 1.5.5
*/
#define FWUPD_DEVICE_FLAG_MD_SET_ICON (1llu << 41)
/**
* FWUPD_DEVICE_FLAG_WILDCARD_INSTALL:
*
* All devices with matching GUIDs will be updated at the same time.
*
* For some devices it is not possible to have different versions of firmware
* for hardware of the same type. Updating one device will force update of
* others with exactly the same instance IDs.
*
* Since: 1.6.2
*/
#define FWUPD_DEVICE_FLAG_WILDCARD_INSTALL (1llu << 42)
/**
* FWUPD_DEVICE_FLAG_ONLY_VERSION_UPGRADE:
*
* The device firmware can only be updated to a newer version and never downgraded or reinstalled.
*
* Since 1.6.2
*/
#define FWUPD_DEVICE_FLAG_ONLY_VERSION_UPGRADE (1llu << 43)
/**
* FWUPD_DEVICE_FLAG_UNKNOWN:
*
* This flag is not defined, this typically will happen from mismatched
* fwupd library and clients.
*
* Since 0.7.3
*/
#define FWUPD_DEVICE_FLAG_UNKNOWN G_MAXUINT64
/**
* FwupdDeviceFlags:
*
* Flags used to represent device attributes
*/
typedef guint64 FwupdDeviceFlags;
/**
* FWUPD_RELEASE_FLAG_NONE:
*
* No flags are set.
*
* Since: 1.2.6
*/
#define FWUPD_RELEASE_FLAG_NONE (0u)
/**
* FWUPD_RELEASE_FLAG_TRUSTED_PAYLOAD:
*
* The payload binary is trusted.
*
* Since: 1.2.6
*/
#define FWUPD_RELEASE_FLAG_TRUSTED_PAYLOAD (1u << 0)
/**
* FWUPD_RELEASE_FLAG_TRUSTED_METADATA:
*
* The payload metadata is trusted.
*
* Since: 1.2.6
*/
#define FWUPD_RELEASE_FLAG_TRUSTED_METADATA (1u << 1)
/**
* FWUPD_RELEASE_FLAG_IS_UPGRADE:
*
* The release is newer than the device version.
*
* Since: 1.2.6
*/
#define FWUPD_RELEASE_FLAG_IS_UPGRADE (1u << 2)
/**
* FWUPD_RELEASE_FLAG_IS_DOWNGRADE:
*
* The release is older than the device version.
*
* Since: 1.2.6
*/
#define FWUPD_RELEASE_FLAG_IS_DOWNGRADE (1u << 3)
/**
* FWUPD_RELEASE_FLAG_BLOCKED_VERSION:
*
* The installation of the release is blocked as below device version-lowest.
*
* Since: 1.2.6
*/
#define FWUPD_RELEASE_FLAG_BLOCKED_VERSION (1u << 4)
/**
* FWUPD_RELEASE_FLAG_BLOCKED_APPROVAL:
*
* The installation of the release is blocked as release not approved by an administrator.
*
* Since: 1.2.6
*/
#define FWUPD_RELEASE_FLAG_BLOCKED_APPROVAL (1u << 5)
/**
* FWUPD_RELEASE_FLAG_IS_ALTERNATE_BRANCH:
*
* The release is an alternate branch of firmware.
*
* Since: 1.5.0
*/
#define FWUPD_RELEASE_FLAG_IS_ALTERNATE_BRANCH (1u << 6)
/**
* FWUPD_RELEASE_FLAG_UNKNOWN:
*
* The release flag is unknown, typically caused by using mismatched client and daemon.
*
* Since: 1.2.6
*/
#define FWUPD_RELEASE_FLAG_UNKNOWN G_MAXUINT64
/**
* FwupdReleaseFlags:
*
* Flags used to represent release attributes
*/
typedef guint64 FwupdReleaseFlags;
/**
* FwupdReleaseUrgency:
* @FWUPD_RELEASE_URGENCY_UNKNOWN: Unknown
* @FWUPD_RELEASE_URGENCY_LOW: Low
* @FWUPD_RELEASE_URGENCY_MEDIUM: Medium
* @FWUPD_RELEASE_URGENCY_HIGH: High
* @FWUPD_RELEASE_URGENCY_CRITICAL: Critical, e.g. a security fix
*
* The release urgency.
**/
typedef enum {
FWUPD_RELEASE_URGENCY_UNKNOWN, /* Since: 1.4.0 */
FWUPD_RELEASE_URGENCY_LOW, /* Since: 1.4.0 */
FWUPD_RELEASE_URGENCY_MEDIUM, /* Since: 1.4.0 */
FWUPD_RELEASE_URGENCY_HIGH, /* Since: 1.4.0 */
FWUPD_RELEASE_URGENCY_CRITICAL, /* Since: 1.4.0 */
/*< private >*/
FWUPD_RELEASE_URGENCY_LAST
} FwupdReleaseUrgency;
/**
* FWUPD_PLUGIN_FLAG_NONE:
*
* No plugin flags are set.
*
* Since: 1.5.0
*/
#define FWUPD_PLUGIN_FLAG_NONE (0u)
/**
* FWUPD_PLUGIN_FLAG_DISABLED:
*
* The plugin has been disabled, either by daemon configuration or a problem.
*
* Since: 1.5.0
*/
#define FWUPD_PLUGIN_FLAG_DISABLED (1u << 0)
/**
* FWUPD_PLUGIN_FLAG_USER_WARNING:
*
* The plugin has a problem and would like to show a user warning to a supported client.
*
* Since: 1.5.0
*/
#define FWUPD_PLUGIN_FLAG_USER_WARNING (1u << 1)
/**
* FWUPD_PLUGIN_FLAG_CLEAR_UPDATABLE:
*
* When the plugin loads it should clear the UPDATABLE flag from any devices.
* This typically happens when the device requires a system restart.
*
* Since: 1.5.0
*/
#define FWUPD_PLUGIN_FLAG_CLEAR_UPDATABLE (1u << 2)
/**
* FWUPD_PLUGIN_FLAG_NO_HARDWARE:
*
* The plugin won't load because no supported hardware was found.
* This typically happens with plugins designed for a specific platform design
* (such as the dell plugin only works on Dell systems).
*
* Since: 1.5.0
*/
#define FWUPD_PLUGIN_FLAG_NO_HARDWARE (1u << 3)
/**
* FWUPD_PLUGIN_FLAG_CAPSULES_UNSUPPORTED:
*
* The plugin discovered that UEFI UpdateCapsule are unsupported.
* Supported clients will display this information to a user.
*
* Since: 1.5.0
*/
#define FWUPD_PLUGIN_FLAG_CAPSULES_UNSUPPORTED (1u << 4)
/**
* FWUPD_PLUGIN_FLAG_UNLOCK_REQUIRED:
*
* The plugin discovered that hardware unlock is required.
* Supported clients will display this information to a user.
*
* Since: 1.5.0
*/
#define FWUPD_PLUGIN_FLAG_UNLOCK_REQUIRED (1u << 5)
/**
* FWUPD_PLUGIN_FLAG_EFIVAR_NOT_MOUNTED:
*
* The plugin discovered the efivar filesystem is not found and is required for this plugin.
* Supported clients will display this information to a user.
*
* Since: 1.5.0
*/
#define FWUPD_PLUGIN_FLAG_EFIVAR_NOT_MOUNTED (1u << 6)
/**
* FWUPD_PLUGIN_FLAG_ESP_NOT_FOUND:
*
* The plugins discovered that the EFI system partition was not found.
* Supported clients will display this information to a user.
*
* Since: 1.5.0
*/
#define FWUPD_PLUGIN_FLAG_ESP_NOT_FOUND (1u << 7)
/**
* FWUPD_PLUGIN_FLAG_LEGACY_BIOS:
*
* The plugin discovered the system is running in legacy CSM mode.
* Supported clients will display this information to a user.
*
* Since: 1.5.0
*/
#define FWUPD_PLUGIN_FLAG_LEGACY_BIOS (1u << 8)
/**
* FWUPD_PLUGIN_FLAG_FAILED_OPEN:
*
* Failed to open plugin (missing dependency).
* Supported clients will display this information to a user.
*
* Since: 1.5.0
*/
#define FWUPD_PLUGIN_FLAG_FAILED_OPEN (1u << 9)
/**
* FWUPD_PLUGIN_FLAG_REQUIRE_HWID:
*
* A specific HWID is required to use this plugin.
*
* Since: 1.5.8
*/
#define FWUPD_PLUGIN_FLAG_REQUIRE_HWID (1u << 10)
/**
* FWUPD_PLUGIN_FLAG_KERNEL_TOO_OLD:
*
* The feature is not supported as the kernel is too old.
*
* Since: 1.6.2
*/
#define FWUPD_PLUGIN_FLAG_KERNEL_TOO_OLD (1u << 11)
/**
* FWUPD_PLUGIN_FLAG_AUTH_REQUIRED:
*
* The plugin requires the user to provide authentication details.
* Supported clients will display this information to a user.
*
* Since: 1.6.2
*/
#define FWUPD_PLUGIN_FLAG_AUTH_REQUIRED (1u << 12)
/**
* FWUPD_PLUGIN_FLAG_UNKNOWN:
*
* The plugin flag is Unknown.
* This is usually caused by a mismatched libfwupdplugin and daemon.
*
* Since: 1.5.0
*/
#define FWUPD_PLUGIN_FLAG_UNKNOWN G_MAXUINT64
/**
* FwupdPluginFlags:
*
* Flags used to represent plugin attributes
*/
typedef guint64 FwupdPluginFlags;
/**
* FwupdInstallFlags:
* @FWUPD_INSTALL_FLAG_NONE: No flags set
* @FWUPD_INSTALL_FLAG_OFFLINE: Schedule this for next boot
* @FWUPD_INSTALL_FLAG_ALLOW_REINSTALL: Allow reinstalling the same version
* @FWUPD_INSTALL_FLAG_ALLOW_OLDER: Allow downgrading firmware
* @FWUPD_INSTALL_FLAG_FORCE: Force the update even if not a good idea
* @FWUPD_INSTALL_FLAG_NO_HISTORY: Do not write to the history database
* @FWUPD_INSTALL_FLAG_ALLOW_BRANCH_SWITCH: Allow firmware branch switching
* @FWUPD_INSTALL_FLAG_IGNORE_CHECKSUM: Ignore firmware CRCs and checksums
* @FWUPD_INSTALL_FLAG_IGNORE_VID_PID: Ignore firmware vendor and project checks
* @FWUPD_INSTALL_FLAG_IGNORE_POWER: Ignore requirement of external power source
* @FWUPD_INSTALL_FLAG_NO_SEARCH: Do not use heuristics when parsing the image
*
* Flags to set when performing the firmware update or install.
**/
typedef enum {
FWUPD_INSTALL_FLAG_NONE = 0, /* Since: 0.7.0 */
FWUPD_INSTALL_FLAG_OFFLINE = 1 << 0, /* Since: 0.7.0 */
FWUPD_INSTALL_FLAG_ALLOW_REINSTALL = 1 << 1, /* Since: 0.7.0 */
FWUPD_INSTALL_FLAG_ALLOW_OLDER = 1 << 2, /* Since: 0.7.0 */
FWUPD_INSTALL_FLAG_FORCE = 1 << 3, /* Since: 0.7.1 */
FWUPD_INSTALL_FLAG_NO_HISTORY = 1 << 4, /* Since: 1.0.8 */
FWUPD_INSTALL_FLAG_ALLOW_BRANCH_SWITCH = 1 << 5, /* Since: 1.5.0 */
FWUPD_INSTALL_FLAG_IGNORE_CHECKSUM = 1 << 6, /* Since: 1.5.0 */
FWUPD_INSTALL_FLAG_IGNORE_VID_PID = 1 << 7, /* Since: 1.5.0 */
FWUPD_INSTALL_FLAG_IGNORE_POWER = 1 << 8, /* Since: 1.5.0 */
FWUPD_INSTALL_FLAG_NO_SEARCH = 1 << 9, /* Since: 1.5.0 */
/*< private >*/
FWUPD_INSTALL_FLAG_LAST
} FwupdInstallFlags;
/**
* FwupdSelfSignFlags:
* @FWUPD_SELF_SIGN_FLAG_NONE: No flags set
* @FWUPD_SELF_SIGN_FLAG_ADD_TIMESTAMP: Add the timestamp to the detached signature
* @FWUPD_SELF_SIGN_FLAG_ADD_CERT: Add the certificate to the detached signature
*
* Flags to set when performing the firmware update or install.
**/
typedef enum {
FWUPD_SELF_SIGN_FLAG_NONE = 0, /* Since: 1.2.6 */
FWUPD_SELF_SIGN_FLAG_ADD_TIMESTAMP = 1 << 0, /* Since: 1.2.6 */
FWUPD_SELF_SIGN_FLAG_ADD_CERT = 1 << 1, /* Since: 1.2.6 */
/*< private >*/
FWUPD_SELF_SIGN_FLAG_LAST
} FwupdSelfSignFlags;
/**
* FwupdUpdateState:
* @FWUPD_UPDATE_STATE_UNKNOWN: Unknown
* @FWUPD_UPDATE_STATE_PENDING: Update is pending
* @FWUPD_UPDATE_STATE_SUCCESS: Update was successful
* @FWUPD_UPDATE_STATE_FAILED: Update failed
* @FWUPD_UPDATE_STATE_NEEDS_REBOOT: Waiting for a reboot to apply
* @FWUPD_UPDATE_STATE_FAILED_TRANSIENT: Update failed due to transient issue, e.g. AC power required
*
* The update state.
**/
typedef enum {
FWUPD_UPDATE_STATE_UNKNOWN, /* Since: 0.7.0 */
FWUPD_UPDATE_STATE_PENDING, /* Since: 0.7.0 */
FWUPD_UPDATE_STATE_SUCCESS, /* Since: 0.7.0 */
FWUPD_UPDATE_STATE_FAILED, /* Since: 0.7.0 */
FWUPD_UPDATE_STATE_NEEDS_REBOOT, /* Since: 1.0.4 */
FWUPD_UPDATE_STATE_FAILED_TRANSIENT, /* Since: 1.2.7 */
/*< private >*/
FWUPD_UPDATE_STATE_LAST
} FwupdUpdateState;
/**
* FwupdKeyringKind:
* @FWUPD_KEYRING_KIND_UNKNOWN: Unknown
* @FWUPD_KEYRING_KIND_NONE: No verification
* @FWUPD_KEYRING_KIND_GPG: Verification using GPG
* @FWUPD_KEYRING_KIND_PKCS7: Verification using PKCS7
* @FWUPD_KEYRING_KIND_JCAT: Verification using Jcat
*
* The update state.
**/
typedef enum {
FWUPD_KEYRING_KIND_UNKNOWN, /* Since: 0.9.7 */
FWUPD_KEYRING_KIND_NONE, /* Since: 0.9.7 */
FWUPD_KEYRING_KIND_GPG, /* Since: 0.9.7 */
FWUPD_KEYRING_KIND_PKCS7, /* Since: 0.9.7 */
FWUPD_KEYRING_KIND_JCAT, /* Since: 1.4.0 */
/*< private >*/
FWUPD_KEYRING_KIND_LAST
} FwupdKeyringKind;
/**
* FwupdVersionFormat:
* @FWUPD_VERSION_FORMAT_UNKNOWN: Unknown version format
* @FWUPD_VERSION_FORMAT_PLAIN: An unidentified format text string
* @FWUPD_VERSION_FORMAT_NUMBER: A single integer version number
* @FWUPD_VERSION_FORMAT_PAIR: Two AABB.CCDD version numbers
* @FWUPD_VERSION_FORMAT_TRIPLET: Microsoft-style AA.BB.CCDD version numbers
* @FWUPD_VERSION_FORMAT_QUAD: UEFI-style AA.BB.CC.DD version numbers
* @FWUPD_VERSION_FORMAT_BCD: Binary coded decimal notation
* @FWUPD_VERSION_FORMAT_INTEL_ME: Intel ME-style bitshifted notation
* @FWUPD_VERSION_FORMAT_INTEL_ME2: Intel ME-style A.B.CC.DDDD notation notation
* @FWUPD_VERSION_FORMAT_SURFACE_LEGACY: Legacy Microsoft Surface 10b.12b.10b
* @FWUPD_VERSION_FORMAT_SURFACE: Microsoft Surface 8b.16b.8b
* @FWUPD_VERSION_FORMAT_DELL_BIOS: Dell BIOS BB.CC.DD style
* @FWUPD_VERSION_FORMAT_HEX: Hexadecimal 0xAABCCDD style
*
* The flags used when parsing version numbers.
*
* If no verification is required then %FWUPD_VERSION_FORMAT_PLAIN should
* be used to signify an unparsable text string.
**/
typedef enum {
FWUPD_VERSION_FORMAT_UNKNOWN, /* Since: 1.2.9 */
FWUPD_VERSION_FORMAT_PLAIN, /* Since: 1.2.9 */
FWUPD_VERSION_FORMAT_NUMBER, /* Since: 1.2.9 */
FWUPD_VERSION_FORMAT_PAIR, /* Since: 1.2.9 */
FWUPD_VERSION_FORMAT_TRIPLET, /* Since: 1.2.9 */
FWUPD_VERSION_FORMAT_QUAD, /* Since: 1.2.9 */
FWUPD_VERSION_FORMAT_BCD, /* Since: 1.2.9 */
FWUPD_VERSION_FORMAT_INTEL_ME, /* Since: 1.2.9 */
FWUPD_VERSION_FORMAT_INTEL_ME2, /* Since: 1.2.9 */
FWUPD_VERSION_FORMAT_SURFACE_LEGACY, /* Since: 1.3.4 */
FWUPD_VERSION_FORMAT_SURFACE, /* Since: 1.3.4 */
FWUPD_VERSION_FORMAT_DELL_BIOS, /* Since: 1.3.6 */
FWUPD_VERSION_FORMAT_HEX, /* Since: 1.4.0 */
/*< private >*/
FWUPD_VERSION_FORMAT_LAST
} FwupdVersionFormat;
const gchar *fwupd_status_to_string (FwupdStatus status);
FwupdStatus fwupd_status_from_string (const gchar *status);
const gchar *fwupd_device_flag_to_string (FwupdDeviceFlags device_flag);
FwupdDeviceFlags fwupd_device_flag_from_string (const gchar *device_flag);
const gchar *fwupd_plugin_flag_to_string (FwupdPluginFlags plugin_flag);
FwupdPluginFlags fwupd_plugin_flag_from_string (const gchar *plugin_flag);
const gchar *fwupd_release_flag_to_string (FwupdReleaseFlags release_flag);
FwupdReleaseFlags fwupd_release_flag_from_string (const gchar *release_flag);
const gchar *fwupd_release_urgency_to_string (FwupdReleaseUrgency release_urgency);
FwupdReleaseUrgency fwupd_release_urgency_from_string (const gchar *release_urgency);
const gchar *fwupd_update_state_to_string (FwupdUpdateState update_state);
FwupdUpdateState fwupd_update_state_from_string (const gchar *update_state);
const gchar *fwupd_trust_flag_to_string (FwupdTrustFlags trust_flag);
FwupdTrustFlags fwupd_trust_flag_from_string (const gchar *trust_flag);
const gchar *fwupd_feature_flag_to_string (FwupdFeatureFlags feature_flag);
FwupdFeatureFlags fwupd_feature_flag_from_string (const gchar *feature_flag);
FwupdKeyringKind fwupd_keyring_kind_from_string (const gchar *keyring_kind);
const gchar *fwupd_keyring_kind_to_string (FwupdKeyringKind keyring_kind);
FwupdVersionFormat fwupd_version_format_from_string (const gchar *str);
const gchar *fwupd_version_format_to_string (FwupdVersionFormat kind);
G_END_DECLS