Home | History | Annotate | Download | only in BaseFspSwitchStackLib
      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 
     43