#include <sched.h>
#include <stdlib.h>
#include <setjmp.h>
+#include <limits.h>
typedef struct {
posix_appsched_actions_t actions;
bool activated;
} FOSA_ADS_ACTIONS_T_OPAQUE;
-typedef struct {
- jmp_buf jmp_context;
- bool jmp_hasexecuted;
- sigset_t jmp_sigmask;
-} FOSA_LONG_JUMP_CONTEXT_T_OPAQUE;
+typedef unsigned long FOSA_LONG_JUMP_CONTEXT_T_OPAQUE [32];
typedef pthread_t FOSA_THREAD_ID_T_OPAQUE;
typedef pthread_attr_t FOSA_THREAD_ATTR_T_OPAQUE;
FOSA_SYSTEM_CLOCK_OPAQUE = CLOCK_MONOTONIC
};
+#define LONGJMP_NSIG 3
+
+#if LONGJMP_NSIG > (RTSIG_MAX - 1)
+# error LONGJMP_NSIG too big (LONGJMP_NSIG > RTSIG_MAX - 1)
+#endif
+
enum _fosa_signal_limits_e {
- LONGJMP_NSIG = 3,
LONGJMP_FIRSTSIG = SIGRTMAX - LONGJMP_NSIG + 1,
FOSA_SIGNAL_MAX = LONGJMP_FIRSTSIG - 1,
FOSA_SIGNAL_MIN = FOSA_SIGNAL_MAX,
};
+
enum _fosa_errors_e {
FOSA_EINVAL = EINVAL,
FOSA_EAGAIN = EAGAIN,