#include <setjmp.h>

setjmp.h

_JBLEN is number of ints required to save the following: rflags, rip, rbp, rsp, rbx, r12, r13, r14, r15... these are 8 bytes each mxcsr, fp control word, sigmask... these are 4 bytes each add 16 ints for future expansion needs...
includes: sys/cdefs.h, Availability.h
7 functions · 2 typedefs · 1 macro

macro_JBLEN

_JBLEN is the number of ints required to save the following: r21-r29, sp, fp, lr == 12 registers, 8 bytes each. d8-d15 are another 8 registers, each 8 bytes long. (aapcs64 specifies that only 64-bit versions of FP registers need to be saved). Finally, two 8-byte fields for signal handling purposes.
#define _JBLEN ((14 + 8 + 2) * 2)

typedefjmp_buf

typedef int jmp_buf[_JBLEN]

typedefsigjmp_buf

typedef int sigjmp_buf[_JBLEN + 1]

functionsetjmp

extern int setjmp(jmp_buf)
man page · June 4, 1993
setjmp(3) — non-local jumps

functionlongjmp

__dead2
extern void longjmp(jmp_buf, int)
man page · June 4, 1993
longjmp(3) — non-local jumps

function_setjmp

int _setjmp(jmp_buf)
man page · June 4, 1993
_setjmp(3) — non-local jumps

function_longjmp

__dead2
void _longjmp(jmp_buf, int)
man page · June 4, 1993
_longjmp(3) — non-local jumps

functionsigsetjmp

int sigsetjmp(sigjmp_buf, int)
man page · June 4, 1993
sigsetjmp(3) — non-local jumps

functionsiglongjmp

__dead2
void siglongjmp(sigjmp_buf, int)
man page · June 4, 1993
siglongjmp(3) — non-local jumps

functionlongjmperror

void longjmperror(void)
man page · June 4, 1993
longjmperror(3) — non-local jumps