+\r
+\r
+/**\r
+ Reads control register IRR2.\r
+\r
+ This is a worker function for AsmReadControlRegister()\r
+ when its parameter Index is IPF_CONTROL_REGISTER_IRR2\r
+\r
+ @return The 64-bit control register IRR2.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadControlRegisterIrr2 (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads control register IRR3.\r
+\r
+ This is a worker function for AsmReadControlRegister()\r
+ when its parameter Index is IPF_CONTROL_REGISTER_IRR3\r
+\r
+ @return The 64-bit control register IRR3.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadControlRegisterIrr3 (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads control register ITV.\r
+\r
+ This is a worker function for AsmReadControlRegister()\r
+ when its parameter Index is IPF_CONTROL_REGISTER_ITV\r
+\r
+ @return The 64-bit control register ITV.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadControlRegisterItv (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads control register PMV.\r
+\r
+ This is a worker function for AsmReadControlRegister()\r
+ when its parameter Index is IPF_CONTROL_REGISTER_PMV\r
+\r
+ @return The 64-bit control register PMV.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadControlRegisterPmv (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads control register CMCV.\r
+\r
+ This is a worker function for AsmReadControlRegister()\r
+ when its parameter Index is IPF_CONTROL_REGISTER_CMCV\r
+\r
+ @return The 64-bit control register CMCV.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadControlRegisterCmcv (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads control register LRR0.\r
+\r
+ This is a worker function for AsmReadControlRegister()\r
+ when its parameter Index is IPF_CONTROL_REGISTER_LRR0\r
+\r
+ @return The 64-bit control register LRR0.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadControlRegisterLrr0 (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads control register LRR1.\r
+\r
+ This is a worker function for AsmReadControlRegister()\r
+ when its parameter Index is IPF_CONTROL_REGISTER_LRR1\r
+\r
+ @return The 64-bit control register LRR1.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadControlRegisterLrr1 (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register K0.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_K0\r
+\r
+ @return The 64-bit application register K0.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterK0 (\r
+ VOID\r
+ );\r
+\r
+\r
+\r
+/**\r
+ Reads application register K1.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_K1\r
+\r
+ @return The 64-bit application register K1.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterK1 (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register K2.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_K2\r
+\r
+ @return The 64-bit application register K2.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterK2 (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register K3.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_K3\r
+\r
+ @return The 64-bit application register K3.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterK3 (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register K4.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_K4\r
+\r
+ @return The 64-bit application register K4.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterK4 (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register K5.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_K5\r
+\r
+ @return The 64-bit application register K5.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterK5 (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register K6.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_K6\r
+\r
+ @return The 64-bit application register K6.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterK6 (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register K7.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_K7\r
+\r
+ @return The 64-bit application register K7.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterK7 (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register RSC.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_RSC\r
+\r
+ @return The 64-bit application register RSC.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterRsc (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register BSP.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_BSP\r
+\r
+ @return The 64-bit application register BSP.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterBsp (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register BSPSTORE.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_BSPSTORE\r
+\r
+ @return The 64-bit application register BSPSTORE.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterBspstore (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register RNAT.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_RNAT\r
+\r
+ @return The 64-bit application register RNAT.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterRnat (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register FCR.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_FCR\r
+\r
+ @return The 64-bit application register FCR.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterFcr (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register EFLAG.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_EFLAG\r
+\r
+ @return The 64-bit application register EFLAG.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterEflag (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register CSD.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_CSD\r
+\r
+ @return The 64-bit application register CSD.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterCsd (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register SSD.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_SSD\r
+\r
+ @return The 64-bit application register SSD.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterSsd (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register CFLG.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_CFLG\r
+\r
+ @return The 64-bit application register CFLG.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterCflg (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register FSR.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_FSR\r
+\r
+ @return The 64-bit application register FSR.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterFsr (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register FIR.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_FIR\r
+\r
+ @return The 64-bit application register FIR.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterFir (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register FDR.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_FDR\r
+\r
+ @return The 64-bit application register FDR.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterFdr (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register CCV.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_CCV\r
+\r
+ @return The 64-bit application register CCV.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterCcv (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register UNAT.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_UNAT\r
+\r
+ @return The 64-bit application register UNAT.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterUnat (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register FPSR.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_FPSR\r
+\r
+ @return The 64-bit application register FPSR.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterFpsr (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register ITC.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_ITC\r
+\r
+ @return The 64-bit application register ITC.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterItc (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register PFS.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_PFS\r
+\r
+ @return The 64-bit application register PFS.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterPfs (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register LC.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_LC\r
+\r
+ @return The 64-bit application register LC.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterLc (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ Reads application register EC.\r
+\r
+ This is a worker function for AsmReadApplicationRegister()\r
+ when its parameter Index is IPF_APPLICATION_REGISTER_EC\r
+\r
+ @return The 64-bit application register EC.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+AsmReadApplicationRegisterEc (\r
+ VOID\r
+ );\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
+ Internal worker function to invalidate a range of instruction cache lines\r
+ in the cache coherency domain of the calling CPU.\r
+\r
+ Internal worker function to invalidate the instruction cache lines specified\r
+ by Address and Length. If Address is not aligned on a cache line boundary,\r
+ then entire instruction cache line containing Address is invalidated. If\r
+ Address + Length is not aligned on a cache line boundary, then the entire\r
+ instruction cache line containing Address + Length -1 is invalidated. This\r
+ function may choose to invalidate the entire instruction cache if that is more\r
+ efficient than invalidating the specified range. If Length is 0, the no instruction\r
+ cache lines are invalidated. Address is returned.\r
+ This function is only available on IPF.\r
+\r
+ @param Address The base address of the instruction cache lines to\r
+ invalidate. If the CPU is in a physical addressing mode, then\r
+ Address is a physical address. If the CPU is in a virtual\r
+ addressing mode, 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
+InternalFlushCacheRange (\r
+ IN VOID *Address,\r
+ IN UINTN Length\r
+ );\r
+\r