mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 21:37:35 +00:00
LibC: Implement _setjmp and _longjmp
These are aliases to `setjmp()` and `longjmp()` on our system, as our implementations don't modify the signal mask. This is required for the syzkaller executor process.
This commit is contained in:
parent
eefe471dce
commit
49749e279a
2 changed files with 16 additions and 0 deletions
|
@ -79,4 +79,16 @@ __attribute__((noreturn)) void longjmp(jmp_buf, int val);
|
|||
int sigsetjmp(sigjmp_buf, int savesigs);
|
||||
__attribute__((noreturn)) void siglongjmp(sigjmp_buf, int val);
|
||||
|
||||
/**
|
||||
* _setjmp() and _longjmp() are specified as behaving the exactly the same as
|
||||
* setjmp() and longjmp(), except they are not supposed to modify the signal mask.
|
||||
*
|
||||
* Our implementations already follow this restriction, so we just map them directly
|
||||
* to the same functions.
|
||||
*
|
||||
* https://pubs.opengroup.org/onlinepubs/9699969599/functions/_setjmp.html
|
||||
*/
|
||||
int _setjmp(jmp_buf);
|
||||
__attribute__((noreturn)) void _longjmp(jmp_buf, int val);
|
||||
|
||||
__END_DECLS
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue