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