// -----------------------------------------------------------------------
-// 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; \
}
-/* Thread groups */
-/*****************/
-typedef marte_thread_set_t FOSA_THREAD_GROUP_ID_T_OPAQUE;
+/* Group clocks */
+/****************/
+typedef marte_thread_set_t FOSA_THREAD_SET_ID_T_OPAQUE;
-#define FOSA_NULL_THREAD_GROUP_ID_OPAQUE 0 /* In MaRTE-OS thread_set_t are
+#define FOSA_NULL_THREAD_SET_ID_OPAQUE 0 /* In MaRTE-OS thread_set_t are
* pointers */
/* FOSA errors */
#define FOSA_ETIMEDOUT ETIMEDOUT
-/* Not found in search (non existing thread, thread_group...) */
+/* Not found in search (non existing thread, thread_set...) */
#define FOSA_ESRCH ESRCH
#define FOSA_ENOTSUP ENOTSUP
/* Thread groups */
/*****************/
-typedef int FOSA_THREAD_GROUP_ID_T_OPAQUE
+typedef int FOSA_THREAD_SET_ID_T_OPAQUE
/* FOSA Errors */
/***************/
#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 */
#define FOSA_NULL_SIGNAL 0
+/* Thread groups */
+/*****************/
+typedef int FOSA_THREAD_SET_ID_T_OPAQUE;
+
/* Clocks and signals */
/**********************/
#define FOSA_CLOCK_ID_T_OPAQUE clockid_t
/* 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
-/////////////////////////////////// PARTIKLE ///////////////////////////////////////////
+///////////////////////////////// PARTIKLE /////////////////////////////////////
#if defined(PARTIKLE)
#include <pthread.h>
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;
-
+#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,
};
};
-
-
#endif
-/////////////////////////////////// PARTIKLE END //////////////////////////////////////
+/////////////////////////////// PARTIKLE END //////////////////////////////////