mirror of
https://git.proxmox.com/git/fwupd
synced 2025-07-10 05:54:04 +00:00

We now have two plugins getting the ESP values, and we only allow hardcoding the ESP in uefi_capsule.conf. Make all this a lot simpler by moving the ESP+BDP code to `FuContext`, which also means we can handle the override (via the config file) in the engine, and the override (in the command line tools) using the same mechanism. Also, automate the migration of the `OverrideESPMountPoint` -> `EspLocation` when loading the engine. Fixes https://github.com/fwupd/fwupd/issues/5042
129 lines
3.3 KiB
C
129 lines
3.3 KiB
C
/*
|
|
* Copyright (C) 2021 Richard Hughes <richard@hughsie.com>
|
|
*
|
|
* SPDX-License-Identifier: LGPL-2.1+
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <gio/gio.h>
|
|
|
|
#include "fu-bios-settings.h"
|
|
#include "fu-common.h"
|
|
|
|
#define FU_TYPE_CONTEXT (fu_context_get_type())
|
|
G_DECLARE_DERIVABLE_TYPE(FuContext, fu_context, FU, CONTEXT, GObject)
|
|
|
|
struct _FuContextClass {
|
|
GObjectClass parent_class;
|
|
/* signals */
|
|
void (*security_changed)(FuContext *self);
|
|
/*< private >*/
|
|
gpointer padding[30];
|
|
};
|
|
|
|
/**
|
|
* FuContextLookupIter:
|
|
* @self: a #FuContext
|
|
* @key: a key
|
|
* @value: a value
|
|
* @user_data: user data
|
|
*
|
|
* The context lookup iteration callback.
|
|
*/
|
|
typedef void (*FuContextLookupIter)(FuContext *self,
|
|
const gchar *key,
|
|
const gchar *value,
|
|
gpointer user_data);
|
|
|
|
/**
|
|
* FU_CONTEXT_FLAG_NONE:
|
|
*
|
|
* No flags set.
|
|
*
|
|
* Since: 1.8.5
|
|
**/
|
|
#define FU_CONTEXT_FLAG_NONE (0u)
|
|
|
|
/**
|
|
* FU_CONTEXT_FLAG_SAVE_EVENTS:
|
|
*
|
|
* Save events so that they can be replayed to emulate devices.
|
|
*
|
|
* Since: 1.8.5
|
|
**/
|
|
#define FU_CONTEXT_FLAG_SAVE_EVENTS (1u << 0)
|
|
|
|
/**
|
|
* FuContextFlags:
|
|
*
|
|
* The context flags.
|
|
**/
|
|
typedef guint64 FuContextFlags;
|
|
|
|
void
|
|
fu_context_add_flag(FuContext *context, FuContextFlags flag);
|
|
gboolean
|
|
fu_context_has_flag(FuContext *context, FuContextFlags flag);
|
|
|
|
const gchar *
|
|
fu_context_get_smbios_string(FuContext *self, guint8 structure_type, guint8 offset);
|
|
guint
|
|
fu_context_get_smbios_integer(FuContext *self, guint8 type, guint8 offset);
|
|
GBytes *
|
|
fu_context_get_smbios_data(FuContext *self, guint8 structure_type);
|
|
gboolean
|
|
fu_context_has_hwid_guid(FuContext *self, const gchar *guid);
|
|
GPtrArray *
|
|
fu_context_get_hwid_guids(FuContext *self);
|
|
gboolean
|
|
fu_context_has_hwid_flag(FuContext *self, const gchar *flag);
|
|
const gchar *
|
|
fu_context_get_hwid_value(FuContext *self, const gchar *key);
|
|
gchar *
|
|
fu_context_get_hwid_replace_value(FuContext *self,
|
|
const gchar *keys,
|
|
GError **error) G_GNUC_WARN_UNUSED_RESULT;
|
|
void
|
|
fu_context_add_runtime_version(FuContext *self, const gchar *component_id, const gchar *version);
|
|
void
|
|
fu_context_add_compile_version(FuContext *self, const gchar *component_id, const gchar *version);
|
|
const gchar *
|
|
fu_context_lookup_quirk_by_id(FuContext *self, const gchar *guid, const gchar *key);
|
|
gboolean
|
|
fu_context_lookup_quirk_by_id_iter(FuContext *self,
|
|
const gchar *guid,
|
|
FuContextLookupIter iter_cb,
|
|
gpointer user_data);
|
|
void
|
|
fu_context_add_quirk_key(FuContext *self, const gchar *key);
|
|
void
|
|
fu_context_security_changed(FuContext *self);
|
|
|
|
FuBatteryState
|
|
fu_context_get_battery_state(FuContext *self);
|
|
void
|
|
fu_context_set_battery_state(FuContext *self, FuBatteryState battery_state);
|
|
FuLidState
|
|
fu_context_get_lid_state(FuContext *self);
|
|
void
|
|
fu_context_set_lid_state(FuContext *self, FuLidState lid_state);
|
|
guint
|
|
fu_context_get_battery_level(FuContext *self);
|
|
void
|
|
fu_context_set_battery_level(FuContext *self, guint battery_level);
|
|
guint
|
|
fu_context_get_battery_threshold(FuContext *self);
|
|
void
|
|
fu_context_set_battery_threshold(FuContext *self, guint battery_threshold);
|
|
|
|
FuBiosSettings *
|
|
fu_context_get_bios_settings(FuContext *self);
|
|
gboolean
|
|
fu_context_get_bios_setting_pending_reboot(FuContext *self);
|
|
FwupdBiosSetting *
|
|
fu_context_get_bios_setting(FuContext *self, const gchar *name);
|
|
|
|
GPtrArray *
|
|
fu_context_get_esp_volumes(FuContext *self, GError **error) G_GNUC_WARN_UNUSED_RESULT;
|