summaryrefslogtreecommitdiff
path: root/MdePkg
diff options
context:
space:
mode:
authorqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>2008-11-06 13:55:41 +0000
committerqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>2008-11-06 13:55:41 +0000
commit20742255f1a40578d4b24ee22aa95ab67f57edd8 (patch)
treeecc17411573f8091cbe9fd38cf8256683301a480 /MdePkg
parentc759eb45e2b79370b7480066e1021fc99b25853a (diff)
downloadedk2-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.h33
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.