1 /* 2 * (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH 3 * (C) Copyright 2016 Alexander Graf <agraf@suse.de> 4 * 5 * SPDX-License-Identifier: GPL-2.0+ 6 */ 7 8 #ifndef _SETJMP_H_ 9 #define _SETJMP_H_ 1 10 11 /* 12 * This really should be opaque, but the EFI implementation wrongly 13 * assumes that a 'struct jmp_buf_data' is defined. 14 */ 15 struct jmp_buf_data { 16 #if defined(__aarch64__) 17 u64 regs[13]; 18 #else 19 u32 regs[10]; /* r4-r9, sl, fp, sp, lr */ 20 #endif 21 }; 22 23 typedef struct jmp_buf_data jmp_buf[1]; 24 25 int setjmp(jmp_buf jmp); 26 void longjmp(jmp_buf jmp, int ret); 27 28 #endif /* _SETJMP_H_ */ 29