mirror of
https://git.proxmox.com/git/fwupd
synced 2025-05-11 01:17:17 +00:00
876 lines
25 KiB
C
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
|