posix-next API 0.1.0
Out-of-tree Zephyr POSIX module
Loading...
Searching...
No Matches
posix_setjmp.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: Copyright The Zephyr Project Contributors
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
18#ifndef ZEPHYR_INCLUDE_POSIX_POSIX_SETJMP_H_
19#define ZEPHYR_INCLUDE_POSIX_POSIX_SETJMP_H_
20
21#if defined(_POSIX_C_SOURCE) || defined(__DOXYGEN__)
22
23#include <setjmp.h>
24#include <signal.h>
25
26#include <zephyr/toolchain.h>
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32#ifndef __sigjmp_buf_defined
33#define __sigjmp_buf_defined
42typedef struct __sigjmp_buf {
43 jmp_buf __env;
44 sigset_t __mask;
45 int __savemask;
47#endif
48
49/* saves the signal mask for sigsetjmp() and always returns 0 (internal) */
50int __sigjmp_save(struct __sigjmp_buf *env, int savemask);
51
52#if defined(__DOXYGEN__)
69int sigsetjmp(sigjmp_buf env, int savemask);
70#else
71#define sigsetjmp(env, savemask) (__sigjmp_save((env), (savemask)), setjmp((env)->__env))
72#endif
73
87FUNC_NORETURN void siglongjmp(sigjmp_buf env, int val);
88
89#ifdef __cplusplus
90}
91#endif
92
93#endif /* defined(_POSIX_C_SOURCE) || defined(__DOXYGEN__) */
94
95#endif /* ZEPHYR_INCLUDE_POSIX_POSIX_SETJMP_H_ */
struct __sigjmp_buf sigjmp_buf[1]
Jump buffer for sigsetjmp() and siglongjmp()
int sigsetjmp(sigjmp_buf env, int savemask)
Save the calling environment and, optionally, the signal mask.
FUNC_NORETURN void siglongjmp(sigjmp_buf env, int val)
Restore the environment saved by sigsetjmp().
Jump buffer for sigsetjmp() and siglongjmp()
Set of signals (bitmask).