--- /dev/null
+/*++\r
+\r
+Copyright (c) 2004, Intel Corporation \r
+All rights reserved. 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
+http://opensource.org/licenses/bsd-license.php \r
+ \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
+\r
+Module Name:\r
+ \r
+ EfiJump.h\r
+\r
+Abstract:\r
+\r
+ This is the Setjump/Longjump pair for an IA32 processor.\r
+\r
+--*/\r
+\r
+#ifndef _EFI_JUMP_H_\r
+#define _EFI_JUMP_H_\r
+\r
+#include EFI_GUID_DEFINITION (PeiTransferControl)\r
+\r
+//\r
+// NOTE:Set/LongJump needs to have this buffer start\r
+// at 16 byte boundary. Either fix the structure\r
+// which call this buffer or fix inside SetJump/LongJump\r
+// Choosing 1K buffer storage for now\r
+//\r
+typedef struct {\r
+ CHAR8 Buffer[1024];\r
+} EFI_JUMP_BUFFER;\r
+\r
+EFI_STATUS\r
+SetJump (\r
+ IN EFI_PEI_TRANSFER_CONTROL_PROTOCOL *This,\r
+ IN EFI_JUMP_BUFFER *Jump\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ SetJump stores the current register set in the area pointed to\r
+by "save". It returns zero. Subsequent calls to "LongJump" will\r
+restore the registers and return non-zero to the same location.\r
+ On entry, r32 contains the pointer to the jmp_buffer\r
+ \r
+Arguments:\r
+ \r
+ This - Calling context\r
+ Jump - Jump buffer\r
+\r
+Returns:\r
+\r
+ Status code\r
+\r
+--*/\r
+;\r
+\r
+EFI_STATUS\r
+LongJump (\r
+ IN EFI_PEI_TRANSFER_CONTROL_PROTOCOL *This,\r
+ IN EFI_JUMP_BUFFER *Jump\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ LongJump initializes the register set to the values saved by a\r
+previous 'SetJump' and jumps to the return location saved by that\r
+'SetJump'. This has the effect of unwinding the stack and returning\r
+for a second time to the 'SetJump'.\r
+\r
+Arguments:\r
+\r
+ This - Calling context\r
+ Jump - Jump buffer\r
+\r
+Returns:\r
+\r
+ Status code\r
+\r
+--*/\r
+;\r
+\r
+VOID\r
+RtPioICacheFlush (\r
+ IN VOID *StartAddress,\r
+ IN UINTN SizeInBytes\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ Flushing the CPU instruction cache.\r
+\r
+Arguments:\r
+\r
+ StartAddress - Start address to flush\r
+ SizeInBytes - Length in bytes to flush\r
+\r
+Returns:\r
+\r
+ None\r
+\r
+--*/\r
+;\r
+\r
+#endif\r