RuntimeDxe is used to back the runtime services time functions, so align the description of the function return values with the defined values for these services as described in UEFI Spec 2.10. REF: UEFI spec 2.10 section 8 Services ? Runtime Services Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Suqiang Ren <suqiangx.ren@intel.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
128 lines
4.8 KiB
C
128 lines
4.8 KiB
C
/** @file
|
|
Runtime Architectural Protocol as defined in the DXE CIS.
|
|
|
|
This code is used to produce the EFI runtime architectural protocol.
|
|
|
|
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#ifndef _RUNTIME_H_
|
|
#define _RUNTIME_H_
|
|
|
|
#include <PiDxe.h>
|
|
#include <Protocol/LoadedImage.h>
|
|
#include <Protocol/Runtime.h>
|
|
#include <Library/BaseLib.h>
|
|
#include <Library/UefiDriverEntryPoint.h>
|
|
#include <Library/DebugLib.h>
|
|
#include <Library/ReportStatusCodeLib.h>
|
|
#include <Library/UefiRuntimeServicesTableLib.h>
|
|
#include <Library/UefiBootServicesTableLib.h>
|
|
#include <Library/UefiLib.h>
|
|
#include <Library/CacheMaintenanceLib.h>
|
|
#include <Library/PeCoffLib.h>
|
|
|
|
//
|
|
// Function Prototypes
|
|
//
|
|
|
|
/**
|
|
Calculate CRC32 for target data.
|
|
|
|
@param Data The target data.
|
|
@param DataSize The target data size.
|
|
@param CrcOut The CRC32 for target data.
|
|
|
|
@retval EFI_SUCCESS The CRC32 for target data is calculated successfully.
|
|
@retval EFI_INVALID_PARAMETER Some parameter is not valid, so the CRC32 is not
|
|
calculated.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
EFIAPI
|
|
RuntimeDriverCalculateCrc32 (
|
|
IN VOID *Data,
|
|
IN UINTN DataSize,
|
|
OUT UINT32 *CrcOut
|
|
);
|
|
|
|
/**
|
|
Determines the new virtual address that is to be used on subsequent memory accesses.
|
|
|
|
|
|
@param DebugDisposition Supplies type information for the pointer being converted.
|
|
@param ConvertAddress A pointer to a pointer that is to be fixed to be the value needed
|
|
for the new virtual address mappings being applied.
|
|
|
|
@retval EFI_SUCCESS The pointer pointed to by Address was modified.
|
|
@retval EFI_NOT_FOUND The pointer pointed to by Address was not found to be part
|
|
of the current memory map. This is normally fatal.
|
|
@retval EFI_INVALID_PARAMETER 1) Address is NULL.
|
|
2) *Address is NULL and DebugDisposition does
|
|
not have the EFI_OPTIONAL_PTR bit set.
|
|
@retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made.
|
|
The platform should describe this runtime service as unsupported at runtime
|
|
via an EFI_RT_PROPERTIES_TABLE configuration table.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
EFIAPI
|
|
RuntimeDriverConvertPointer (
|
|
IN UINTN DebugDisposition,
|
|
IN OUT VOID **ConvertAddress
|
|
);
|
|
|
|
/**
|
|
Changes the runtime addressing mode of EFI firmware from physical to virtual.
|
|
|
|
@param MemoryMapSize The size in bytes of VirtualMap.
|
|
@param DescriptorSize The size in bytes of an entry in the VirtualMap.
|
|
@param DescriptorVersion The version of the structure entries in VirtualMap.
|
|
@param VirtualMap An array of memory descriptors which contain new virtual
|
|
address mapping information for all runtime ranges.
|
|
|
|
@retval EFI_SUCCESS The virtual address map has been applied.
|
|
@retval EFI_UNSUPPORTED EFI firmware is not at runtime, or the EFI firmware is already in
|
|
virtual address mapped mode.
|
|
@retval EFI_INVALID_PARAMETER DescriptorSize or DescriptorVersion is invalid.
|
|
@retval EFI_NO_MAPPING A virtual address was not supplied for a range in the memory
|
|
map that requires a mapping.
|
|
@retval EFI_NOT_FOUND A virtual address was supplied for an address that is not found
|
|
in the memory map.
|
|
@retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made.
|
|
The platform should describe this runtime service as unsupported at runtime
|
|
via an EFI_RT_PROPERTIES_TABLE configuration table.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
EFIAPI
|
|
RuntimeDriverSetVirtualAddressMap (
|
|
IN UINTN MemoryMapSize,
|
|
IN UINTN DescriptorSize,
|
|
IN UINT32 DescriptorVersion,
|
|
IN EFI_MEMORY_DESCRIPTOR *VirtualMap
|
|
);
|
|
|
|
/**
|
|
Install Runtime AP. This code includes the EfiRuntimeLib, but it only
|
|
functions at RT in physical mode.
|
|
|
|
@param ImageHandle Image handle of this driver.
|
|
@param SystemTable Pointer to the EFI System Table.
|
|
|
|
@retval EFI_SUCEESS Runtime Driver Architectural Protocol Installed
|
|
@return Other value if gBS->InstallMultipleProtocolInterfaces fails. Check
|
|
gBS->InstallMultipleProtocolInterfaces for details.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
EFIAPI
|
|
RuntimeDriverInitialize (
|
|
IN EFI_HANDLE ImageHandle,
|
|
IN EFI_SYSTEM_TABLE *SystemTable
|
|
);
|
|
|
|
#endif
|