From af1a266670d040d2f4083ff309d732d648afba2a Mon Sep 17 00:00:00 2001 From: Angelos Mouzakitis Date: Tue, 10 Oct 2023 14:33:42 +0000 Subject: Add submodule dependency files Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec --- .../MdePkg/Library/BaseLib/Ebc/SetJumpLongJump.c | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 roms/edk2/MdePkg/Library/BaseLib/Ebc/SetJumpLongJump.c (limited to 'roms/edk2/MdePkg/Library/BaseLib/Ebc/SetJumpLongJump.c') diff --git a/roms/edk2/MdePkg/Library/BaseLib/Ebc/SetJumpLongJump.c b/roms/edk2/MdePkg/Library/BaseLib/Ebc/SetJumpLongJump.c new file mode 100644 index 000000000..631853cd0 --- /dev/null +++ b/roms/edk2/MdePkg/Library/BaseLib/Ebc/SetJumpLongJump.c @@ -0,0 +1,62 @@ +/** @file + Implementation of SetJump() and LongJump() on EBC. + + SetJump() and LongJump() are not currently supported for the EBC processor type. + Implementation for EBC just returns 0 for SetJump(), and ASSERT() for LongJump(). + + Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include "BaseLibInternals.h" + +/** + Saves the current CPU context that can be restored with a call to LongJump() and returns 0. + + Saves the current CPU context in the buffer specified by JumpBuffer and returns 0. The initial + call to SetJump() must always return 0. Subsequent calls to LongJump() cause a non-zero + value to be returned by SetJump(). + + If JumpBuffer is NULL, then ASSERT(). + For IPF CPUs, if JumpBuffer is not aligned on a 16-byte boundary, then ASSERT(). + + @param JumpBuffer A pointer to CPU context buffer. + + @retval 0 Indicates a return from SetJump(). + +**/ +RETURNS_TWICE +UINTN +EFIAPI +SetJump ( + OUT BASE_LIBRARY_JUMP_BUFFER *JumpBuffer + ) +{ + InternalAssertJumpBuffer (JumpBuffer); + return 0; +} + +/** + Restores the CPU context that was saved with SetJump(). + + Restores the CPU context from the buffer specified by JumpBuffer. + This function never returns to the caller. + Instead it resumes execution based on the state of JumpBuffer. + + @param JumpBuffer A pointer to CPU context buffer. + @param Value The value to return when the SetJump() context is restored. + +**/ +VOID +EFIAPI +InternalLongJump ( + IN BASE_LIBRARY_JUMP_BUFFER *JumpBuffer, + IN UINTN Value + ) +{ + // + // This function cannot work on EBC + // + ASSERT (FALSE); +} -- cgit