提交 0c230743 编写于 作者: H Heinrich Schuchardt 提交者: Alexander Graf

efi_loader: add missing runtime services stubs

Add stubs for UpdateCapsule, QueryCapsuleCapabilities, and
QueryVariableInfo.
Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: NAlexander Graf <agraf@suse.de>
上级 f3b5056c
......@@ -187,6 +187,17 @@ enum efi_reset_type {
#define EFI_RUNTIME_SERVICES_SIGNATURE 0x5652453544e5552ULL
#define EFI_RUNTIME_SERVICES_REVISION 0x00010000
#define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000
#define CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE 0x00020000
#define CAPSULE_FLAGS_INITIATE_RESET 0x00040000
struct efi_capsule_header {
efi_guid_t *capsule_guid;
u32 header_size;
u32 flags;
u32 capsule_image_size;
};
struct efi_runtime_services {
struct efi_table_hdr hdr;
efi_status_t (EFIAPI *get_time)(struct efi_time *time,
......@@ -216,9 +227,20 @@ struct efi_runtime_services {
void (EFIAPI *reset_system)(enum efi_reset_type reset_type,
efi_status_t reset_status,
unsigned long data_size, void *reset_data);
void *update_capsule;
void *query_capsule_caps;
void *query_variable_info;
efi_status_t (EFIAPI *update_capsule)(
struct efi_capsule_header **capsule_header_array,
efi_uintn_t capsule_count,
u64 scatter_gather_list);
efi_status_t (EFIAPI *query_capsule_caps)(
struct efi_capsule_header **capsule_header_array,
efi_uintn_t capsule_count,
u64 maximum_capsule_size,
u32 reset_type);
efi_status_t (EFIAPI *query_variable_info)(
u32 attributes,
u64 maximum_variable_storage_size,
u64 remaining_variable_storage_size,
u64 maximum_variable_size);
};
/* EFI Configuration Table and GUID definitions */
......
......@@ -381,6 +381,32 @@ static efi_status_t __efi_runtime EFIAPI efi_invalid_parameter(void)
return EFI_INVALID_PARAMETER;
}
efi_status_t __efi_runtime EFIAPI efi_update_capsule(
struct efi_capsule_header **capsule_header_array,
efi_uintn_t capsule_count,
u64 scatter_gather_list)
{
return EFI_UNSUPPORTED;
}
efi_status_t __efi_runtime EFIAPI efi_query_capsule_caps(
struct efi_capsule_header **capsule_header_array,
efi_uintn_t capsule_count,
u64 maximum_capsule_size,
u32 reset_type)
{
return EFI_UNSUPPORTED;
}
efi_status_t __efi_runtime EFIAPI efi_query_variable_info(
u32 attributes,
u64 maximum_variable_storage_size,
u64 remaining_variable_storage_size,
u64 maximum_variable_size)
{
return EFI_UNSUPPORTED;
}
struct efi_runtime_services __efi_runtime_data efi_runtime_services = {
.hdr = {
.signature = EFI_RUNTIME_SERVICES_SIGNATURE,
......@@ -398,4 +424,7 @@ struct efi_runtime_services __efi_runtime_data efi_runtime_services = {
.set_variable = efi_set_variable,
.get_next_high_mono_count = (void *)&efi_device_error,
.reset_system = &efi_reset_system_boottime,
.update_capsule = efi_update_capsule,
.query_capsule_caps = efi_query_capsule_caps,
.query_variable_info = efi_query_variable_info,
};
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册