1234567891011121314151617181920212223242526272829303132333435 |
- /* SPDX-License-Identifier: GPL-2.0+ */
- /*
- * (C) 2018 Google, Inc
- * Written by Simon Glass <sjg@chromium.org>
- */
- #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_ */
|