]> rtime.felk.cvut.cz Git - frescor/fosa.git/commitdiff
Split FOSA opaque types to multiple files based on platform name
authorMichal Sojka <sojkam1@fel.cvut.cz>
Mon, 31 Jan 2011 09:00:49 +0000 (10:00 +0100)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Mon, 31 Jan 2011 09:00:49 +0000 (10:00 +0100)
The aim of this is to have more readable code. As we are now focused mainly
on Linux platform, we do not want to mistakenly find declarations for
other platforms.

include/Makefile.omk
include/fosa_opaque_types.h [deleted file]
include/fosa_opaque_types_linux.h [new file with mode: 0644]
include/fosa_opaque_types_marte.h [new file with mode: 0644]
include/fosa_opaque_types_partikle.h [new file with mode: 0644]
include/fosa_opaque_types_rtlinux.h [new file with mode: 0644]
include/fosa_opaque_types_virtualtime.h [new file with mode: 0644]

index 9aa9efeec31f427240988465d9ce35ada83cdedf..e4a552f1c1bdee54ad633f7d892b04c896eae4e0 100644 (file)
@@ -1 +1,10 @@
-include_HEADERS = $(notdir $(wildcard $(SOURCES_DIR)/*.h))
+include_HEADERS = fosa_app_def_sched.h fosa_clocks_and_timers.h                \
+                 fosa_configuration_parameters.h fosa_cpp_macros.h     \
+                 fosa_group_clocks.h fosa.h fosa_long_jump.h           \
+                 fosa_mutexes_and_condvars.h fosa_platform_values.h    \
+                 fosa_threads_and_signals.h fosa_time.h                \
+                 fosa_time_numeric.h fosa_time_timespec.h              \
+                 fosa_types.h
+
+renamed_include_HEADERS = fosa_opaque_types_$(PLATFORM_FN).h->fosa_opaque_types.h
+
diff --git a/include/fosa_opaque_types.h b/include/fosa_opaque_types.h
deleted file mode 100644 (file)
index 535c903..0000000
+++ /dev/null
@@ -1,536 +0,0 @@
-// -----------------------------------------------------------------------
-//  Copyright (C) 2006 - 2009 FRESCOR consortium partners:
-//
-//    Universidad de Cantabria,              SPAIN
-//    University of York,                    UK
-//    Scuola Superiore Sant'Anna,            ITALY
-//    Kaiserslautern University,             GERMANY
-//    Univ. Politécnica  Valencia,           SPAIN
-//    Czech Technical University in Prague,  CZECH REPUBLIC
-//    ENEA                                   SWEDEN
-//    Thales Communication S.A.              FRANCE
-//    Visual Tools S.A.                      SPAIN
-//    Rapita Systems Ltd                     UK
-//    Evidence                               ITALY
-//
-//    See http://www.frescor.org for a link to partners' websites
-//
-//           FRESCOR project (FP6/2005/IST/5-034026) is funded
-//        in part by the European Union Sixth Framework Programme
-//        The European Union is not liable of any use that may be
-//        made of this code.
-//
-//
-//  based on previous work (FSF) done in the FIRST project
-//
-//   Copyright (C) 2005  Mälardalen University, SWEDEN
-//                       Scuola Superiore S.Anna, ITALY
-//                       Universidad de Cantabria, SPAIN
-//                       University of York, UK
-//
-//   FSF API web pages: http://marte.unican.es/fsf/docs
-//                      http://shark.sssup.it/contrib/first/docs/
-//
-//   This file is part of FOSA (Frsh Operating System Adaption)
-//
-//  FOSA is free software; you can redistribute it and/or modify it
-//  under terms of the GNU General Public License as published by the
-//  Free Software Foundation; either version 2, or (at your option) any
-//  later version.  FOSA is distributed in the hope that it will be
-//  useful, but WITHOUT ANY WARRANTY; without even the implied warranty
-//  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-//  General Public License for more details. You should have received a
-//  copy of the GNU General Public License along with FOSA; see file
-//  COPYING. If not, write to the Free Software Foundation, 675 Mass Ave,
-//  Cambridge, MA 02139, USA.
-//
-//  As a special exception, including FOSA header files in a file,
-//  instantiating FOSA generics or templates, or linking other files
-//  with FOSA objects to produce an executable application, does not
-//  by itself cause the resulting executable application to be covered
-//  by the GNU General Public License. This exception does not
-//  however invalidate any other reasons why the executable file might be
-//  covered by the GNU Public License.
-// -----------------------------------------------------------------------
-//fosa_opaque_types.h
-//==============================================
-//  ********  ******    ********  **********
-//  **///// /**    **  **//////  /**     /**
-//  **      /**    ** /**        /**     /**
-//  ******* /**    ** /********* /**********
-//  **////  /**    ** ////////** /**//////**
-//  **      /**    **        /** /**     /**
-//  **      /**    **  ********  /**     /**
-//  //       /******/  ////////   //      //
-//
-// FOSA(Frescor Operating System Adaptation layer)
-//================================================
-
-// Implementation dependent definitions
-
-#ifndef _FOSA_OPAQUE_TYPES_H_
-#define _FOSA_OPAQUE_TYPES_H_
-
-#include <stdbool.h>
-
-#include "fosa_cpp_macros.h"
-#include "fosa_opaque_types_time.h"
-
-///////////////////////  MARTE_OS /////////////////////////////
-
-#ifdef MARTE_OS
-
-#include <pthread.h>
-#include <signal.h>
-#include <time.h>
-#include <sched.h>
-#include <errno.h>
-
-FOSA_CPP_BEGIN_DECLS
-
-
-/* Thread and signals */
-/**********************/
-typedef pthread_t FOSA_THREAD_ID_T_OPAQUE;
-typedef pthread_attr_t FOSA_THREAD_ATTR_T_OPAQUE;
-
-typedef int FOSA_SIGNAL_T_OPAQUE;
-/* Signal info is defined as a union in thread_and_signals */
-
-#define FOSA_SIGNAL_MIN       SIGRTMIN
-#define FOSA_SIGNAL_MAX       SIGRTMIN+0
-
-#define FOSA_NULL_SIGNAL 0
-
-/* Clocks and timers */
-/**********************/
-typedef clockid_t FOSA_CLOCK_ID_T_OPAQUE;
-typedef timer_t FOSA_TIMER_ID_T_OPAQUE;
-
-#define FOSA_SYSTEM_CLOCK_OPAQUE  CLOCK_MONOTONIC
-
-/* Mutex and conditional variables */
-/***********************************/
-typedef pthread_mutex_t FOSA_MUTEX_T_OPAQUE;
-typedef pthread_cond_t FOSA_COND_T_OPAQUE;
-
-
-/* Application defined Scheduling */
-/**********************************/
-#define FOSA_ADS_ACTIONS_T_OPAQUE  struct \
-{ \
-    posix_appsched_actions_t actions; \
-    struct timespec *timeout_ptr; \
-    struct timespec timeout; \
-    bool rejected; \
-    bool suspended; \
-    bool activated; \
-} 
-
-
-/* Local jump */
-/**************/
-#include "misc/marte_non_local_jmp.h"
-
-#define FOSA_LONG_JUMP_CONTEXT_T_OPAQUE  struct { \
-  marte_nonlocaljmp_context_t marte_context;      \
-  fosa_thread_id_t tid;                            \
-}
-
-
-/* Group clocks */
-/****************/
-typedef marte_thread_set_t FOSA_THREAD_SET_ID_T_OPAQUE;
-
-#define FOSA_NULL_THREAD_SET_ID_OPAQUE 0 /* In MaRTE-OS thread_set_t are
-                                     * pointers */
-
-/* FOSA errors */
-/***************/
-/** Not enough memory available **/
-#define FOSA_ENOMEM   ENOMEM
-
-/** Invalid parameter **/
-#define FOSA_EINVAL   EINVAL
-
-/** Still pending information **/
-#define FOSA_EAGAIN   EAGAIN
-
-/** FOSA ADS errors **/
-#ifdef MARTE_OS
-#define EREJECT   201 /* (for linux_lib_arch) Appsched has rejected object */
-#endif
-
-#define FOSA_EREJECT   EREJECT
-#define FOSA_EMASKED   -2
-#define FOSA_EPOLICY   -3
-
-#define FOSA_ETIMEDOUT ETIMEDOUT
-
-/* Not found in search (non existing thread, thread_set...) */
-#define FOSA_ESRCH   ESRCH
-#define FOSA_ENOTSUP ENOTSUP
-
-#endif
-
-///////////////////////  End of MARTE_OS  /////////////////////////////
-
-
-/////////////////////// RT_LINUX ///////////////////////////
-
-#ifdef RT_LINUX
-
-/* Very similar to MARTE_OS but I leave separate for clarity */
-
-#include <pthread.h>
-#include <signal.h>
-#include <time.h>
-#include <sched.h>
-#include <errno.h>
-#include <rtl_timer.h>
-
-
-/* Threads and signals */
-/***********************/
-#define    FOSA_THREAD_ID_T_OPAQUE pthread_t
-
-typedef pthread_attr_t FOSA_THREAD_ATTR_T_OPAQUE;
-typedef int FOSA_SIGNAL_T_OPAQUE;
-/* Signal info is defined as a union in fosa_types.h */
-
-// The minimum and maximum signal numbers that may be used by the FRSH
-// implementation
-#define FOSA_SIGNAL_MIN       SIGRTMIN
-#define FOSA_SIGNAL_MAX       SIGRTMIN+0
-#define FOSA_NULL_SIGNAL 0
-
-/* Clocks and timers */
-/*********************/
-#define    FOSA_CLOCK_ID_T_OPAQUE    clockid_t
-#define    FOSA_TIMER_ID_T_OPAQUE    timer_t
-#define    FOSA_SYSTEM_CLOCK_OPAQUE  CLOCK_MONOTONIC
-
-/* Mutex and cond vars */
-/***********************/
-typedef pthread_mutex_t FOSA_MUTEX_T_OPAQUE;
-#define    FOSA_COND_T_OPAQUE        pthread_cond_t
-
-/* Thread groups */
-/*****************/
-typedef int FOSA_THREAD_SET_ID_T_OPAQUE
-
-/* FOSA Errors */
-/***************/
-/** Not enough memory available **/
-#define FOSA_ENOMEM   ENOMEM
-/** Invalid parameter **/
-#define FOSA_EINVAL   EINVAL
-/** Still pending information **/
-#define FOSA_EAGAIN   EAGAIN
-
-/** FOSA ADS errors **/
-#define FOSA_EREJECT   EREJECT
-#define FOSA_EMASKED   -2
-#define FOSA_EPOLICY   -3
-
-#define FOSA_ETIMEDOUT ETIMEDOUT
-
-#endif
-
-///////////////////////  End of RT_LINUX  /////////////////////////////
-
-
-////////////////////////// OSE    //////////////////////////////////////
-
-#ifdef OSE
-
-
-
-/* Put OSE dependent includes and defines here */
-
-#endif /* OSE */
-
-
-
-/////////////////////// AQuoSA ///////////////////////////
-
-#ifdef AQuoSA
-
-#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>
-
-FOSA_CPP_BEGIN_DECLS
-
-/* Local Jump */
-/**************/
-typedef struct {
-       sigjmp_buf setjmp_context;
-       int setjmp_retvalue;
-} FOSA_LONG_JUMP_CONTEXT_T_OPAQUE;
-
-
-/* Threads and signals */
-/***********************/
-typedef struct {
-       pthread_t pthread_id;
-       pid_t linux_pid;
-       pid_t linux_tid;
-} FOSA_THREAD_ID_T_OPAQUE;
-
-
-typedef pthread_attr_t FOSA_THREAD_ATTR_T_OPAQUE;
-typedef int FOSA_SIGNAL_T_OPAQUE;
-
-
-// The minimum and maximum signal numbers that may be used by the FRSH
-// implementation
-#define FOSA_SIGNAL_MIN       SIGRTMIN
-#define FOSA_SIGNAL_MAX       SIGRTMIN+0
-
-#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
-#define    FOSA_SYSTEM_CLOCK_OPAQUE  CLOCK_MONOTONIC
-#define    FOSA_TIMER_ID_T_OPAQUE    timer_t
-
-
-
-/* Mutex and cond vars */
-/***********************/
-typedef pthread_mutex_t FOSA_MUTEX_T_OPAQUE;
-#define    FOSA_COND_T_OPAQUE        pthread_cond_t
-
-
-/* Application Defined Scheduling */
-/**********************************/
-/* 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_ADS_ACTIONS_T_OPAQUE posix_appsched_actions_t
-
-
-/* FOSA Errors */
-
-/** Not enough memory available **/
-#define FOSA_ENOMEM   ENOMEM
-
-/** Invalid parameter **/
-#define FOSA_EINVAL   EINVAL
-
-/** Still pending information **/
-#define FOSA_EAGAIN   EAGAIN
-
-#define FOSA_EREJECT   EREJECT
-#define FOSA_EMASKED   -2
-#define FOSA_EPOLICY   -3
-
-#define FOSA_ETIMEDOUT ETIMEDOUT
-
-
-#endif 
-////////////////// END of AQuoSA //////////////////////
-
-
-
-///////////////////////////////// PARTIKLE /////////////////////////////////////
-#if defined(PARTIKLE)
-
-#include <pthread.h>
-#include <signal.h>
-#include <time.h>
-#include <sched.h>
-#include <stdlib.h>
-#include <setjmp.h>
-#include <limits.h>
-
-typedef struct {
-    posix_appsched_actions_t actions;
-    struct timespec * timeout_ptr;
-    struct timespec timeout;
-    bool rejected;
-    bool suspended;
-    bool activated;
-} FOSA_ADS_ACTIONS_T_OPAQUE;
-
-
-typedef pthread_t                   FOSA_THREAD_ID_T_OPAQUE;
-typedef pthread_attr_t              FOSA_THREAD_ATTR_T_OPAQUE;
-typedef int                         FOSA_SIGNAL_T_OPAQUE;
-typedef clockid_t                   FOSA_CLOCK_ID_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
-};
-
-#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_FIRSTSIG = SIGRTMAX - LONGJMP_NSIG + 1,
-  FOSA_SIGNAL_MAX = LONGJMP_FIRSTSIG - 1,
-  FOSA_SIGNAL_MIN = SIGRTMIN,
-  FOSA_NULL_SIGNAL = -1,
-};
-
-
-enum _fosa_errors_e {
-  FOSA_EINVAL = EINVAL,
-  FOSA_EAGAIN = EAGAIN,
-  FOSA_EREJECT = EREJECT,
-  FOSA_EMASKED = EMASKED,
-  FOSA_EPOLICY = EPOLICY, 
-  FOSA_ETIMEDOUT = ETIMEDOUT,
-  FOSA_ENOMEM = ENOMEM,
-};
-
-
-#endif
-/////////////////////////////// PARTIKLE  END //////////////////////////////////
-
-
-
-////////////////////////// VIRTUAL TIME    //////////////////////////////////////
-#ifdef VIRTUAL_TIME
-
-/* Time */
-/********/
-// typedef struct timespec fosa_rel_time_t;
-// typedef struct timespec fosa_abs_time_t;
-
-#include <fosa_vt.h>
-
-#define FOSA_THREAD_ID_T_OPAQUE   vt_posix_process_t
-#define FOSA_THREAD_ATTR_T_OPAQUE fosa_thread_attr_t
-#define FOSA_SIGNAL_T_OPAQUE      int
-
-#define FOSA_MUTEX_T_OPAQUE fosa_mutex_t
-
-// The minimum and maximum signal numbers that may be used by the FRSH
-// implementation
-#define FOSA_SIGNAL_MIN       8
-#define FOSA_SIGNAL_MAX       31
-
-// the min. and max. priority a fosa thread can have
-#define FOSA_PRIORITY_MAX VT_PRIORITY_MIN - 1
-#define FOSA_PRIORITY_MIN VT_PRIORITY_MAX
-
-#define FOSA_NULL_SIGNAL       0
-
-/* FOSA Errors and return values*/
-
-/** Invalid parameter **/
-#define FOSA_EINVAL   -1
-
-/** Not enough memory available **/
-#define FOSA_ENOMEM   -2
-
-/** Still pending information **/
-#define FOSA_EAGAIN   -3
-
-/** Mutex not available **/
-#define FOSA_EBUSY        -4
-
-/** Cond var timedout **/
-#define FOSA_ETIMEDOUT -5
-
-/** FOSA ADS errors **/
-#define FOSA_EREJECT   -6
-#define FOSA_EMASKED   -7
-
-
-/** Sched policy not correct */
-#define FOSA_EPOLICY   -8
-
-/** the value given by thread_id is not valid for ADS */
-#define FOSA_ESRCH             -9
-
-/** retval if no action performed **/
-#define FOSA_NO_ACTION 0
-
-#endif /* VIRTUAL_TIME */
-//////////////////////////End of VIRTUAL TIME ///////////////////////////////////
-
-
-////////////////////////// DUMMY_OS    //////////////////////////////////////
-
-#if defined(DUMMY_OS)
-
-/* With this define we make sure that we are truly POSIX and OSE */
-/* independent at the FRSH code.                                 */
-/*****************************************************************/
-
-/* Time */
-/********/
-// typedef struct timespec fosa_rel_time_t;
-// typedef struct timespec fosa_abs_time_t;
-
-/* Thread and signals */
-/**********************/
-typedef int FOSA_THREAD_ID_T_OPAQUE;
-typedef int FOSA_THREAD_ATTR_T_OPAQUE;
-
-typedef int FOSA_SIGNAL_T_OPAQUE;
-typedef int FOSA_SIGNAL_INFO_T_OPAQUE;
-
-/* Signal info is defined as a union in thread_and_signals */
-
-#define FOSA_SIGNAL_MIN     42
-#define FOSA_SIGNAL_MAX     44
-
-#define FOSA_NULL_SIGNAL 0
-
-/* Clocks and timers */
-/**********************/
-typedef int FOSA_CLOCK_ID_T_OPAQUE;
-typedef int FOSA_TIMER_ID_T_OPAQUE;
-
-#define FOSA_SYSTEM_CLOCK_OPAQUE  25
-
-/* Mutex and conditional variables */
-/***********************************/
-typedef int FOSA_MUTEX_T_OPAQUE;
-typedef int FOSA_COND_T_OPAQUE;
-
-/* Application defined Scheduling */
-/**********************************/
-#define FOSA_ADS_ACTIONS_T_OPAQUE  int
-
-
-#endif /* DUMMY */
-//////////////////////////End of DUMMY_OS ////////////////////////////////////
-
-FOSA_CPP_END_DECLS
-
-
-#endif // _FOSA_OPAQUE_TYPES_H_
diff --git a/include/fosa_opaque_types_linux.h b/include/fosa_opaque_types_linux.h
new file mode 100644 (file)
index 0000000..8c13815
--- /dev/null
@@ -0,0 +1,173 @@
+// -----------------------------------------------------------------------
+//  Copyright (C) 2006 - 2009 FRESCOR consortium partners:
+//
+//    Universidad de Cantabria,              SPAIN
+//    University of York,                    UK
+//    Scuola Superiore Sant'Anna,            ITALY
+//    Kaiserslautern University,             GERMANY
+//    Univ. Politécnica  Valencia,           SPAIN
+//    Czech Technical University in Prague,  CZECH REPUBLIC
+//    ENEA                                   SWEDEN
+//    Thales Communication S.A.              FRANCE
+//    Visual Tools S.A.                      SPAIN
+//    Rapita Systems Ltd                     UK
+//    Evidence                               ITALY
+//
+//    See http://www.frescor.org for a link to partners' websites
+//
+//           FRESCOR project (FP6/2005/IST/5-034026) is funded
+//        in part by the European Union Sixth Framework Programme
+//        The European Union is not liable of any use that may be
+//        made of this code.
+//
+//
+//  based on previous work (FSF) done in the FIRST project
+//
+//   Copyright (C) 2005  Mälardalen University, SWEDEN
+//                       Scuola Superiore S.Anna, ITALY
+//                       Universidad de Cantabria, SPAIN
+//                       University of York, UK
+//
+//   FSF API web pages: http://marte.unican.es/fsf/docs
+//                      http://shark.sssup.it/contrib/first/docs/
+//
+//   This file is part of FOSA (Frsh Operating System Adaption)
+//
+//  FOSA is free software; you can redistribute it and/or modify it
+//  under terms of the GNU General Public License as published by the
+//  Free Software Foundation; either version 2, or (at your option) any
+//  later version.  FOSA is distributed in the hope that it will be
+//  useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+//  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+//  General Public License for more details. You should have received a
+//  copy of the GNU General Public License along with FOSA; see file
+//  COPYING. If not, write to the Free Software Foundation, 675 Mass Ave,
+//  Cambridge, MA 02139, USA.
+//
+//  As a special exception, including FOSA header files in a file,
+//  instantiating FOSA generics or templates, or linking other files
+//  with FOSA objects to produce an executable application, does not
+//  by itself cause the resulting executable application to be covered
+//  by the GNU General Public License. This exception does not
+//  however invalidate any other reasons why the executable file might be
+//  covered by the GNU Public License.
+// -----------------------------------------------------------------------
+//fosa_opaque_types.h
+//==============================================
+//  ********  ******    ********  **********
+//  **///// /**    **  **//////  /**     /**
+//  **      /**    ** /**        /**     /**
+//  ******* /**    ** /********* /**********
+//  **////  /**    ** ////////** /**//////**
+//  **      /**    **        /** /**     /**
+//  **      /**    **  ********  /**     /**
+//  //       /******/  ////////   //      //
+//
+// FOSA(Frescor Operating System Adaptation layer)
+//================================================
+
+// Implementation dependent definitions
+
+#ifndef _FOSA_OPAQUE_TYPES_LINUX_H_
+#define _FOSA_OPAQUE_TYPES_LINUX_H_
+
+#include <stdbool.h>
+
+#include "fosa_cpp_macros.h"
+#include "fosa_opaque_types_time.h"
+
+#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>
+
+FOSA_CPP_BEGIN_DECLS
+
+/* Local Jump */
+/**************/
+typedef struct {
+       sigjmp_buf setjmp_context;
+       int setjmp_retvalue;
+} FOSA_LONG_JUMP_CONTEXT_T_OPAQUE;
+
+
+/* Threads and signals */
+/***********************/
+typedef struct {
+       pthread_t pthread_id;
+       pid_t linux_pid;
+       pid_t linux_tid;
+} FOSA_THREAD_ID_T_OPAQUE;
+
+
+typedef pthread_attr_t FOSA_THREAD_ATTR_T_OPAQUE;
+typedef int FOSA_SIGNAL_T_OPAQUE;
+
+
+// The minimum and maximum signal numbers that may be used by the FRSH
+// implementation
+#define FOSA_SIGNAL_MIN       SIGRTMIN
+#define FOSA_SIGNAL_MAX       SIGRTMIN+0
+
+#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
+#define    FOSA_SYSTEM_CLOCK_OPAQUE  CLOCK_MONOTONIC
+#define    FOSA_TIMER_ID_T_OPAQUE    timer_t
+
+
+
+/* Mutex and cond vars */
+/***********************/
+typedef pthread_mutex_t FOSA_MUTEX_T_OPAQUE;
+#define    FOSA_COND_T_OPAQUE        pthread_cond_t
+
+
+/* Application Defined Scheduling */
+/**********************************/
+/* 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_ADS_ACTIONS_T_OPAQUE posix_appsched_actions_t
+
+
+/* FOSA Errors */
+
+/** Not enough memory available **/
+#define FOSA_ENOMEM   ENOMEM
+
+/** Invalid parameter **/
+#define FOSA_EINVAL   EINVAL
+
+/** Still pending information **/
+#define FOSA_EAGAIN   EAGAIN
+
+#define FOSA_EREJECT   EREJECT
+#define FOSA_EMASKED   -2
+#define FOSA_EPOLICY   -3
+
+#define FOSA_ETIMEDOUT ETIMEDOUT
+
+FOSA_CPP_END_DECLS
+
+
+#endif // _FOSA_OPAQUE_TYPES_LINUX_H__
diff --git a/include/fosa_opaque_types_marte.h b/include/fosa_opaque_types_marte.h
new file mode 100644 (file)
index 0000000..9a6ea5d
--- /dev/null
@@ -0,0 +1,181 @@
+// -----------------------------------------------------------------------
+//  Copyright (C) 2006 - 2009 FRESCOR consortium partners:
+//
+//    Universidad de Cantabria,              SPAIN
+//    University of York,                    UK
+//    Scuola Superiore Sant'Anna,            ITALY
+//    Kaiserslautern University,             GERMANY
+//    Univ. Politécnica  Valencia,           SPAIN
+//    Czech Technical University in Prague,  CZECH REPUBLIC
+//    ENEA                                   SWEDEN
+//    Thales Communication S.A.              FRANCE
+//    Visual Tools S.A.                      SPAIN
+//    Rapita Systems Ltd                     UK
+//    Evidence                               ITALY
+//
+//    See http://www.frescor.org for a link to partners' websites
+//
+//           FRESCOR project (FP6/2005/IST/5-034026) is funded
+//        in part by the European Union Sixth Framework Programme
+//        The European Union is not liable of any use that may be
+//        made of this code.
+//
+//
+//  based on previous work (FSF) done in the FIRST project
+//
+//   Copyright (C) 2005  Mälardalen University, SWEDEN
+//                       Scuola Superiore S.Anna, ITALY
+//                       Universidad de Cantabria, SPAIN
+//                       University of York, UK
+//
+//   FSF API web pages: http://marte.unican.es/fsf/docs
+//                      http://shark.sssup.it/contrib/first/docs/
+//
+//   This file is part of FOSA (Frsh Operating System Adaption)
+//
+//  FOSA is free software; you can redistribute it and/or modify it
+//  under terms of the GNU General Public License as published by the
+//  Free Software Foundation; either version 2, or (at your option) any
+//  later version.  FOSA is distributed in the hope that it will be
+//  useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+//  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+//  General Public License for more details. You should have received a
+//  copy of the GNU General Public License along with FOSA; see file
+//  COPYING. If not, write to the Free Software Foundation, 675 Mass Ave,
+//  Cambridge, MA 02139, USA.
+//
+//  As a special exception, including FOSA header files in a file,
+//  instantiating FOSA generics or templates, or linking other files
+//  with FOSA objects to produce an executable application, does not
+//  by itself cause the resulting executable application to be covered
+//  by the GNU General Public License. This exception does not
+//  however invalidate any other reasons why the executable file might be
+//  covered by the GNU Public License.
+// -----------------------------------------------------------------------
+//fosa_opaque_types.h
+//==============================================
+//  ********  ******    ********  **********
+//  **///// /**    **  **//////  /**     /**
+//  **      /**    ** /**        /**     /**
+//  ******* /**    ** /********* /**********
+//  **////  /**    ** ////////** /**//////**
+//  **      /**    **        /** /**     /**
+//  **      /**    **  ********  /**     /**
+//  //       /******/  ////////   //      //
+//
+// FOSA(Frescor Operating System Adaptation layer)
+//================================================
+
+// Implementation dependent definitions
+
+#ifndef _FOSA_OPAQUE_TYPES_H_
+#define _FOSA_OPAQUE_TYPES_H_
+
+#include <stdbool.h>
+
+#include "fosa_cpp_macros.h"
+#include "fosa_opaque_types_time.h"
+
+///////////////////////  MARTE_OS /////////////////////////////
+
+#include <pthread.h>
+#include <signal.h>
+#include <time.h>
+#include <sched.h>
+#include <errno.h>
+
+FOSA_CPP_BEGIN_DECLS
+
+
+/* Thread and signals */
+/**********************/
+typedef pthread_t FOSA_THREAD_ID_T_OPAQUE;
+typedef pthread_attr_t FOSA_THREAD_ATTR_T_OPAQUE;
+
+typedef int FOSA_SIGNAL_T_OPAQUE;
+/* Signal info is defined as a union in thread_and_signals */
+
+#define FOSA_SIGNAL_MIN       SIGRTMIN
+#define FOSA_SIGNAL_MAX       SIGRTMIN+0
+
+#define FOSA_NULL_SIGNAL 0
+
+/* Clocks and timers */
+/**********************/
+typedef clockid_t FOSA_CLOCK_ID_T_OPAQUE;
+typedef timer_t FOSA_TIMER_ID_T_OPAQUE;
+
+#define FOSA_SYSTEM_CLOCK_OPAQUE  CLOCK_MONOTONIC
+
+/* Mutex and conditional variables */
+/***********************************/
+typedef pthread_mutex_t FOSA_MUTEX_T_OPAQUE;
+typedef pthread_cond_t FOSA_COND_T_OPAQUE;
+
+
+/* Application defined Scheduling */
+/**********************************/
+#define FOSA_ADS_ACTIONS_T_OPAQUE  struct \
+{ \
+    posix_appsched_actions_t actions; \
+    struct timespec *timeout_ptr; \
+    struct timespec timeout; \
+    bool rejected; \
+    bool suspended; \
+    bool activated; \
+} 
+
+
+/* Local jump */
+/**************/
+#include "misc/marte_non_local_jmp.h"
+
+#define FOSA_LONG_JUMP_CONTEXT_T_OPAQUE  struct { \
+  marte_nonlocaljmp_context_t marte_context;      \
+  fosa_thread_id_t tid;                            \
+}
+
+
+/* Group clocks */
+/****************/
+typedef marte_thread_set_t FOSA_THREAD_SET_ID_T_OPAQUE;
+
+#define FOSA_NULL_THREAD_SET_ID_OPAQUE 0 /* In MaRTE-OS thread_set_t are
+                                     * pointers */
+
+/* FOSA errors */
+/***************/
+/** Not enough memory available **/
+#define FOSA_ENOMEM   ENOMEM
+
+/** Invalid parameter **/
+#define FOSA_EINVAL   EINVAL
+
+/** Still pending information **/
+#define FOSA_EAGAIN   EAGAIN
+
+/** FOSA ADS errors **/
+#ifdef MARTE_OS
+#define EREJECT   201 /* (for linux_lib_arch) Appsched has rejected object */
+#endif
+
+#define FOSA_EREJECT   EREJECT
+#define FOSA_EMASKED   -2
+#define FOSA_EPOLICY   -3
+
+#define FOSA_ETIMEDOUT ETIMEDOUT
+
+/* Not found in search (non existing thread, thread_set...) */
+#define FOSA_ESRCH   ESRCH
+#define FOSA_ENOTSUP ENOTSUP
+
+#endif
+
+///////////////////////  End of MARTE_OS  /////////////////////////////
+
+
+
+FOSA_CPP_END_DECLS
+
+
+#endif // _FOSA_OPAQUE_TYPES_H_
diff --git a/include/fosa_opaque_types_partikle.h b/include/fosa_opaque_types_partikle.h
new file mode 100644 (file)
index 0000000..f138751
--- /dev/null
@@ -0,0 +1,143 @@
+// -----------------------------------------------------------------------
+//  Copyright (C) 2006 - 2009 FRESCOR consortium partners:
+//
+//    Universidad de Cantabria,              SPAIN
+//    University of York,                    UK
+//    Scuola Superiore Sant'Anna,            ITALY
+//    Kaiserslautern University,             GERMANY
+//    Univ. Politécnica  Valencia,           SPAIN
+//    Czech Technical University in Prague,  CZECH REPUBLIC
+//    ENEA                                   SWEDEN
+//    Thales Communication S.A.              FRANCE
+//    Visual Tools S.A.                      SPAIN
+//    Rapita Systems Ltd                     UK
+//    Evidence                               ITALY
+//
+//    See http://www.frescor.org for a link to partners' websites
+//
+//           FRESCOR project (FP6/2005/IST/5-034026) is funded
+//        in part by the European Union Sixth Framework Programme
+//        The European Union is not liable of any use that may be
+//        made of this code.
+//
+//
+//  based on previous work (FSF) done in the FIRST project
+//
+//   Copyright (C) 2005  Mälardalen University, SWEDEN
+//                       Scuola Superiore S.Anna, ITALY
+//                       Universidad de Cantabria, SPAIN
+//                       University of York, UK
+//
+//   FSF API web pages: http://marte.unican.es/fsf/docs
+//                      http://shark.sssup.it/contrib/first/docs/
+//
+//   This file is part of FOSA (Frsh Operating System Adaption)
+//
+//  FOSA is free software; you can redistribute it and/or modify it
+//  under terms of the GNU General Public License as published by the
+//  Free Software Foundation; either version 2, or (at your option) any
+//  later version.  FOSA is distributed in the hope that it will be
+//  useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+//  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+//  General Public License for more details. You should have received a
+//  copy of the GNU General Public License along with FOSA; see file
+//  COPYING. If not, write to the Free Software Foundation, 675 Mass Ave,
+//  Cambridge, MA 02139, USA.
+//
+//  As a special exception, including FOSA header files in a file,
+//  instantiating FOSA generics or templates, or linking other files
+//  with FOSA objects to produce an executable application, does not
+//  by itself cause the resulting executable application to be covered
+//  by the GNU General Public License. This exception does not
+//  however invalidate any other reasons why the executable file might be
+//  covered by the GNU Public License.
+// -----------------------------------------------------------------------
+//fosa_opaque_types.h
+//==============================================
+//  ********  ******    ********  **********
+//  **///// /**    **  **//////  /**     /**
+//  **      /**    ** /**        /**     /**
+//  ******* /**    ** /********* /**********
+//  **////  /**    ** ////////** /**//////**
+//  **      /**    **        /** /**     /**
+//  **      /**    **  ********  /**     /**
+//  //       /******/  ////////   //      //
+//
+// FOSA(Frescor Operating System Adaptation layer)
+//================================================
+
+// Implementation dependent definitions
+
+#ifndef _FOSA_OPAQUE_TYPES_H_
+#define _FOSA_OPAQUE_TYPES_H_
+
+#include <stdbool.h>
+
+#include "fosa_cpp_macros.h"
+#include "fosa_opaque_types_time.h"
+
+#include <pthread.h>
+#include <signal.h>
+#include <time.h>
+#include <sched.h>
+#include <stdlib.h>
+#include <setjmp.h>
+#include <limits.h>
+
+typedef struct {
+    posix_appsched_actions_t actions;
+    struct timespec * timeout_ptr;
+    struct timespec timeout;
+    bool rejected;
+    bool suspended;
+    bool activated;
+} FOSA_ADS_ACTIONS_T_OPAQUE;
+
+
+typedef pthread_t                   FOSA_THREAD_ID_T_OPAQUE;
+typedef pthread_attr_t              FOSA_THREAD_ATTR_T_OPAQUE;
+typedef int                         FOSA_SIGNAL_T_OPAQUE;
+typedef clockid_t                   FOSA_CLOCK_ID_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
+};
+
+#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_FIRSTSIG = SIGRTMAX - LONGJMP_NSIG + 1,
+  FOSA_SIGNAL_MAX = LONGJMP_FIRSTSIG - 1,
+  FOSA_SIGNAL_MIN = SIGRTMIN,
+  FOSA_NULL_SIGNAL = -1,
+};
+
+
+enum _fosa_errors_e {
+  FOSA_EINVAL = EINVAL,
+  FOSA_EAGAIN = EAGAIN,
+  FOSA_EREJECT = EREJECT,
+  FOSA_EMASKED = EMASKED,
+  FOSA_EPOLICY = EPOLICY, 
+  FOSA_ETIMEDOUT = ETIMEDOUT,
+  FOSA_ENOMEM = ENOMEM,
+};
+
+
+#endif
+
+FOSA_CPP_END_DECLS
+
+
+#endif // _FOSA_OPAQUE_TYPES_H_
diff --git a/include/fosa_opaque_types_rtlinux.h b/include/fosa_opaque_types_rtlinux.h
new file mode 100644 (file)
index 0000000..f5270be
--- /dev/null
@@ -0,0 +1,139 @@
+// -----------------------------------------------------------------------
+//  Copyright (C) 2006 - 2009 FRESCOR consortium partners:
+//
+//    Universidad de Cantabria,              SPAIN
+//    University of York,                    UK
+//    Scuola Superiore Sant'Anna,            ITALY
+//    Kaiserslautern University,             GERMANY
+//    Univ. Politécnica  Valencia,           SPAIN
+//    Czech Technical University in Prague,  CZECH REPUBLIC
+//    ENEA                                   SWEDEN
+//    Thales Communication S.A.              FRANCE
+//    Visual Tools S.A.                      SPAIN
+//    Rapita Systems Ltd                     UK
+//    Evidence                               ITALY
+//
+//    See http://www.frescor.org for a link to partners' websites
+//
+//           FRESCOR project (FP6/2005/IST/5-034026) is funded
+//        in part by the European Union Sixth Framework Programme
+//        The European Union is not liable of any use that may be
+//        made of this code.
+//
+//
+//  based on previous work (FSF) done in the FIRST project
+//
+//   Copyright (C) 2005  Mälardalen University, SWEDEN
+//                       Scuola Superiore S.Anna, ITALY
+//                       Universidad de Cantabria, SPAIN
+//                       University of York, UK
+//
+//   FSF API web pages: http://marte.unican.es/fsf/docs
+//                      http://shark.sssup.it/contrib/first/docs/
+//
+//   This file is part of FOSA (Frsh Operating System Adaption)
+//
+//  FOSA is free software; you can redistribute it and/or modify it
+//  under terms of the GNU General Public License as published by the
+//  Free Software Foundation; either version 2, or (at your option) any
+//  later version.  FOSA is distributed in the hope that it will be
+//  useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+//  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+//  General Public License for more details. You should have received a
+//  copy of the GNU General Public License along with FOSA; see file
+//  COPYING. If not, write to the Free Software Foundation, 675 Mass Ave,
+//  Cambridge, MA 02139, USA.
+//
+//  As a special exception, including FOSA header files in a file,
+//  instantiating FOSA generics or templates, or linking other files
+//  with FOSA objects to produce an executable application, does not
+//  by itself cause the resulting executable application to be covered
+//  by the GNU General Public License. This exception does not
+//  however invalidate any other reasons why the executable file might be
+//  covered by the GNU Public License.
+// -----------------------------------------------------------------------
+//fosa_opaque_types.h
+//==============================================
+//  ********  ******    ********  **********
+//  **///// /**    **  **//////  /**     /**
+//  **      /**    ** /**        /**     /**
+//  ******* /**    ** /********* /**********
+//  **////  /**    ** ////////** /**//////**
+//  **      /**    **        /** /**     /**
+//  **      /**    **  ********  /**     /**
+//  //       /******/  ////////   //      //
+//
+// FOSA(Frescor Operating System Adaptation layer)
+//================================================
+
+// Implementation dependent definitions
+
+#ifndef _FOSA_OPAQUE_TYPES_H_
+#define _FOSA_OPAQUE_TYPES_H_
+
+#include <stdbool.h>
+
+#include "fosa_cpp_macros.h"
+#include "fosa_opaque_types_time.h"
+
+/* Very similar to MARTE_OS but I leave separate for clarity */
+
+#include <pthread.h>
+#include <signal.h>
+#include <time.h>
+#include <sched.h>
+#include <errno.h>
+#include <rtl_timer.h>
+
+
+/* Threads and signals */
+/***********************/
+#define    FOSA_THREAD_ID_T_OPAQUE pthread_t
+
+typedef pthread_attr_t FOSA_THREAD_ATTR_T_OPAQUE;
+typedef int FOSA_SIGNAL_T_OPAQUE;
+/* Signal info is defined as a union in fosa_types.h */
+
+// The minimum and maximum signal numbers that may be used by the FRSH
+// implementation
+#define FOSA_SIGNAL_MIN       SIGRTMIN
+#define FOSA_SIGNAL_MAX       SIGRTMIN+0
+#define FOSA_NULL_SIGNAL 0
+
+/* Clocks and timers */
+/*********************/
+#define    FOSA_CLOCK_ID_T_OPAQUE    clockid_t
+#define    FOSA_TIMER_ID_T_OPAQUE    timer_t
+#define    FOSA_SYSTEM_CLOCK_OPAQUE  CLOCK_MONOTONIC
+
+/* Mutex and cond vars */
+/***********************/
+typedef pthread_mutex_t FOSA_MUTEX_T_OPAQUE;
+#define    FOSA_COND_T_OPAQUE        pthread_cond_t
+
+/* Thread groups */
+/*****************/
+typedef int FOSA_THREAD_SET_ID_T_OPAQUE
+
+/* FOSA Errors */
+/***************/
+/** Not enough memory available **/
+#define FOSA_ENOMEM   ENOMEM
+/** Invalid parameter **/
+#define FOSA_EINVAL   EINVAL
+/** Still pending information **/
+#define FOSA_EAGAIN   EAGAIN
+
+/** FOSA ADS errors **/
+#define FOSA_EREJECT   EREJECT
+#define FOSA_EMASKED   -2
+#define FOSA_EPOLICY   -3
+
+#define FOSA_ETIMEDOUT ETIMEDOUT
+
+#endif
+
+FOSA_CPP_END_DECLS
+
+
+#endif // _FOSA_OPAQUE_TYPES_H_
diff --git a/include/fosa_opaque_types_virtualtime.h b/include/fosa_opaque_types_virtualtime.h
new file mode 100644 (file)
index 0000000..558607f
--- /dev/null
@@ -0,0 +1,139 @@
+// -----------------------------------------------------------------------
+//  Copyright (C) 2006 - 2009 FRESCOR consortium partners:
+//
+//    Universidad de Cantabria,              SPAIN
+//    University of York,                    UK
+//    Scuola Superiore Sant'Anna,            ITALY
+//    Kaiserslautern University,             GERMANY
+//    Univ. Politécnica  Valencia,           SPAIN
+//    Czech Technical University in Prague,  CZECH REPUBLIC
+//    ENEA                                   SWEDEN
+//    Thales Communication S.A.              FRANCE
+//    Visual Tools S.A.                      SPAIN
+//    Rapita Systems Ltd                     UK
+//    Evidence                               ITALY
+//
+//    See http://www.frescor.org for a link to partners' websites
+//
+//           FRESCOR project (FP6/2005/IST/5-034026) is funded
+//        in part by the European Union Sixth Framework Programme
+//        The European Union is not liable of any use that may be
+//        made of this code.
+//
+//
+//  based on previous work (FSF) done in the FIRST project
+//
+//   Copyright (C) 2005  Mälardalen University, SWEDEN
+//                       Scuola Superiore S.Anna, ITALY
+//                       Universidad de Cantabria, SPAIN
+//                       University of York, UK
+//
+//   FSF API web pages: http://marte.unican.es/fsf/docs
+//                      http://shark.sssup.it/contrib/first/docs/
+//
+//   This file is part of FOSA (Frsh Operating System Adaption)
+//
+//  FOSA is free software; you can redistribute it and/or modify it
+//  under terms of the GNU General Public License as published by the
+//  Free Software Foundation; either version 2, or (at your option) any
+//  later version.  FOSA is distributed in the hope that it will be
+//  useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+//  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+//  General Public License for more details. You should have received a
+//  copy of the GNU General Public License along with FOSA; see file
+//  COPYING. If not, write to the Free Software Foundation, 675 Mass Ave,
+//  Cambridge, MA 02139, USA.
+//
+//  As a special exception, including FOSA header files in a file,
+//  instantiating FOSA generics or templates, or linking other files
+//  with FOSA objects to produce an executable application, does not
+//  by itself cause the resulting executable application to be covered
+//  by the GNU General Public License. This exception does not
+//  however invalidate any other reasons why the executable file might be
+//  covered by the GNU Public License.
+// -----------------------------------------------------------------------
+//fosa_opaque_types.h
+//==============================================
+//  ********  ******    ********  **********
+//  **///// /**    **  **//////  /**     /**
+//  **      /**    ** /**        /**     /**
+//  ******* /**    ** /********* /**********
+//  **////  /**    ** ////////** /**//////**
+//  **      /**    **        /** /**     /**
+//  **      /**    **  ********  /**     /**
+//  //       /******/  ////////   //      //
+//
+// FOSA(Frescor Operating System Adaptation layer)
+//================================================
+
+// Implementation dependent definitions
+
+#ifndef _FOSA_OPAQUE_TYPES_H_
+#define _FOSA_OPAQUE_TYPES_H_
+
+#include <stdbool.h>
+
+#include "fosa_cpp_macros.h"
+#include "fosa_opaque_types_time.h"
+
+/* Time */
+/********/
+// typedef struct timespec fosa_rel_time_t;
+// typedef struct timespec fosa_abs_time_t;
+
+#include <fosa_vt.h>
+
+#define FOSA_THREAD_ID_T_OPAQUE   vt_posix_process_t
+#define FOSA_THREAD_ATTR_T_OPAQUE fosa_thread_attr_t
+#define FOSA_SIGNAL_T_OPAQUE      int
+
+#define FOSA_MUTEX_T_OPAQUE fosa_mutex_t
+
+// The minimum and maximum signal numbers that may be used by the FRSH
+// implementation
+#define FOSA_SIGNAL_MIN       8
+#define FOSA_SIGNAL_MAX       31
+
+// the min. and max. priority a fosa thread can have
+#define FOSA_PRIORITY_MAX VT_PRIORITY_MIN - 1
+#define FOSA_PRIORITY_MIN VT_PRIORITY_MAX
+
+#define FOSA_NULL_SIGNAL       0
+
+/* FOSA Errors and return values*/
+
+/** Invalid parameter **/
+#define FOSA_EINVAL   -1
+
+/** Not enough memory available **/
+#define FOSA_ENOMEM   -2
+
+/** Still pending information **/
+#define FOSA_EAGAIN   -3
+
+/** Mutex not available **/
+#define FOSA_EBUSY        -4
+
+/** Cond var timedout **/
+#define FOSA_ETIMEDOUT -5
+
+/** FOSA ADS errors **/
+#define FOSA_EREJECT   -6
+#define FOSA_EMASKED   -7
+
+
+/** Sched policy not correct */
+#define FOSA_EPOLICY   -8
+
+/** the value given by thread_id is not valid for ADS */
+#define FOSA_ESRCH             -9
+
+/** retval if no action performed **/
+#define FOSA_NO_ACTION 0
+
+#endif /* VIRTUAL_TIME */
+
+FOSA_CPP_END_DECLS
+
+
+#endif // _FOSA_OPAQUE_TYPES_H_