mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 17:44:19 +00:00

Instead of having a custom implementation of setjmp() and longjmp() it is better to follow the C standard. The comments in setjmp.h are no longer needed as there are no deviations from the expected one, so they have been removed. All SDEI code that relied on them has been fixed to use the new function prototypes and structs. Change-Id: I6cd2e21cb5a5bcf81ba12283f2e4c067bd5172ca Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
26 lines
616 B
ArmAsm
26 lines
616 B
ArmAsm
/*
|
|
* Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#include <asm_macros.S>
|
|
|
|
.globl begin_sdei_synchronous_dispatch
|
|
|
|
/*
|
|
* void begin_sdei_synchronous_dispatch(jmp_buf *buffer);
|
|
*
|
|
* Begin SDEI dispatch synchronously by setting up a jump point, and exiting
|
|
* EL3. This jump point is jumped to by the dispatcher after the event is
|
|
* completed by the client.
|
|
*/
|
|
func begin_sdei_synchronous_dispatch
|
|
stp x30, xzr, [sp, #-16]!
|
|
bl setjmp
|
|
cbz x0, 1f
|
|
ldp x30, xzr, [sp], #16
|
|
ret
|
|
1:
|
|
b el3_exit
|
|
endfunc begin_sdei_synchronous_dispatch
|