]> 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 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_