1 // -----------------------------------------------------------------------
2 // Copyright (C) 2006 - 2007 FRESCOR consortium partners:
4 // Universidad de Cantabria, SPAIN
5 // University of York, UK
6 // Scuola Superiore Sant'Anna, ITALY
7 // Kaiserslautern University, GERMANY
8 // Univ. Politécnica Valencia, SPAIN
9 // Czech Technical University in Prague, CZECH REPUBLIC
11 // Thales Communication S.A. FRANCE
12 // Visual Tools S.A. SPAIN
13 // Rapita Systems Ltd UK
16 // See http://www.frescor.org for a link to partners' websites
18 // FRESCOR project (FP6/2005/IST/5-034026) is funded
19 // in part by the European Union Sixth Framework Programme
20 // The European Union is not liable of any use that may be
24 // based on previous work (FSF) done in the FIRST project
26 // Copyright (C) 2005 Mälardalen University, SWEDEN
27 // Scuola Superiore S.Anna, ITALY
28 // Universidad de Cantabria, SPAIN
29 // University of York, UK
31 // FSF API web pages: http://marte.unican.es/fsf/docs
32 // http://shark.sssup.it/contrib/first/docs/
34 // This file is part of FRSH API
36 // FRSH API is free software; you can redistribute it and/or modify
37 // it under the terms of the GNU General Public License as published by
38 // the Free Software Foundation; either version 2, or (at your option)
41 // FRSH API is distributed in the hope that it will be useful, but
42 // WITHOUT ANY WARRANTY; without even the implied warranty of
43 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
44 // General Public License for more details.
46 // You should have received a copy of the GNU General Public License
47 // distributed with FRSH API; see file COPYING. If not, write to the
48 // Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
51 // As a special exception, if you include this header file into source
52 // files to be compiled, this header file does not by itself cause
53 // the resulting executable to be covered by the GNU General Public
54 // License. This exception does not however invalidate any other
55 // reasons why the executable file might be covered by the GNU General
57 // -----------------------------------------------------------------------
59 //========================================================================================
60 // ******** ******* ******** ** ** ******** ****** ******** **********
61 // **///// /**////** **////// /** /** **///// /** ** **////// /** /**
62 // ** /** /** /** /** /** ** /** ** /** /** /**
63 // ******* /******* /********* /********** ******* /** ** /********* /**********
64 // **//// /**///** ////////** /**//////** **//// /** ** ////////** /**//////**
65 // ** /** //** /** /** /** ** /** ** /** /** /**
66 // ** /** //** ******** /** /** ** /** ** ******** /** /**
67 // // // // //////// // // // /******/ //////// // //
69 // FRSH(FRescor ScHeduler), pronounced "fresh" FOSA(Frescor Oper System Adaptation layer)
70 //========================================================================================
72 #ifndef FRSH_FOSA_OPAQUE_H_
73 #define FRSH_FOSA_OPAQUE_H_
76 * @file frsh_fosa_opaque.h
81 * \addtogroup frshfosa
87 /////////////////////MaRTE OS, RT_LINUX & AQuoSA //////////////////////
89 #if defined(MARTE_OS) || defined(RT_LINUX) || defined(AQuoSA)
100 pthread_t pthread_id;
103 } FOSA_THREAD_ID_T_OPAQUE;
105 #else /* !AQuoSA, MARTE_OS, RT_LINUX */
107 # define FOSA_THREAD_ID_T_OPAQUE pthread_t
111 #define FOSA_THREAD_ATTR_T_OPAQUE pthread_attr_t
113 #define FOSA_SIGNAL_T_OPAQUE int
115 #define FRSH_SIGNAL_INFO_T_OPAQUE union sigval
117 #define FOSA_MUTEX_T_OPAQUE pthread_mutex_t
119 // The minimum and maximum signal numbers that may be used by the FRSH
121 #define FOSA_SIGNAL_MIN SIGRTMIN
122 #define FOSA_SIGNAL_MAX SIGRTMIN+0
124 #define FOSA_NULL_SIGNAL 0
128 /* #include <error.h> */
130 /** Not enough memory available **/
131 #define FOSA_ENOMEM ENOMEM
133 /** Invalid parameter **/
134 #define FOSA_EINVAL EINVAL
136 /** Still pending information **/
137 #define FOSA_EAGAIN EAGAIN
139 /** FOSA ADS errors **/
140 #define FOSA_EREJECT EREJECT
141 #define FOSA_EMASKED -2
142 #define FOSA_EPOLICY -3
146 #endif /* MARTE_OS || RT_LINUX || AQuoSA */
148 //////////////////End of MaRTE OS, RT_LINUX & AQuoSA ///////////////////
151 ////////////////////////// OSE //////////////////////////////////////
155 /* Put OSE dependent includes and defines here */
158 //////////////////////////End of OSE ////////////////////////////////////
160 ////////////////////////// DUMMY_OS //////////////////////////////////////
162 #if defined(DUMMY_OS)
164 /* With this define we make sure that we are truly POSIX and OSE */
165 /* independent at the FRSH code. */
166 /*****************************************************************/
168 #define FOSA_THREAD_ID_T_OPAQUE int
170 #define FOSA_THREAD_ATTR_T_OPAQUE int
172 #define FOSA_SIGNAL_T_OPAQUE int
174 #define FRSH_SIGNAL_INFO_T_OPAQUE int
176 #define FOSA_MUTEX_T_OPAQUE int
178 // The minimum and maximum signal numbers that may be used by the FRSH
180 #define FOSA_SIGNAL_MIN 42
181 #define FOSA_SIGNAL_MAX 42
183 #define FOSA_NULL_SIGNAL 0
187 /* #include <error.h> */
189 /** Not enough memory available **/
190 #define FOSA_ENOMEM -1
192 /** Invalid parameter **/
193 #define FOSA_EINVAL -2
195 /** Still pending information **/
196 #define FOSA_EAGAIN -3
198 /** FOSA ADS errors **/
199 #define FOSA_EREJECT -4
200 #define FOSA_EMASKED -5
202 #define FOSA_EPOLICY -6
205 //////////////////////////End of DUMMY_OS ////////////////////////////////////
212 #endif /* !FRSH_FOSA_OPAQUE_H_ */