]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Include/Library/EdkIIGlueBaseLib.h
EdkCompatibilityPkg: Removing ipf from edk2.
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Library / EdkIIGlueLib / Include / Library / EdkIIGlueBaseLib.h
index 8d4017a17ec3cce0fcf2d29e15385dfccb50b73f..5021f99c53fa6957587e1b2f09285fd9dbe28e59 100644 (file)
@@ -1,6 +1,6 @@
 /*++\r
   \r
-Copyright (c) 2004 - 2012, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
@@ -89,53 +89,6 @@ typedef struct {
 \r
 #define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8\r
 \r
-#elif defined (MDE_CPU_IPF)\r
-//\r
-// IPF context buffer used by SetJump() and LongJump()\r
-//\r
-typedef struct {\r
-  UINT64                            F2[2];\r
-  UINT64                            F3[2];\r
-  UINT64                            F4[2];\r
-  UINT64                            F5[2];\r
-  UINT64                            F16[2];\r
-  UINT64                            F17[2];\r
-  UINT64                            F18[2];\r
-  UINT64                            F19[2];\r
-  UINT64                            F20[2];\r
-  UINT64                            F21[2];\r
-  UINT64                            F22[2];\r
-  UINT64                            F23[2];\r
-  UINT64                            F24[2];\r
-  UINT64                            F25[2];\r
-  UINT64                            F26[2];\r
-  UINT64                            F27[2];\r
-  UINT64                            F28[2];\r
-  UINT64                            F29[2];\r
-  UINT64                            F30[2];\r
-  UINT64                            F31[2];\r
-  UINT64                            R4;\r
-  UINT64                            R5;\r
-  UINT64                            R6;\r
-  UINT64                            R7;\r
-  UINT64                            SP;\r
-  UINT64                            BR0;\r
-  UINT64                            BR1;\r
-  UINT64                            BR2;\r
-  UINT64                            BR3;\r
-  UINT64                            BR4;\r
-  UINT64                            BR5;\r
-  UINT64                            InitialUNAT;\r
-  UINT64                            AfterSpillUNAT;\r
-  UINT64                            PFS;\r
-  UINT64                            BSP;\r
-  UINT64                            Predicates;\r
-  UINT64                            LoopCount;\r
-  UINT64                            FPSR;\r
-} BASE_LIBRARY_JUMP_BUFFER;\r
-\r
-#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 0x10\r
-\r
 #elif defined (MDE_CPU_X64)\r
 //\r
 // X64 context buffer used by SetJump() and LongJump()\r
@@ -3693,1237 +3646,7 @@ CpuDeadLoop (
   VOID\r
   );\r
 \r
-\r
-#if defined (MDE_CPU_IPF)\r
-\r
-/**\r
-  Flush a range of  cache lines in the cache coherency domain of the calling\r
-  CPU.\r
-\r
-  Invalidates the  cache lines specified by Address and Length. If Address is\r
-  not aligned on a cache line boundary, then entire cache line containing\r
-  Address is invalidated. If Address + Length is not aligned on a cache line\r
-  boundary, then the entire instruction cache line containing Address + Length\r
-  -1 is invalidated. This function may choose to invalidate the entire\r
-  instruction cache if that is more efficient than invalidating the specified\r
-  range. If Length is 0, the no instruction cache lines are invalidated.\r
-  Address is returned. This function is only available on IPF.\r
-\r
-  If Length is greater than (MAX_ADDRESS - Address + 1), then ASSERT().\r
-\r
-  @param  Address The base address of the instruction lines to invalidate. If\r
-                  the CPU is in a physical addressing mode, then Address is a\r
-                  physical address. If the CPU is in a virtual addressing mode,\r
-                  then Address is a virtual address.\r
-\r
-  @param  Length  The number of bytes to invalidate from the instruction cache.\r
-\r
-  @return Address\r
-\r
-**/\r
-VOID *\r
-EFIAPI\r
-AsmFlushCacheRange (\r
-  IN      VOID                      *Address,\r
-  IN      UINTN                     Length\r
-  );\r
-\r
-\r
-/**\r
-  Executes a FC instruction\r
-  Executes a FC instruction on the cache line specified by Address.\r
-  The cache line size affected is at least 32-bytes (aligned on a 32-byte boundary).\r
-  An implementation may flush a larger region.  This function is only available on IPF.\r
-\r
-  @param Address  The Address of cache line to be flushed.\r
-\r
-  @return The address of FC instruction executed.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmFc (\r
-  IN  UINT64  Address\r
-  );\r
-\r
-\r
-/**\r
-  Executes a FC.I instruction.\r
-  Executes a FC.I instruction on the cache line specified by Address.\r
-  The cache line size affected is at least 32-bytes (aligned on a 32-byte boundary).\r
-  An implementation may flush a larger region.  This function is only available on IPF.\r
-\r
-  @param Address  The Address of cache line to be flushed.\r
-\r
-  @return The address of FC.I instruction executed.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmFci (\r
-  IN  UINT64  Address\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of a Processor Identifier Register (CPUID).\r
-  The Index of largest implemented CPUID (One less than the number of implemented CPUID\r
-  registers) is determined by CPUID [3] bits {7:0}.\r
-  No parameter checking is performed on Index.  If the Index value is beyond the\r
-  implemented CPUID register range, a Reserved Register/Field fault may occur.  The caller\r
-  must either guarantee that Index is valid, or the caller must set up fault handlers to\r
-  catch the faults.  This function is only available on IPF.\r
-\r
-  @param Index   The 8-bit Processor Identifier Register index to read.\r
-\r
-  @return The current value of Processor Identifier Register specified by Index.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadCpuid (\r
-  IN  UINT8   Index\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of 64-bit Processor Status Register (PSR).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of PSR.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadPsr (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Writes the current value of 64-bit Processor Status Register (PSR).\r
-  No parameter checking is performed on Value.  All bits of Value corresponding to\r
-  reserved fields of PSR must be 0 or a Reserved Register/Field fault may occur.  The caller must either guarantee that Value is valid, or the caller must set up fault handlers to catch the faults.\r
-  This function is only available on IPF.\r
-\r
-  @param Value         The 64-bit value to write to PSR.\r
-\r
-  @return The 64-bit value written to the PSR.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWritePsr (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of 64-bit Kernel Register #0 (KR0).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of KR0.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadKr0 (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of 64-bit Kernel Register #1 (KR1).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of KR1.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadKr1 (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of 64-bit Kernel Register #2 (KR2).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of KR2.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadKr2 (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of 64-bit Kernel Register #3 (KR3).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of KR3.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadKr3 (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of 64-bit Kernel Register #4 (KR4).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of KR4.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadKr4 (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of 64-bit Kernel Register #5 (KR5).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of KR5.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadKr5 (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of 64-bit Kernel Register #6 (KR6).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of KR6.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadKr6 (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of 64-bit Kernel Register #7 (KR7).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of KR7.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadKr7 (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Write the current value of 64-bit Kernel Register #0 (KR0).\r
-  This function is only available on IPF.\r
-\r
-  @param  Value        The 64-bit value to write to KR0.\r
-\r
-  @return The 64-bit value written to the KR0.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteKr0 (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Write the current value of 64-bit Kernel Register #1 (KR1).\r
-  This function is only available on IPF.\r
-\r
-  @param  Value        The 64-bit value to write to KR1.\r
-\r
-  @return The 64-bit value written to the KR1.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteKr1 (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Write the current value of 64-bit Kernel Register #2 (KR2).\r
-  This function is only available on IPF.\r
-\r
-  @param  Value        The 64-bit value to write to KR2.\r
-\r
-  @return The 64-bit value written to the KR2.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteKr2 (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Write the current value of 64-bit Kernel Register #3 (KR3).\r
-  This function is only available on IPF.\r
-\r
-  @param  Value        The 64-bit value to write to KR3.\r
-\r
-  @return The 64-bit value written to the KR3.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteKr3 (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Write the current value of 64-bit Kernel Register #4 (KR4).\r
-  This function is only available on IPF.\r
-\r
-  @param  Value        The 64-bit value to write to KR4.\r
-\r
-  @return The 64-bit value written to the KR4.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteKr4 (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Write the current value of 64-bit Kernel Register #5 (KR5).\r
-  This function is only available on IPF.\r
-\r
-  @param  Value        The 64-bit value to write to KR5.\r
-\r
-  @return The 64-bit value written to the KR5.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteKr5 (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Write the current value of 64-bit Kernel Register #6 (KR6).\r
-  This function is only available on IPF.\r
-\r
-  @param  Value        The 64-bit value to write to KR6.\r
-\r
-  @return The 64-bit value written to the KR6.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteKr6 (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Write the current value of 64-bit Kernel Register #7 (KR7).\r
-  This function is only available on IPF.\r
-\r
-  @param  Value        The 64-bit value to write to KR7.\r
-\r
-  @return The 64-bit value written to the KR7.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteKr7 (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of Interval Timer Counter Register (ITC).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of ITC.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadItc (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of Interval Timer Vector Register (ITV).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of ITV.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadItv (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of Interval Timer Match Register (ITM).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of ITM.\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadItm (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Writes the current value of 64-bit Interval Timer Counter Register (ITC).\r
-  This function is only available on IPF.\r
-\r
-  @param Value         The 64-bit value to write to ITC.\r
-\r
-  @return The 64-bit value written to the ITC.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteItc (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Writes the current value of 64-bit Interval Timer Match Register (ITM).\r
-  This function is only available on IPF.\r
-\r
-  @param Value         The 64-bit value to write to ITM.\r
-\r
-  @return The 64-bit value written to the ITM.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteItm (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Writes the current value of 64-bit Interval Timer Vector Register (ITV).\r
-  No parameter checking is performed on Value.  All bits of Value corresponding to\r
-  reserved fields of ITV must be 0 or a Reserved Register/Field fault may occur.\r
-  The caller must either guarantee that Value is valid, or the caller must set up\r
-  fault handlers to catch the faults.\r
-  This function is only available on IPF.\r
-\r
-  @param Value         The 64-bit value to write to ITV.\r
-\r
-  @return The 64-bit value written to the ITV.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteItv (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of Default Control Register (DCR).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of DCR.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadDcr (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of Interruption Vector Address Register (IVA).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of IVA.\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadIva (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of Page Table Address Register (PTA).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of PTA.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadPta (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Writes the current value of 64-bit Default Control Register (DCR).\r
-  No parameter checking is performed on Value.  All bits of Value corresponding to\r
-  reserved fields of DCR must be 0 or a Reserved Register/Field fault may occur.\r
-  The caller must either guarantee that Value is valid, or the caller must set up\r
-  fault handlers to catch the faults.\r
-  This function is only available on IPF.\r
-\r
-  @param Value         The 64-bit value to write to DCR.\r
-\r
-  @return The 64-bit value written to the DCR.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteDcr (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Writes the current value of 64-bit Interruption Vector Address Register (IVA).\r
-  The size of vector table is 32 K bytes and is 32 K bytes aligned\r
-  the low 15 bits of Value is ignored when written.\r
-  This function is only available on IPF.\r
-\r
-  @param Value         The 64-bit value to write to IVA.\r
-\r
-  @return The 64-bit value written to the IVA.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteIva (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Writes the current value of 64-bit Page Table Address Register (PTA).\r
-  No parameter checking is performed on Value.  All bits of Value corresponding to\r
-  reserved fields of DCR must be 0 or a Reserved Register/Field fault may occur.\r
-  The caller must either guarantee that Value is valid, or the caller must set up\r
-  fault handlers to catch the faults.\r
-  This function is only available on IPF.\r
-\r
-  @param Value         The 64-bit value to write to PTA.\r
-\r
-  @return The 64-bit value written to the PTA.\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWritePta (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of Local Interrupt ID Register (LID).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of LID.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadLid (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of External Interrupt Vector Register (IVR).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of IVR.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadIvr (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of Task Priority Register (TPR).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of TPR.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadTpr (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of External Interrupt Request Register #0 (IRR0).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of IRR0.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadIrr0 (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of External Interrupt Request Register #1 (IRR1).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of IRR1.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadIrr1 (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of External Interrupt Request Register #2 (IRR2).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of IRR2.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadIrr2 (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of External Interrupt Request Register #3 (IRR3).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of IRR3.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadIrr3 (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of Performance Monitor Vector Register (PMV).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of PMV.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadPmv (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of Corrected Machine Check Vector Register (CMCV).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of CMCV.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadCmcv (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of Local Redirection Register #0 (LRR0).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of LRR0.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadLrr0 (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of Local Redirection Register #1 (LRR1).\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of LRR1.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadLrr1 (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Writes the current value of 64-bit Page Local Interrupt ID Register (LID).\r
-  No parameter checking is performed on Value.  All bits of Value corresponding to\r
-  reserved fields of LID must be 0 or a Reserved Register/Field fault may occur.\r
-  The caller must either guarantee that Value is valid, or the caller must set up\r
-  fault handlers to catch the faults.\r
-  This function is only available on IPF.\r
-\r
-  @param Value         The 64-bit value to write to LID.\r
-\r
-  @return The 64-bit value written to the LID.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteLid (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Writes the current value of 64-bit Task Priority Register (TPR).\r
-  No parameter checking is performed on Value.  All bits of Value corresponding to\r
-  reserved fields of TPR must be 0 or a Reserved Register/Field fault may occur.\r
-  The caller must either guarantee that Value is valid, or the caller must set up\r
-  fault handlers to catch the faults.\r
-  This function is only available on IPF.\r
-\r
-  @param Value         The 64-bit value to write to TPR.\r
-\r
-  @return The 64-bit value written to the TPR.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteTpr (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Performs a write operation on End OF External Interrupt Register (EOI).\r
-  Writes a value of 0 to the EOI Register.  This function is only available on IPF.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-AsmWriteEoi (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Writes the current value of 64-bit Performance Monitor Vector Register (PMV).\r
-  No parameter checking is performed on Value.  All bits of Value corresponding\r
-  to reserved fields of PMV must be 0 or a Reserved Register/Field fault may occur.\r
-  The caller must either guarantee that Value is valid, or the caller must set up\r
-  fault handlers to catch the faults.\r
-  This function is only available on IPF.\r
-\r
-  @param Value         The 64-bit value to write to PMV.\r
-\r
-  @return The 64-bit value written to the PMV.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWritePmv (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Writes the current value of 64-bit Corrected Machine Check Vector Register (CMCV).\r
-  No parameter checking is performed on Value.  All bits of Value corresponding\r
-  to reserved fields of CMCV must be 0 or a Reserved Register/Field fault may occur.\r
-  The caller must either guarantee that Value is valid, or the caller must set up\r
-  fault handlers to catch the faults.\r
-  This function is only available on IPF.\r
-\r
-  @param Value         The 64-bit value to write to CMCV.\r
-\r
-  @return The 64-bit value written to the CMCV.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteCmcv (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Writes the current value of 64-bit Local Redirection Register #0 (LRR0).\r
-  No parameter checking is performed on Value.  All bits of Value corresponding\r
-  to reserved fields of LRR0 must be 0 or a Reserved Register/Field fault may occur.\r
-  The caller must either guarantee that Value is valid, or the caller must set up\r
-  fault handlers to catch the faults.\r
-  This function is only available on IPF.\r
-\r
-  @param Value         The 64-bit value to write to LRR0.\r
-\r
-  @return The 64-bit value written to the LRR0.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteLrr0 (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Writes the current value of 64-bit Local Redirection Register #1 (LRR1).\r
-  No parameter checking is performed on Value.  All bits of Value corresponding\r
-  to reserved fields of LRR1 must be 0 or a Reserved Register/Field fault may occur.\r
-  The caller must either guarantee that Value is valid, or the caller must\r
-  set up fault handlers to catch the faults.\r
-  This function is only available on IPF.\r
-\r
-  @param Value         The 64-bit value to write to LRR1.\r
-\r
-  @return The 64-bit value written to the LRR1.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteLrr1 (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of Instruction Breakpoint Register (IBR).\r
-  \r
-  The Instruction Breakpoint Registers are used in pairs.  The even numbered\r
-  registers contain breakpoint addresses, and the odd numbered registers contain\r
-  breakpoint mask conditions.  At least 4 instruction registers pairs are implemented\r
-  on all processor models.   Implemented registers are contiguous starting with\r
-  register 0.  No parameter checking is performed on Index, and if the Index value\r
-  is beyond the implemented IBR register range, a Reserved Register/Field fault may\r
-  occur.  The caller must either guarantee that Index is valid, or the caller must\r
-  set up fault handlers to catch the faults.\r
-  This function is only available on IPF.\r
-\r
-  @param Index         The 8-bit Instruction Breakpoint Register index to read.\r
-\r
-  @return The current value of Instruction Breakpoint Register specified by Index.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadIbr (\r
-  IN  UINT8   Index\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of Data Breakpoint Register (DBR).\r
-\r
-  The Data Breakpoint Registers are used in pairs.  The even numbered registers\r
-  contain breakpoint addresses, and odd numbered registers contain breakpoint\r
-  mask conditions.  At least 4 data registers pairs are implemented on all processor\r
-  models.  Implemented registers are contiguous starting with register 0.\r
-  No parameter checking is performed on Index.  If the Index value is beyond\r
-  the implemented DBR register range, a Reserved Register/Field fault may occur.\r
-  The caller must either guarantee that Index is valid, or the caller must set up\r
-  fault handlers to catch the faults.\r
-  This function is only available on IPF.\r
-\r
-  @param Index         The 8-bit Data Breakpoint Register index to read.\r
-\r
-  @return The current value of Data Breakpoint Register specified by Index.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadDbr (\r
-  IN  UINT8   Index\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of Performance Monitor Configuration Register (PMC).\r
-\r
-  All processor implementations provide at least 4 performance counters\r
-  (PMC/PMD [4]...PMC/PMD [7] pairs), and 4 performance monitor counter overflow\r
-  status registers (PMC [0]... PMC [3]).  Processor implementations may provide\r
-  additional implementation-dependent PMC and PMD to increase the number of\r
-  'generic' performance counters (PMC/PMD pairs).  The remainder of PMC and PMD\r
-  register set is implementation dependent.  No parameter checking is performed\r
-  on Index.  If the Index value is beyond the implemented PMC register range,\r
-  zero value will be returned.\r
-  This function is only available on IPF.\r
-\r
-  @param Index         The 8-bit Performance Monitor Configuration Register index to read.\r
-\r
-  @return The current value of Performance Monitor Configuration Register\r
-  specified by Index.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadPmc (\r
-  IN  UINT8   Index\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of Performance Monitor Data Register (PMD).\r
-\r
-  All processor implementations provide at least 4 performance counters\r
-  (PMC/PMD [4]...PMC/PMD [7] pairs), and 4 performance monitor counter\r
-  overflow status registers (PMC [0]... PMC [3]).  Processor implementations may\r
-  provide additional implementation-dependent PMC and PMD to increase the number\r
-  of 'generic' performance counters (PMC/PMD pairs).  The remainder of PMC and PMD\r
-  register set is implementation dependent.  No parameter checking is performed\r
-  on Index.  If the Index value is beyond the implemented PMD register range,\r
-  zero value will be returned.\r
-  This function is only available on IPF.\r
-\r
-  @param Index         The 8-bit Performance Monitor Data Register index to read.\r
-\r
-  @return The current value of Performance Monitor Data Register specified by Index.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadPmd (\r
-  IN  UINT8   Index\r
-  );\r
-\r
-\r
-/**\r
-  Writes the current value of 64-bit Instruction Breakpoint Register (IBR).\r
-\r
-  Writes current value of Instruction Breakpoint Register specified by Index.\r
-  The Instruction Breakpoint Registers are used in pairs.  The even numbered\r
-  registers contain breakpoint addresses, and odd numbered registers contain\r
-  breakpoint mask conditions.  At least 4 instruction registers pairs are implemented\r
-  on all processor models.  Implemented registers are contiguous starting with\r
-  register 0.  No parameter checking is performed on Index.  If the Index value\r
-  is beyond the implemented IBR register range, a Reserved Register/Field fault may\r
-  occur.  The caller must either guarantee that Index is valid, or the caller must\r
-  set up fault handlers to catch the faults.\r
-  This function is only available on IPF.\r
-\r
-  @param Index         The 8-bit Instruction Breakpoint Register index to write.\r
-  @param Value         The 64-bit value to write to IBR.\r
-\r
-  @return The 64-bit value written to the IBR.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteIbr (\r
-  IN UINT8   Index,\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Writes the current value of 64-bit Data Breakpoint Register (DBR).\r
-\r
-  Writes current value of Data Breakpoint Register specified by Index.\r
-  The Data Breakpoint Registers are used in pairs.  The even numbered registers\r
-  contain breakpoint addresses, and odd numbered registers contain breakpoint\r
-  mask conditions.  At least 4 data registers pairs are implemented on all processor\r
-  models.  Implemented registers are contiguous starting with register 0.  No parameter\r
-  checking is performed on Index.  If the Index value is beyond the implemented\r
-  DBR register range, a Reserved Register/Field fault may occur.  The caller must\r
-  either guarantee that Index is valid, or the caller must set up fault handlers to\r
-  catch the faults.\r
-  This function is only available on IPF.\r
-\r
-  @param Index         The 8-bit Data Breakpoint Register index to write.\r
-  @param Value         The 64-bit value to write to DBR.\r
-\r
-  @return The 64-bit value written to the DBR.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteDbr (\r
-  IN UINT8   Index,\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Writes the current value of 64-bit Performance Monitor Configuration Register (PMC).\r
-\r
-  Writes current value of Performance Monitor Configuration Register specified by Index.\r
-  All processor implementations provide at least 4 performance counters\r
-  (PMC/PMD [4]...PMC/PMD [7] pairs), and 4 performance monitor counter overflow status\r
-  registers (PMC [0]... PMC [3]).  Processor implementations may provide additional\r
-  implementation-dependent PMC and PMD to increase the number of 'generic' performance\r
-  counters (PMC/PMD pairs).  The remainder of PMC and PMD register set is implementation\r
-  dependent.  No parameter checking is performed on Index.  If the Index value is\r
-  beyond the implemented PMC register range, the write is ignored.\r
-  This function is only available on IPF.\r
-\r
-  @param Index         The 8-bit Performance Monitor Configuration Register index to write.\r
-  @param Value         The 64-bit value to write to PMC.\r
-\r
-  @return The 64-bit value written to the PMC.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWritePmc (\r
-  IN UINT8   Index,\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Writes the current value of 64-bit Performance Monitor Data Register (PMD).\r
-\r
-  Writes current value of Performance Monitor Data Register specified by Index.\r
-  All processor implementations provide at least 4 performance counters\r
-  (PMC/PMD [4]...PMC/PMD [7] pairs), and 4 performance monitor counter overflow\r
-  status registers (PMC [0]... PMC [3]).  Processor implementations may provide\r
-  additional implementation-dependent PMC and PMD to increase the number of 'generic'\r
-  performance counters (PMC/PMD pairs).  The remainder of PMC and PMD register set\r
-  is implementation dependent.  No parameter checking is performed on Index.  If the\r
-  Index value is beyond the implemented PMD register range, the write is ignored.\r
-  This function is only available on IPF.\r
-\r
-  @param Index         The 8-bit Performance Monitor Data Register index to write.\r
-  @param Value         The 64-bit value to write to PMD.\r
-\r
-  @return The 64-bit value written to the PMD.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWritePmd (\r
-  IN UINT8   Index,\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of 64-bit Global Pointer (GP).\r
-\r
-  Reads and returns the current value of GP.\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of GP.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadGp (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Write the current value of 64-bit Global Pointer (GP).\r
-\r
-  Writes the current value of GP. The 64-bit value written to the GP is returned.\r
-  No parameter checking is performed on Value.\r
-  This function is only available on IPF.\r
-\r
-  @param Value  The 64-bit value to write to GP.\r
-\r
-  @return The 64-bit value written to the GP.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmWriteGp (\r
-  IN UINT64  Value\r
-  );\r
-\r
-\r
-/**\r
-  Reads the current value of 64-bit Stack Pointer (SP).\r
-\r
-  Reads and returns the current value of SP.\r
-  This function is only available on IPF.\r
-\r
-  @return The current value of SP.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-AsmReadSp (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Determines if the CPU is currently executing in virtual, physical, or mixed mode.\r
-\r
-  Determines the current execution mode of the CPU.\r
-  If the CPU is in virtual mode(PSR.RT=1, PSR.DT=1, PSR.IT=1), then 1 is returned.\r
-  If the CPU is in physical mode(PSR.RT=0, PSR.DT=0, PSR.IT=0), then 0 is returned.\r
-  If the CPU is not in physical mode or virtual mode, then it is in mixed mode,\r
-  and -1 is returned.\r
-  This function is only available on IPF.\r
-\r
-  @return  1  The CPU is in virtual mode.\r
-  @return  0  The CPU is in physical mode.\r
-  @return -1  The CPU is in mixed mode.\r
-\r
-**/\r
-INT64\r
-EFIAPI\r
-AsmCpuVirtual (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Makes a PAL procedure call.\r
-\r
-  This is a wrapper function to make a PAL procedure call.  Based on the Index\r
-  value this API will make static or stacked PAL call.  The following table\r
-  describes the usage of PAL Procedure Index Assignment. Architected procedures\r
-  may be designated as required or optional.  If a PAL procedure is specified\r
-  as optional, a unique return code of 0xFFFFFFFFFFFFFFFF is returned in the\r
-  Status field of the PAL_CALL_RETURN structure.\r
-  This indicates that the procedure is not present in this PAL implementation.\r
-  It is the caller's responsibility to check for this return code after calling\r
-  any optional PAL procedure.\r
-  No parameter checking is performed on the 5 input parameters, but there are\r
-  some common rules that the caller should follow when making a PAL call.  Any\r
-  address passed to PAL as buffers for return parameters must be 8-byte aligned.\r
-  Unaligned addresses may cause undefined results.  For those parameters defined\r
-  as reserved or some fields defined as reserved must be zero filled or the invalid\r
-  argument return value may be returned or undefined result may occur during the\r
-  execution of the procedure.  If the PalEntryPoint  does not point to a valid\r
-  PAL entry point then the system behavior is undefined.  This function is only\r
-  available on IPF.\r
-\r
-  @param PalEntryPoint The PAL procedure calls entry point.\r
-  @param Index                     The PAL procedure Index number.\r
-  @param Arg2                        The 2nd parameter for PAL procedure calls.\r
-  @param Arg3                        The 3rd parameter for PAL procedure calls.\r
-  @param Arg4                        The 4th parameter for PAL procedure calls.\r
-\r
-  @return structure returned from the PAL Call procedure, including the status and return value.\r
-\r
-**/\r
-PAL_CALL_RETURN\r
-EFIAPI\r
-AsmPalCall (\r
-  IN UINT64  PalEntryPoint,\r
-  IN UINT64  Index,\r
-  IN UINT64  Arg2,\r
-  IN UINT64  Arg3,\r
-  IN UINT64  Arg4\r
-  );\r
-\r
-\r
-/**\r
-  Transfers control to a function starting with a new stack.\r
-\r
-  Transfers control to the function specified by EntryPoint using the new stack\r
-  specified by NewStack and passing in the parameters specified by Context1 and\r
-  Context2. Context1 and Context2 are optional and may be NULL. The function\r
-  EntryPoint must never return.\r
-\r
-  If EntryPoint is NULL, then ASSERT().\r
-  If NewStack is NULL, then ASSERT().\r
-\r
-  @param  EntryPoint  A pointer to function to call with the new stack.\r
-  @param  Context1    A pointer to the context to pass into the EntryPoint\r
-                      function.\r
-  @param  Context2    A pointer to the context to pass into the EntryPoint\r
-                      function.\r
-  @param  NewStack    A pointer to the new stack to use for the EntryPoint\r
-                      function.\r
-  @param  NewBsp      A pointer to the new memory location for RSE backing\r
-                      store.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-AsmSwitchStackAndBackingStore (\r
-  IN      SWITCH_STACK_ENTRY_POINT  EntryPoint,\r
-  IN      VOID                      *Context1,  OPTIONAL\r
-  IN      VOID                      *Context2,  OPTIONAL\r
-  IN      VOID                      *NewStack,\r
-  IN      VOID                      *NewBsp\r
-  );\r
-\r
-\r
-//\r
-// Bugbug: This call should be removed after\r
-//         the PalCall Instance issue has been fixed.\r
-//\r
-/**\r
-  Performs a PAL call using static calling convention.\r
-\r
-  An internal function to perform a PAL call using static calling convention.\r
-\r
-  @param  PalEntryPoint The entry point address of PAL. The address in ar.kr5\r
-                        would be used if this parameter were NULL on input.\r
-  @param  Arg1          The first argument of a PAL call.\r
-  @param  Arg1          The second argument of a PAL call.\r
-  @param  Arg1          The third argument of a PAL call.\r
-  @param  Arg1          The fourth argument of a PAL call.\r
-\r
-  @return The values returned in r8, r9, r10 and r11.\r
-\r
-**/\r
-PAL_CALL_RETURN\r
-PalCallStatic (\r
-  IN      CONST VOID                *PalEntryPoint,\r
-  IN      UINT64                    Arg1,\r
-  IN      UINT64                    Arg2,\r
-  IN      UINT64                    Arg3,\r
-  IN      UINT64                    Arg4\r
-  );\r
-\r
-\r
-#elif defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)\r
+#if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)\r
 //\r
 // IA32 and X64 Specific Functions\r
 //\r