OvmfPkg/PlatformDxe: Handle all requests in ExtractConfig and RouteConfig

Per the UEFI specification, if the Request argument in
EFI_HII_CONFIG_ACCESS_PROTOCOL.ExtractConfig() is NULL or does not contain
any request elements, the implementation should return all of the settings
being abstracted for the particular ConfigHdr reference.

The current implementation returns EFI_INVALID_PARAMETER if Request is
NULL or does not contain any request elements. Instead, construct
a new ConfigRequest to handle these cases per the specification.

In addition, per the UEFI specification, if the Configuration argument in
EFI_HII_CONFIG_ACCESS_PROTOCOL.RouteConfig() has a ConfigHdr that
specifies a non-existing target, the implementation should return
EFI_NOT_FOUND.

The current implementation returns EFI_INVALID_PARAMETER if Configuration
has a non-existing target in ConfigHdr. Instead, perform a check and
return EFI_NOT_FOUND in this case.

Signed-off-by: Dimitrije Pavlov <Dimitrije.Pavlov@arm.com>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
This commit is contained in:
Dimitrije Pavlov
2022-08-18 14:58:42 -05:00
committed by mergify[bot]
parent 165b5bcd68
commit aefcc91805
3 changed files with 116 additions and 3 deletions

View File

@@ -21,7 +21,7 @@
//
// Name of the UEFI variable that we use for persistent storage.
//
STATIC CHAR16 mVariableName[] = L"PlatformConfig";
CHAR16 mVariableName[] = L"PlatformConfig";
/**
Serialize and persistently save platform configuration.