]> rtime.felk.cvut.cz Git - frescor/fosa.git/blob - include/fosa_opaque_types_time.h
5d2b14623438e5ca81c8cc37417382cdfb1a89ee
[frescor/fosa.git] / include / fosa_opaque_types_time.h
1 //----------------------------------------------------------------------
2 //  Copyright (C) 2006 - 2007 by the FRESCOR consortium:
3 //
4 //    Universidad de Cantabria,              SPAIN
5 //    University of York,                    UK
6 //    Scuola Superiore Sant'Anna,            ITALY
7 //    Kaiserslautern University,             GERMANY
8 //    Univ. Politecnica  Valencia,           SPAIN
9 //    Czech Technical University in Prague,  CZECH REPUBLIC
10 //    ENEA                                   SWEDEN
11 //    Thales Communication S.A.              FRANCE
12 //    Visual Tools S.A.                      SPAIN
13 //    Rapita Systems Ltd                     UK
14 //    Evidence                               ITALY
15 //
16 //    See http://www.frescor.org
17 //
18 //        The 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
21 //        made of this code.
22 //
23 //
24 //  based on previous work (FSF) done in the FIRST project
25 //
26 //   Copyright (C) 2005  Mälardalen University, SWEDEN
27 //                       Scuola Superiore S.Anna, ITALY
28 //                       Universidad de Cantabria, SPAIN
29 //                       University of York, UK
30 //
31 // This file is part of FOSA (Frsh Operating System Abstraction)
32 //
33 // FOSA is free software; you can redistribute it and/or modify it
34 // under terms of the GNU General Public License as published by the
35 // Free Software Foundation; either version 2, or (at your option) any
36 // later version.  FOSA is distributed in the hope that it will be
37 // useful, but WITHOUT ANY WARRANTY; without even the implied warranty
38 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
39 // General Public License for more details. You should have received a
40 // copy of the GNU General Public License along with FOSA; see file
41 // COPYING. If not, write to the Free Software Foundation, 675 Mass Ave,
42 // Cambridge, MA 02139, USA.
43 //
44 // As a special exception, including FOSA header files in a file,
45 // instantiating FOSA generics or templates, or linking other files
46 // with FOSA objects to produce an executable application, does not
47 // by itself cause the resulting executable application to be covered
48 // by the GNU General Public License. This exception does not
49 // however invalidate any other reasons why the executable file might be
50 // covered by the GNU Public License.
51 // -----------------------------------------------------------------------
52 //fosa_opaque_types_time.h
53 //==============================================
54 //  ********  ******    ********  **********
55 //  **///// /**    **  **//////  /**     /**
56 //  **      /**    ** /**        /**     /**
57 //  ******* /**    ** /********* /**********
58 //  **////  /**    ** ////////** /**//////**
59 //  **      /**    **        /** /**     /**
60 //  **      /**    **  ********  /**     /**
61 //  //       /******/  ////////   //      //
62 //
63 // FOSA(Frescor Operating System Adaptation layer)
64 //================================================
65
66 // Implementation dependent definitions
67
68 #ifndef _FOSA_OPAQUE_TYPES_TIME_H_
69 #define _FOSA_OPAQUE_TYPES_TIME_H_
70
71
72 ///////////////////////  MARTE_OS /////////////////////////////
73
74 #ifdef MARTE_OS
75
76 /**
77    Choose between:
78    -  struct timespec
79    -  numeric type (long, .long long, short)
80 **/
81
82
83 #define FOSA_TIME_TIMESPEC
84
85 typedef struct timespec FOSA_REL_TIME_T_OPAQUE;
86 typedef struct timespec FOSA_ABS_TIME_T_OPAQUE;
87
88
89
90
91 /*
92 #define FOSA_TIME_NUMERIC
93 #define FOSA_TIME_BASE 9    // 9 for nanosecods
94                             // 6 for microseconds
95                             // 3 for miliseconds
96
97 typedef long long FOSA_REL_TIME_T_OPAQUE;
98 typedef unsigned long long FOSA_ABS_TIME_T_OPAQUE;
99
100 */
101
102 /**
103    Possible additions:  FOSA_ABS_TIME_MAX, FOSA_ABS_TIME_MIN,
104    FOSA_REL_TIME_MAX, FOSA_REL_TIME_MIN to protect
105    operations against possible overflows or handle circular
106    increments.
107 **/
108
109 #endif /* MARTE_OS */
110
111 ///////////////////////  End of MARTE_OS  /////////////////////////////
112
113
114 /////////////////////// RT_LINUX ///////////////////////////
115
116 #ifdef RT_LINUX
117
118 /**
119    Choose between:
120    -  struct timespec
121    -  numeric type (long, .long long, short)
122 **/
123
124 #define FOSA_TIME_TIMESPEC
125
126 typedef struct timespec FOSA_REL_TIME_T_OPAQUE;
127 typedef struct timespec FOSA_ABS_TIME_T_OPAQUE;
128
129
130 /*
131 #define FOSA_TIME_NUMERIC
132 #define FOSA_TIME_BASE 9    // 9 for nanosecods
133                             // 6 for microseconds
134                             // 3 for miliseconds
135
136 typedef long long FOSA_REL_TIME_T_OPAQUE;
137 typedef unsigned long long FOSA_ABS_TIME_T_OPAQUE;
138
139 */
140 /**
141    Possible additions:  FOSA_ABS_TIME_MAX, FOSA_ABS_TIME_MIN,
142    FOSA_REL_TIME_MAX, FOSA_REL_TIME_MIN to protect
143    operations against possible overflows or handle circular
144    increments.
145 **/
146
147 #endif /* RT_LINUX */
148
149
150 ///////////////////////  End of RT_LINUX /////////////////////////////
151
152
153
154 ////////////////////////// OSE    //////////////////////////////////////
155
156 #ifdef OSE
157
158 /**
159    Choose between:
160    -  struct timespec
161    -  numeric type (long, .long long, short)
162 **/
163
164 #define FOSA_TIME_TIMESPEC
165
166 typedef struct timespec FOSA_REL_TIME_T_OPAQUE;
167 typedef struct timespec FOSA_ABS_TIME_T_OPAQUE;
168
169 /*
170 #define FOSA_TIME_NUMERIC
171 #define FOSA_TIME_BASE 9    // 9 for nanosecods
172                             // 6 for microseconds
173                             // 3 for miliseconds
174
175 typedef long long FOSA_REL_TIME_T_OPAQUE;
176 typedef unsigned long long FOSA_ABS_TIME_T_OPAQUE;
177
178 */
179
180 /**
181    Possible additions:  FOSA_ABS_TIME_MAX, FOSA_ABS_TIME_MIN,
182    FOSA_REL_TIME_MAX, FOSA_REL_TIME_MIN to protect
183    operations against possible overflows or handle circular
184    increments.
185 **/
186
187
188 #endif /* OSE */
189
190 ///////////////////////  End of OSE ///////////////////////////////////
191
192 /////////////////////// AQuoSA ///////////////////////////
193
194 #ifdef AQuoSA
195
196 /**
197    Choose between:
198    -  struct timespec
199    -  numeric type (long, .long long, short)
200 **/
201
202
203 #define FOSA_TIME_TIMESPEC
204
205 typedef struct timespec FOSA_REL_TIME_T_OPAQUE;
206 typedef struct timespec FOSA_ABS_TIME_T_OPAQUE;
207
208
209 /*
210
211 #define FOSA_TIME_NUMERIC
212 #define FOSA_TIME_BASE 9    // 9 for nanosecods
213                             // 6 for microseconds
214                             // 3 for miliseconds
215
216 typedef long long FOSA_REL_TIME_T_OPAQUE;
217 typedef unsigned long long FOSA_ABS_TIME_T_OPAQUE;
218
219 */
220 /**
221    Possible additions:  FOSA_ABS_TIME_MAX, FOSA_ABS_TIME_MIN,
222    FOSA_REL_TIME_MAX, FOSA_REL_TIME_MIN to protect
223    operations against possible overflows or handle circular
224    increments.
225 **/
226
227
228 #endif /* AQuoSA */
229
230 ///////////////////////  End of AQuoSA ////////////////////////////////
231
232
233 /////////////////////// PARTIKLE ///////////////////////////
234
235 #ifdef PARTIKLE
236
237 /**
238    Choose between:
239    -  struct timespec
240    -  numeric type (long, .long long, short)
241 **/
242
243
244 #define FOSA_TIME_TIMESPEC
245
246 typedef struct timespec FOSA_REL_TIME_T_OPAQUE;
247 typedef struct timespec FOSA_ABS_TIME_T_OPAQUE;
248
249 /*
250
251 #define FOSA_TIME_NUMERIC
252 #define FOSA_TIME_BASE 9    // 9 for nanosecods
253                             // 6 for microseconds
254                             // 3 for miliseconds
255
256 typedef long long FOSA_REL_TIME_T_OPAQUE;
257 typedef unsigned long long FOSA_ABS_TIME_T_OPAQUE;
258
259 */
260
261 /**
262    Possible additions:  FOSA_ABS_TIME_MAX, FOSA_ABS_TIME_MIN,
263    FOSA_REL_TIME_MAX, FOSA_REL_TIME_MIN to protect
264    operations against possible overflows or handle circular
265    increments.
266 **/
267
268
269 #endif /* PARTIKLE */
270
271 ///////////////////////  End of PARTIKLE ////////////////////////////////
272
273 /////////////////////// VIRTUAL_TIME ///////////////////////////
274
275 #ifdef VIRTUAL_TIME
276
277 /**
278    Choose between:
279    -  struct timespec
280    -  numeric type (long, .long long, short)
281 **/
282
283
284
285 #define FOSA_TIME_TIMESPEC
286
287 typedef struct timespec FOSA_REL_TIME_T_OPAQUE;
288 typedef struct timespec FOSA_ABS_TIME_T_OPAQUE;
289
290
291 /*
292
293 #define FOSA_TIME_NUMERIC
294 #define FOSA_TIME_BASE 9    // 9 for nanosecods
295                             // 6 for microseconds
296                             // 3 for miliseconds
297
298 typedef long long FOSA_REL_TIME_T_OPAQUE;
299 typedef unsigned long long FOSA_ABS_TIME_T_OPAQUE;
300
301 */
302
303 /**
304    Possible additions:  FOSA_ABS_TIME_MAX, FOSA_ABS_TIME_MIN,
305    FOSA_REL_TIME_MAX, FOSA_REL_TIME_MIN to protect
306    operations against possible overflows or handle circular
307    increments.
308 **/
309
310
311 #endif /* VIRTUAL_TIME */
312
313 ///////////////////////  End of VIRTUAL_TIME //////////////////////////
314
315 /////////////////////// DUMMY_OS ///////////////////////////
316
317 #ifdef DUMMY_OS
318
319 /**
320    Choose between:
321    -  struct timespec
322    -  numeric type (long, .long long, short)
323 **/
324
325
326 #define FOSA_TIME_TIMESPEC
327
328 typedef struct timespec FOSA_REL_TIME_T_OPAQUE;
329 typedef struct timespec FOSA_ABS_TIME_T_OPAQUE;
330
331
332 /*
333
334 #define FOSA_TIME_NUMERIC
335 #define FOSA_TIME_BASE 9    // 9 for nanosecods
336                             // 6 for microseconds
337                             // 3 for miliseconds
338
339 typedef long long FOSA_REL_TIME_T_OPAQUE;
340 typedef unsigned long long FOSA_ABS_TIME_T_OPAQUE;
341
342 */
343
344 /**
345    Possible additions:  FOSA_ABS_TIME_MAX, FOSA_ABS_TIME_MIN,
346    FOSA_REL_TIME_MAX, FOSA_REL_TIME_MIN to protect
347    operations against possible overflows or handle circular
348    increments.
349 **/
350
351
352 #endif /* DUMMY_OS */
353
354 ///////////////////////  End of DUMMY_OS //////////////////////////
355
356 #endif /* FOSA_OPAQUE_TYPES_TIME_H */