1/*
2 * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#include <asm_macros.S>
8
9	.globl	begin_sdei_synchronous_dispatch
10
11/*
12 * void begin_sdei_synchronous_dispatch(jmp_buf *buffer);
13 *
14 * Begin SDEI dispatch synchronously by setting up a jump point, and exiting
15 * EL3. This jump point is jumped to by the dispatcher after the event is
16 * completed by the client.
17 */
18func begin_sdei_synchronous_dispatch
19	stp	x30, xzr, [sp, #-16]!
20	bl	setjmp
21	cbz	x0, 1f
22	ldp	x30, xzr, [sp], #16
23	ret
241:
25	b	el3_exit
26endfunc begin_sdei_synchronous_dispatch
27