]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseLib/LongJump.c
Optimized HighBitSetXX() functions
[mirror_edk2.git] / MdePkg / Library / BaseLib / LongJump.c
index 07b81155ffa76422bac5b283c3de3dc9b49f34c8..a18c974e9110faaa51f1b56080befd455eec8e12 100644 (file)
@@ -1,5 +1,5 @@
 /** @file\r
-  Long Jump functions. \r
+  Long Jump functions.\r
 \r
   Copyright (c) 2006, Intel Corporation\r
   All rights reserved. This program and the accompanying materials\r
 \r
 **/\r
 \r
+/**\r
+  Worker function that checks ASSERT condition for JumpBuffer\r
+\r
+  Checks ASSERT condition for JumpBuffer.\r
+\r
+  If JumpBuffer is NULL, then ASSERT().\r
+  For IPF CPUs, if JumpBuffer is not aligned on a 16-byte boundary, then ASSERT().\r
+\r
+  @param  JumpBuffer    A pointer to CPU context buffer.\r
+\r
+**/\r
+VOID\r
+InternalAssertJumpBuffer (\r
+  IN      BASE_LIBRARY_JUMP_BUFFER  *JumpBuffer\r
+  );\r
+\r
+/**\r
+  Restores the CPU context that was saved with SetJump().\r
+\r
+  Restores the CPU context from the buffer specified by JumpBuffer.\r
+  This function never returns to the caller.\r
+  Instead is resumes execution based on the state of JumpBuffer.\r
+\r
+  @param  JumpBuffer    A pointer to CPU context buffer.\r
+  @param  Value         The value to return when the SetJump() context is restored.\r
+\r
+**/\r
 VOID\r
 EFIAPI\r
-_LongJump (\r
-  IN BASE_LIBRARY_JUMP_BUFFER  *JumpBuffer,\r
-  IN      UINTN                Value\r
+InternalLongJump (\r
+  IN      BASE_LIBRARY_JUMP_BUFFER  *JumpBuffer,\r
+  IN      UINTN                     Value\r
   );\r
 \r
 /**\r
@@ -29,6 +56,7 @@ _LongJump (
   Instead is resumes execution based on the state of JumpBuffer.\r
 \r
   If JumpBuffer is NULL, then ASSERT().\r
+  For IPF CPUs, if JumpBuffer is not aligned on a 16-byte boundary, then ASSERT().\r
   If Value is 0, then ASSERT().\r
 \r
   @param  JumpBuffer    A pointer to CPU context buffer.\r
@@ -38,12 +66,12 @@ _LongJump (
 VOID\r
 EFIAPI\r
 LongJump (\r
-  IN BASE_LIBRARY_JUMP_BUFFER  *JumpBuffer,\r
-  IN      UINTN                Value\r
+  IN      BASE_LIBRARY_JUMP_BUFFER  *JumpBuffer,\r
+  IN      UINTN                     Value\r
   )\r
 {\r
-  ASSERT (JumpBuffer != NULL);\r
+  InternalAssertJumpBuffer (JumpBuffer);\r
   ASSERT (Value != 0);\r
-  \r
-  _LongJump (JumpBuffer, Value);\r
+\r
+  InternalLongJump (JumpBuffer, Value);\r
 }\r