BL31: Introduce jump primitives
This patch introduces setjmp() and ongjmp() primitives to enable
standard setjmp/longjmp style execution. Both APIs parameters take a
pointer to struct jmpbuf type, which hosts CPU registers saved/restored
during jump.

As per the standard usage:

  - setjmp() return 0 when a jump is setup; and a non-zero value when
    returning from jump.

  - The caller of setjmp() must not return, or otherwise update stack
    pointer since.

Change-Id: I4af1d32e490cfa547979631b762b4cba188d0551
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
1 parent 2ccfcb2 commit e7b9473e1591d4ab375a95ebbb9256adfe9d4670
@Jeenu Viswambharan Jeenu Viswambharan authored on 16 Feb 2018
Showing 3 changed files
View
bl31/bl31.mk
View
include/lib/aarch64/setjmp.h 0 → 100644
View
lib/aarch64/setjmp.S 0 → 100644