]> git.proxmox.com Git - mirror_edk2.git/blob - IntelFsp2Pkg/Library/BaseFspSwitchStackLib/FspSwitchStackLib.c
Add IntelFsp2Pkg and IntelFsp2WrapperPkg.
[mirror_edk2.git] / IntelFsp2Pkg / Library / BaseFspSwitchStackLib / FspSwitchStackLib.c
1 /** @file
2
3 Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php.
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 **/
13
14 #include <Base.h>
15 #include <Library/BaseLib.h>
16 #include <Library/FspCommonLib.h>
17
18 /**
19
20 Switch the current stack to the previous saved stack.
21
22 @param[in] NewStack The new stack to be switched.
23
24 @return OldStack After switching to the saved stack,
25 this value will be saved in eax before returning.
26
27
28 **/
29 UINT32
30 SwapStack (
31 IN UINT32 NewStack
32 )
33 {
34 FSP_GLOBAL_DATA *FspData;
35 UINT32 OldStack;
36
37 FspData = GetFspGlobalDataPointer ();
38 OldStack = FspData->CoreStack;
39 FspData->CoreStack = NewStack;
40 return OldStack;
41 }
42