/* SPDX-License-Identifier: GPL-2.0+ */ /* * (C) 2018 Google, Inc * Written by Simon Glass */ #ifndef _SETJMP_H_ #define _SETJMP_H_ struct jmp_buf_data { /* * We're not sure how long this should be: * * amd64: 200 bytes * arm64: 392 bytes * armhf: 392 bytes * * So allow space for all of those, plus some extra. * We don't need to worry about 16-byte alignment, since this does not * run on Windows. */ ulong data[128]; }; typedef struct jmp_buf_data jmp_buf[1]; /* * We have to directly link with the system versions of * setjmp/longjmp, because setjmp must not return as otherwise * the stack may become invalid. */ int setjmp(jmp_buf jmp); __noreturn void longjmp(jmp_buf jmp, int ret); #endif /* _SETJMP_H_ */