// -----------------------------------------------------------------------
-// Copyright (C) 2006 - 2008 FRESCOR consortium partners:
+// Copyright (C) 2006 - 2009 FRESCOR consortium partners:
//
// Universidad de Cantabria, SPAIN
// University of York, UK
/* Local jump */
/**************/
-#include "marte_non_local_jmp.h"
+#include "misc/marte_non_local_jmp.h"
#define FOSA_LONG_JUMP_CONTEXT_T_OPAQUE struct { \
marte_nonlocaljmp_context_t marte_context; \
#include <unistd.h>
#include <linux/unistd.h>
+#ifndef _XOPEN_SOURCE
#define _XOPEN_SOURCE 500
+#endif
+#ifndef __USE_UNIX98
#define __USE_UNIX98
+#endif
#include <pthread.h>
#include <signal.h>
+#include <setjmp.h>
#include <errno.h>
#include <time.h>
-/* Time */
-/********/
-// typedef struct timespec fosa_rel_time_t;
-// typedef struct timespec fosa_abs_time_t;
+FOSA_CPP_BEGIN_DECLS
+
+/* Local Jump */
+/**************/
+typedef struct {
+ sigjmp_buf setjmp_context;
+ int setjmp_retvalue;
+} FOSA_LONG_JUMP_CONTEXT_T_OPAQUE;
/* Threads and signals */
/* hack to get AQuoSA sources compile without having none
* of the application level scheduler header files and symbols */
#define posix_appsched_actions_t int
-#define FOSA_LONG_JUMP_CONTEXT_T_OPAQUE int
#define FOSA_ADS_ACTIONS_T_OPAQUE posix_appsched_actions_t
bool activated;
} FOSA_ADS_ACTIONS_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;
typedef timer_t FOSA_TIMER_ID_T_OPAQUE;
typedef pthread_cond_t FOSA_COND_T_OPAQUE;
typedef pthread_mutex_t FOSA_MUTEX_T_OPAQUE;
+typedef unsigned long FOSA_LONG_JUMP_CONTEXT_T_OPAQUE [32];
+typedef group_clock_t FOSA_THREAD_SET_ID_T_OPAQUE;
-typedef int FOSA_THREAD_SET_ID_T_OPAQUE;
-#define FOSA_NULL_THREAD_SET_ID_OPAQUE -1;
+#define FOSA_NULL_THREAD_SET_ID_OPAQUE 0x0;
enum _fosa_clocks_e {
FOSA_SYSTEM_CLOCK_OPAQUE = CLOCK_MONOTONIC
enum _fosa_signal_limits_e {
LONGJMP_FIRSTSIG = SIGRTMAX - LONGJMP_NSIG + 1,
FOSA_SIGNAL_MAX = LONGJMP_FIRSTSIG - 1,
- FOSA_SIGNAL_MIN = FOSA_SIGNAL_MAX,
+ FOSA_SIGNAL_MIN = SIGRTMIN,
FOSA_NULL_SIGNAL = -1,
};