1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * (C) 2018 Google, Inc 4 * Written by Simon Glass <sjg@chromium.org> 5 */ 6 7 #ifndef _SETJMP_H_ 8 #define _SETJMP_H_ 9 10 struct jmp_buf_data { 11 /* 12 * We're not sure how long this should be: 13 * 14 * amd64: 200 bytes 15 * arm64: 392 bytes 16 * armhf: 392 bytes 17 * 18 * So allow space for all of those, plus some extra. 19 * We don't need to worry about 16-byte alignment, since this does not 20 * run on Windows. 21 */ 22 ulong data[128]; 23 }; 24 25 typedef struct jmp_buf_data jmp_buf[1]; 26 27 int setjmp(jmp_buf jmp); 28 __noreturn void longjmp(jmp_buf jmp, int ret); 29 30 #endif /* _SETJMP_H_ */ 31