GK SDK 源码库: XMIPCLinuxV100R005C00SPC030 (kernel/tools/open_source excluded)
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
/* 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_ */
|
||||
Reference in New Issue
Block a user