#else /* !AQuoSA, MARTE_OS, RT_LINUX */
-# define FOSA_THREAD_ID_T_OPAQUE pthread_t
+typedef pthread_t FOSA_THREAD_ID_T_OPAQUE;
#endif /* AQuoSA */
-#define FOSA_THREAD_ATTR_T_OPAQUE pthread_attr_t
+typedef pthread_attr_t FOSA_THREAD_ATTR_T_OPAQUE;
-#define FOSA_SIGNAL_T_OPAQUE int
+typedef int FOSA_SIGNAL_T_OPAQUE;
-#define FRSH_SIGNAL_INFO_T_OPAQUE union sigval
-#define FOSA_MUTEX_T_OPAQUE pthread_mutex_t
+typedef pthread_mutex_t FOSA_MUTEX_T_OPAQUE;
// The minimum and maximum signal numbers that may be used by the FRSH
// implementation
//////////////////End of MaRTE OS, RT_LINUX & AQuoSA ///////////////////
+////////////////////////// VIRTUAL TIME //////////////////////////////////////
+
+#if defined(VIRTUAL_TIME)
+#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 ///////////////////////////////////
////////////////////////// OSE //////////////////////////////////////