]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseLib/SwitchStack.c
Fix some typos
[mirror_edk2.git] / MdePkg / Library / BaseLib / SwitchStack.c
index 5dc21f547930f7ec42e7494f8907629645b3cb46..696b9edaaaa0d8106754555964a15ddac6cf24d3 100644 (file)
@@ -1,8 +1,8 @@
 /** @file\r
   Switch Stack functions.\r
 \r
-  Copyright (c) 2006 - 2007, Intel Corporation<BR>\r
-  All rights reserved. This program and the accompanying materials\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+  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
   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:  SwitchStack.c\r
-\r
 **/\r
 \r
-#include <BaseLibInternals.h>\r
+#include "BaseLibInternals.h"\r
 \r
 /**\r
   Transfers control to a function starting with a new stack.\r
                       function.\r
   @param  NewStack    A pointer to the new stack to use for the EntryPoint\r
                       function.\r
+  @param  ...         This variable argument list is ignored for IA32, x64, and EBC.  \r
+                      For IPF, this variable argument list is expected to contain \r
+                      a single parameter of type VOID * that specifies the new backing \r
+                      store pointer.\r
+\r
 \r
 **/\r
 VOID\r
@@ -52,12 +55,20 @@ SwitchStack (
 {\r
   VA_LIST    Marker;\r
 \r
-  ASSERT (EntryPoint != NULL && NewStack != NULL);\r
+  ASSERT (EntryPoint != NULL);\r
+  ASSERT (NewStack != NULL);\r
+\r
+  //\r
+  // New stack must be aligned with CPU_STACK_ALIGNMENT\r
+  //\r
+  ASSERT (((UINTN)NewStack & (CPU_STACK_ALIGNMENT - 1)) == 0);\r
 \r
   VA_START (Marker, NewStack);\r
 \r
   InternalSwitchStack (EntryPoint, Context1, Context2, NewStack, Marker);\r
 \r
+  VA_END (Marker);\r
+\r
   //\r
   // InternalSwitchStack () will never return\r
   //\r