blob: 8449e4b5aba8b04c8ac42c65f8328f409d3e17c0 [file] [log] [blame]
Jeenu Viswambharan8b7e6bc2018-02-16 12:07:48 +00001/*
Antonio Nino Diaz4586d1c2019-02-08 13:10:45 +00002 * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
Jeenu Viswambharan8b7e6bc2018-02-16 12:07:48 +00003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#include <asm_macros.S>
8
9 .globl begin_sdei_synchronous_dispatch
10
11/*
Antonio Nino Diaz4586d1c2019-02-08 13:10:45 +000012 * void begin_sdei_synchronous_dispatch(jmp_buf *buffer);
Jeenu Viswambharan8b7e6bc2018-02-16 12:07:48 +000013 *
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