]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseLib/Ebc/SetJumpLongJump.c
add internal command header reference
[mirror_edk2.git] / MdePkg / Library / BaseLib / Ebc / SetJumpLongJump.c
index ab7716cb94921add4e20ac8004610d55e56f1848..ed4ec2f11571fc605c45352849533db43aa8c825 100644 (file)
   Module Name:  SetJumpLongJump.c\r
 \r
 **/\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include <BaseLibInternals.h>\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
-EFIAPI\r
 InternalAssertJumpBuffer (\r
   IN      BASE_LIBRARY_JUMP_BUFFER  *JumpBuffer\r
   );\r
 \r
+/**\r
+  Saves the current CPU context that can be restored with a call to LongJump() and returns 0.\r
+\r
+  Saves the current CPU context in the buffer specified by JumpBuffer and returns 0.  The initial\r
+  call to SetJump() must always return 0.  Subsequent calls to LongJump() cause a non-zero\r
+  value to be returned by SetJump().\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
 UINTN\r
 EFIAPI\r
 SetJump (\r
@@ -30,6 +57,17 @@ SetJump (
   return 0;\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
 InternalLongJump (\r
@@ -37,5 +75,8 @@ InternalLongJump (
   IN      UINTN                     Value\r
   )\r
 {\r
+  //\r
+  // This function cannot work on EBC\r
+  //\r
   ASSERT (FALSE);\r
 }\r