REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3832 Add BaseFspSwitchStackLib Support for X64. Cc: Chasel Chiu <chasel.chiu@intel.com> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com> Cc: Star Zeng <star.zeng@intel.com> Cc: Ashraf Ali S <ashraf.ali.s@intel.com> Signed-off-by: Ted Kuo <ted.kuo@intel.com> Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>
		
			
				
	
	
		
			36 lines
		
	
	
		
			778 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			778 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
| 
 | |
|   Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #include <Base.h>
 | |
| #include <Library/BaseLib.h>
 | |
| #include <Library/FspCommonLib.h>
 | |
| 
 | |
| /**
 | |
| 
 | |
|   Switch the current stack to the previous saved stack.
 | |
| 
 | |
|   @param[in]  NewStack         The new stack to be switched.
 | |
| 
 | |
|   @return OldStack         After switching to the saved stack,
 | |
|                            this value will be saved in eax before returning.
 | |
| 
 | |
| 
 | |
| **/
 | |
| UINTN
 | |
| SwapStack (
 | |
|   IN  UINTN  NewStack
 | |
|   )
 | |
| {
 | |
|   FSP_GLOBAL_DATA  *FspData;
 | |
|   UINTN            OldStack;
 | |
| 
 | |
|   FspData            = GetFspGlobalDataPointer ();
 | |
|   OldStack           = FspData->CoreStack;
 | |
|   FspData->CoreStack = (UINTN) NewStack;
 | |
|   return OldStack;
 | |
| }
 |