xref: /openbmc/u-boot/arch/sandbox/include/asm/setjmp.h (revision ae485b54)
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