]> rtime.felk.cvut.cz Git - frescor/fosa.git/blobdiff - include/fosa_opaque_types.h
Split FOSA opaque types to multiple files based on platform name
[frescor/fosa.git] / include / fosa_opaque_types.h
diff --git a/include/fosa_opaque_types.h b/include/fosa_opaque_types.h
deleted file mode 100644 (file)
index 043ebe4..0000000
+++ /dev/null
@@ -1,443 +0,0 @@
-//----------------------------------------------------------------------
-//  Copyright (C) 2006 - 2007 by the FRESCOR consortium:
-//
-//    Universidad de Cantabria,              SPAIN
-//    University of York,                    UK
-//    Scuola Superiore Sant'Anna,            ITALY
-//    Kaiserslautern University,             GERMANY
-//    Univ. Politecnica  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
-//
-//        The 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
-//
-// This file is part of FOSA (Frsh Operating System Abstraction)
-//
-// 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>
-
-///////////////////////  MARTE_OS /////////////////////////////
-
-#ifdef MARTE_OS
-
-#include <pthread.h>
-#include <signal.h>
-#include <time.h>
-#include <sched.h>
-#include <errno.h>
-
-/* Time */
-/********/
-// typedef struct timespec fosa_rel_time_t;
-// typedef struct timespec fosa_abs_time_t;
-
-/* 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 */
-/**********************************/
-typedef struct {
-    posix_appsched_actions_t actions;
-    struct timespec *timeout_ptr;
-    struct timespec timeout;
-    bool rejected;
-    bool suspended;
-    bool activated;
-} fosa_ads_actions_internal_t;
-
-#define FOSA_ADS_ACTIONS_T_OPAQUE fosa_ads_actions_internal_t
-
-/* Local jump */
-/**************/
-#include "marte_non_local_jmp.h"
-
-#define FOSA_LONG_JUMP_CONTEXT_T_OPAQUE  struct { \
-  marte_nonlocaljmp_context_t marte_context;      \
-  fosa_thread_id_t tid;                            \
-}
-
-
-/* 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
-
-#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>
-
-/* Time */
-/********/
-// typedef struct timespec fosa_rel_time_t;
-// typedef struct timespec fosa_abs_time_t;
-
-
-/* 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
-
-
-/* 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
-
-/* Time */
-/********/
-// typedef struct timespec fosa_rel_time_t;
-// typedef struct timespec fosa_abs_time_t;
-
-
-/* Put OSE dependent includes and defines here */
-
-#endif /* OSE */
-
-
-
-/////////////////////// AQuoSA ///////////////////////////
-
-#ifdef AQuoSA
-
-#define __USE_UNIX98
-
-#include <pthread.h>
-#include <signal.h>
-#include <errno.h>
-#include <time.h>
-
-/* Time */
-/********/
-// typedef struct timespec fosa_rel_time_t;
-// typedef struct timespec fosa_abs_time_t;
-
-
-/* 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
-
-
-/* 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_LONG_JUMP_CONTEXT_T_OPAQUE 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 //////////////////////
-
-
-////////////////////////// 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 ////////////////////////////////////
-
-
-
-
-#endif // _FOSA_OPAQUE_TYPES_H_