]> rtime.felk.cvut.cz Git - frescor/fosa.git/blob - include/fosa_opaque_types_time.h
Additions to fosa time to be used with FRSH
[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 #define FOSA_TIME_TIMESPEC
83
84 typedef struct timespec FOSA_REL_TIME_T_OPAQUE;
85 typedef struct timespec FOSA_ABS_TIME_T_OPAQUE;
86
87
88 /*
89
90 #define FOSA_TIME_NUMERIC
91 #define FOSA_TIME_BASE 9    // 9 for nanosecods
92                             // 6 for microseconds
93                             // 3 for miliseconds
94
95 typedef long long FOSA_REL_TIME_T_OPAQUE;
96 typedef unsigned long long FOSA_ABS_TIME_T_OPAQUE;
97
98 */
99
100 /**
101    Possible additions:  FOSA_ABS_TIME_MAX, FOSA_ABS_TIME_MIN,
102    FOSA_REL_TIME_MAX, FOSA_REL_TIME_MIN to protect
103    operations against possible overflows or handle circular
104    increments.
105 **/
106
107 #endif /* MARTE_OS */
108
109 ///////////////////////  End of MARTE_OS  /////////////////////////////
110
111
112 /////////////////////// RT_LINUX ///////////////////////////
113
114 #ifdef RT_LINUX
115
116 /**
117    Choose between:
118    -  struct timespec
119    -  numeric type (long, .long long, short)
120 **/
121 /*
122 #define FOSA_TIME_TIMESPEC
123
124 typedef struct timespec FOSA_REL_TIME_T_OPAQUE;
125 typedef struct timespec FOSA_ABS_TIME_T_OPAQUE;
126
127 */
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 /**
142    Possible additions:  FOSA_ABS_TIME_MAX, FOSA_ABS_TIME_MIN,
143    FOSA_REL_TIME_MAX, FOSA_REL_TIME_MIN to protect
144    operations against possible overflows or handle circular
145    increments.
146 **/
147
148 #endif /* RT_LINUX */
149
150
151 ///////////////////////  End of RT_LINUX /////////////////////////////
152
153
154
155 ////////////////////////// OSE    //////////////////////////////////////
156
157 #ifdef OSE
158
159 /**
160    Choose between:
161    -  struct timespec
162    -  numeric type (long, .long long, short)
163 **/
164
165 #define FOSA_TIME_TIMESPEC
166
167 typedef struct timespec FOSA_REL_TIME_T_OPAQUE;
168 typedef struct timespec FOSA_ABS_TIME_T_OPAQUE;
169
170 /*
171 #define FOSA_TIME_NUMERIC
172 #define FOSA_TIME_BASE 9    // 9 for nanosecods
173                             // 6 for microseconds
174                             // 3 for miliseconds
175
176 typedef long long FOSA_REL_TIME_T_OPAQUE;
177 typedef unsigned long long FOSA_ABS_TIME_T_OPAQUE;
178
179 */
180
181 /**
182    Possible additions:  FOSA_ABS_TIME_MAX, FOSA_ABS_TIME_MIN,
183    FOSA_REL_TIME_MAX, FOSA_REL_TIME_MIN to protect
184    operations against possible overflows or handle circular
185    increments.
186 **/
187
188
189 #endif /* OSE */
190
191 ///////////////////////  End of OSE ///////////////////////////////////
192
193 /////////////////////// AQuoSA ///////////////////////////
194
195 #ifdef AQuoSA
196
197 /**
198    Choose between:
199    -  struct timespec
200    -  numeric type (long, .long long, short)
201 **/
202
203
204 #define FOSA_TIME_TIMESPEC
205
206 typedef struct timespec FOSA_REL_TIME_T_OPAQUE;
207 typedef struct timespec FOSA_ABS_TIME_T_OPAQUE;
208
209
210 /*
211
212 #define FOSA_TIME_NUMERIC
213 #define FOSA_TIME_BASE 9    // 9 for nanosecods
214                             // 6 for microseconds
215                             // 3 for miliseconds
216
217 typedef long long FOSA_REL_TIME_T_OPAQUE;
218 typedef unsigned long long FOSA_ABS_TIME_T_OPAQUE;
219
220 */
221 /**
222    Possible additions:  FOSA_ABS_TIME_MAX, FOSA_ABS_TIME_MIN,
223    FOSA_REL_TIME_MAX, FOSA_REL_TIME_MIN to protect
224    operations against possible overflows or handle circular
225    increments.
226 **/
227
228
229 #endif /* AQuoSA */
230
231 ///////////////////////  End of AQuoSA ////////////////////////////////
232
233
234 /////////////////////// PARTIKLE ///////////////////////////
235
236 #ifdef PARTIKLE
237
238 /**
239    Choose between:
240    -  struct timespec
241    -  numeric type (long, .long long, short)
242 **/
243
244
245 #define FOSA_TIME_TIMESPEC
246
247 typedef struct timespec FOSA_REL_TIME_T_OPAQUE;
248 typedef struct timespec FOSA_ABS_TIME_T_OPAQUE;
249
250 /*
251
252 #define FOSA_TIME_NUMERIC
253 #define FOSA_TIME_BASE 9    // 9 for nanosecods
254                             // 6 for microseconds
255                             // 3 for miliseconds
256
257 typedef long long FOSA_REL_TIME_T_OPAQUE;
258 typedef unsigned long long FOSA_ABS_TIME_T_OPAQUE;
259
260 */
261
262 /**
263    Possible additions:  FOSA_ABS_TIME_MAX, FOSA_ABS_TIME_MIN,
264    FOSA_REL_TIME_MAX, FOSA_REL_TIME_MIN to protect
265    operations against possible overflows or handle circular
266    increments.
267 **/
268
269
270 #endif /* PARTIKLE */
271
272 ///////////////////////  End of PARTIKLE ////////////////////////////////
273
274 /////////////////////// VIRTUAL_TIME ///////////////////////////
275
276 #ifdef VIRTUAL_TIME
277
278 /**
279    Choose between:
280    -  struct timespec
281    -  numeric type (long, .long long, short)
282 **/
283
284
285
286 #define FOSA_TIME_TIMESPEC
287
288 typedef struct timespec FOSA_REL_TIME_T_OPAQUE;
289 typedef struct timespec FOSA_ABS_TIME_T_OPAQUE;
290
291
292 /*
293
294 #define FOSA_TIME_NUMERIC
295 #define FOSA_TIME_BASE 9    // 9 for nanosecods
296                             // 6 for microseconds
297                             // 3 for miliseconds
298
299 typedef long long FOSA_REL_TIME_T_OPAQUE;
300 typedef unsigned long long FOSA_ABS_TIME_T_OPAQUE;
301
302 */
303
304 /**
305    Possible additions:  FOSA_ABS_TIME_MAX, FOSA_ABS_TIME_MIN,
306    FOSA_REL_TIME_MAX, FOSA_REL_TIME_MIN to protect
307    operations against possible overflows or handle circular
308    increments.
309 **/
310
311
312 #endif /* VIRTUAL_TIME */
313
314 ///////////////////////  End of VIRTUAL_TIME //////////////////////////
315
316 /////////////////////// DUMMY_OS ///////////////////////////
317
318 #ifdef DUMMY_OS
319
320 /**
321    Choose between:
322    -  struct timespec
323    -  numeric type (long, .long long, short)
324 **/
325
326
327 #define FOSA_TIME_TIMESPEC
328
329 typedef struct timespec FOSA_REL_TIME_T_OPAQUE;
330 typedef struct timespec FOSA_ABS_TIME_T_OPAQUE;
331
332
333 /*
334
335 #define FOSA_TIME_NUMERIC
336 #define FOSA_TIME_BASE 9    // 9 for nanosecods
337                             // 6 for microseconds
338                             // 3 for miliseconds
339
340 typedef long long FOSA_REL_TIME_T_OPAQUE;
341 typedef unsigned long long FOSA_ABS_TIME_T_OPAQUE;
342
343 */
344
345 /**
346    Possible additions:  FOSA_ABS_TIME_MAX, FOSA_ABS_TIME_MIN,
347    FOSA_REL_TIME_MAX, FOSA_REL_TIME_MIN to protect
348    operations against possible overflows or handle circular
349    increments.
350 **/
351
352
353 #endif /* DUMMY_OS */
354
355 ///////////////////////  End of DUMMY_OS //////////////////////////
356
357 #endif /* FOSA_OPAQUE_TYPES_TIME_H */