2 # Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>
3 # This program and the accompanying materials
4 # are licensed and made available under the terms and conditions of the BSD License
5 # which accompanies this distribution. The full text of the license may be found at
6 # http://opensource.org/licenses/bsd-license.php
8 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
9 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 #------------------------------------------------------------------------------
24 #------------------------------------------------------------------------------
26 .globl ASM_PFX(TransferControlSetJump)
27 .globl ASM_PFX(TransferControlLongJump)
28 .globl ASM_PFX(SwitchStacks)
29 .globl ASM_PFX(SwitchIplStacks)
32 #define EFI_WARN_RETURN_FROM_LONG_JUMP 5
47 #(EFIAPI *EFI_PEI_TRANSFER_CONTROL_SET_JUMP) (
48 # IN EFI_PEI_TRANSFER_CONTROL_PROTOCOL *This,
49 # OUT EFI_JUMP_BUFFER *Context
54 # This routine implements the IA32 variant of the SetJump call. Its
55 # responsibility is to store system state information for a possible
56 # subsequent LongJump.
60 # Pointer to CPU context save buffer.
66 ASM_PFX(TransferControlSetJump):
86 #(EFIAPI *EFI_PEI_TRANSFER_CONTROL_LONG_JUMP) (
87 # IN EFI_PEI_TRANSFER_CONTROL_PROTOCOL *This,
88 # IN EFI_JUMP_BUFFER *Context
91 # Routine Description:
93 # This routine implements the IA32 variant of the LongJump call. Its
94 # responsibility is restore the system state to the Context Buffer and
99 # Pointer to CPU context save buffer.
103 # EFI_WARN_RETURN_FROM_LONG_JUMP
106 ASM_PFX(TransferControlLongJump):
130 # Routine Description:
131 # This allows the caller to switch the stack and goes to the new entry point
134 # EntryPoint - Pointer to the location to enter
135 # Parameter - Parameter to pass in
136 # NewStack - New Location of the stack
141 # Nothing. Goes to the Entry Point passing in the new parameters
143 #SwitchStacks PROC C \
144 # EntryPoint:PTR DWORD, \
146 # NewStack:PTR DWORD, \
148 ASM_PFX(SwitchStacks):
168 # Routine Description:
169 # This allows the caller to switch the stack and goes to the new entry point
172 # EntryPoint - Pointer to the location to enter
173 # Parameter1/Parameter2 - Parameter to pass in
174 # NewStack - New Location of the stack
179 # Nothing. Goes to the Entry Point passing in the new parameters
181 #SwitchIplStacks PROC C \
182 # EntryPoint:PTR DWORD, \
183 # Parameter1:DWORD, \
184 # Parameter2:DWORD, \
185 # NewStack:PTR DWORD, \
187 ASM_PFX(SwitchIplStacks):
204 #SwitchIplStacks ENDP