sdei_dispatch.S 616 B

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