diff options
author | qhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524> | 2008-11-06 13:55:41 +0000 |
---|---|---|
committer | qhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524> | 2008-11-06 13:55:41 +0000 |
commit | 20742255f1a40578d4b24ee22aa95ab67f57edd8 (patch) | |
tree | ecc17411573f8091cbe9fd38cf8256683301a480 /MdePkg | |
parent | c759eb45e2b79370b7480066e1021fc99b25853a (diff) | |
download | edk2-20742255f1a40578d4b24ee22aa95ab67f57edd8.zip edk2-20742255f1a40578d4b24ee22aa95ab67f57edd8.tar.gz edk2-20742255f1a40578d4b24ee22aa95ab67f57edd8.tar.bz2 |
Add new API in UefiRuntimeLib to convert function pointer.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6415 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg')
-rw-r--r-- | MdePkg/Include/Library/UefiRuntimeLib.h | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/MdePkg/Include/Library/UefiRuntimeLib.h b/MdePkg/Include/Library/UefiRuntimeLib.h index af3aaf4..4ecccb4 100644 --- a/MdePkg/Include/Library/UefiRuntimeLib.h +++ b/MdePkg/Include/Library/UefiRuntimeLib.h @@ -229,7 +229,7 @@ EfiResetSystem ( );
/**
- Determines the new virtual address that is to be used on subsequent memory accesses.
+ This service converts a function pointer from physical to virtual addressing.
@param DebugDisposition Supplies type information for the pointer being converted.
@param Address The pointer to a pointer that is to be fixed to be the
@@ -237,7 +237,7 @@ EfiResetSystem ( applied.
@retval EFI_SUCCESS Success to execute the function.
- @retval !EFI_SUCCESS Failed to e3xecute the function.
+ @retval !EFI_SUCCESS Failed to execute the function.
**/
EFI_STATUS
@@ -247,6 +247,35 @@ EfiConvertPointer ( IN OUT VOID **Address
);
+/**
+ Determines the new virtual address that is to be used on subsequent memory accesses.
+
+ For IA32, X64, and EBC, this service is a wrapper for the UEFI Runtime Service
+ ConvertPointer(). See the UEFI Specification for details.
+ For IPF, this function interprets Address as a pointer to an EFI_PLABEL structure
+ and both the EntryPoint and GP fields of an EFI_PLABEL are converted from physical
+ to virtiual addressing. Since IPF allows the GP to point to an address outside
+ a PE/COFF image, the physical to virtual offset for the EntryPoint field is used
+ to adjust the GP field. The UEFI Runtime Service ConvertPointer() is used to convert
+ EntryPoint and the status code for this conversion is always returned. If the convertion
+ of EntryPoint fails, then neither EntryPoint nor GP are modified. See the UEFI
+ Specification for details on the UEFI Runtime Service ConvertPointer().
+
+ @param DebugDisposition Supplies type information for the pointer being converted.
+ @param Address The pointer to a pointer that is to be fixed to be the
+ value needed for the new virtual address mapping being
+ applied.
+
+ @retval EFI_SUCCESS Success to execute the function.
+ @retval !EFI_SUCCESS Failed to execute the function.
+
+**/
+EFI_STATUS
+EFIAPI
+EfiConvertFunctionPointer (
+ IN UINTN DebugDisposition,
+ IN OUT VOID **Address
+ );
/**
Change the runtime addressing mode of EFI firmware from physical to virtual.
|