]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Library/BaseLib/LongJump.c
MdePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdePkg / Library / BaseLib / LongJump.c
1 /** @file
2 Long Jump functions.
3
4 Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7 **/
8
9
10
11
12 #include "BaseLibInternals.h"
13
14 /**
15 Restores the CPU context that was saved with SetJump().
16
17 Restores the CPU context from the buffer specified by JumpBuffer. This
18 function never returns to the caller. Instead is resumes execution based on
19 the state of JumpBuffer.
20
21 If JumpBuffer is NULL, then ASSERT().
22 For IPF CPUs, if JumpBuffer is not aligned on a 16-byte boundary, then ASSERT().
23 If Value is 0, then ASSERT().
24
25 @param JumpBuffer A pointer to CPU context buffer.
26 @param Value The value to return when the SetJump() context is
27 restored and must be non-zero.
28
29 **/
30 VOID
31 EFIAPI
32 LongJump (
33 IN BASE_LIBRARY_JUMP_BUFFER *JumpBuffer,
34 IN UINTN Value
35 )
36 {
37 InternalAssertJumpBuffer (JumpBuffer);
38 ASSERT (Value != 0);
39
40 InternalLongJump (JumpBuffer, Value);
41 }