version 1.3, 2012/01/08 00:51:17
|
version 1.13.2.1, 2014/05/19 23:21:41
|
Line 12 terms:
|
Line 12 terms:
|
All of the documentation and software included in the ELWIX and AITNET |
All of the documentation and software included in the ELWIX and AITNET |
Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> |
Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> |
|
|
Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 | Copyright 2004 - 2014 |
by Michael Pounov <misho@elwix.org>. All rights reserved. |
by Michael Pounov <misho@elwix.org>. All rights reserved. |
|
|
Redistribution and use in source and binary forms, with or without |
Redistribution and use in source and binary forms, with or without |
Line 47 SUCH DAMAGE.
|
Line 47 SUCH DAMAGE.
|
#define __DEFS_H |
#define __DEFS_H |
|
|
|
|
|
#ifndef STRSIZ |
#define STRSIZ 256 |
#define STRSIZ 256 |
#define KQ_EVENTS 24 | #endif |
#define MAX_EVENTLO_MISS 48 | |
|
|
|
#ifndef KQ_EVENTS |
|
#define KQ_EVENTS 32 |
|
#endif |
|
|
|
#ifndef EV_EOF |
|
#define EV_EOF 0x8000 |
|
#endif |
|
|
|
#ifndef SIGRTMIN |
|
#define SIGRTMIN 65 |
|
#endif |
|
|
|
#ifndef __unused |
|
#define __unused __attribute__((unused)) |
|
#endif |
|
|
|
#define MAX_TASK_MISS 12 |
|
|
#define LOGERR { \ |
#define LOGERR { \ |
sched_Errno = errno; \ |
sched_Errno = errno; \ |
strlcpy(sched_Error, strerror(errno), STRSIZ); \ |
strlcpy(sched_Error, strerror(errno), STRSIZ); \ |
} |
} |
|
|
|
#define sched_timespecclear(tsp) ((tsp)->tv_sec = (tsp)->tv_nsec = 0) |
|
#define sched_timespecinf(tsp) ((tsp)->tv_sec = (tsp)->tv_nsec = -1) |
|
#define sched_timespecisinf(tsp) ((tsp)->tv_sec == -1 && (tsp)->tv_nsec == -1) |
|
#define sched_timespecisset(tsp) (((tsp)->tv_sec && (tsp)->tv_sec != -1) || \ |
|
((tsp)->tv_nsec && (tsp)->tv_nsec != -1)) |
|
#define sched_timespeccmp(tsp, usp, cmp) \ |
|
(((tsp)->tv_sec == (usp)->tv_sec) ? \ |
|
((tsp)->tv_nsec cmp (usp)->tv_nsec) : \ |
|
((tsp)->tv_sec cmp (usp)->tv_sec)) |
|
#define sched_timespecadd(tsp, usp, vsp) \ |
|
do { \ |
|
(vsp)->tv_sec = (tsp)->tv_sec + (usp)->tv_sec; \ |
|
(vsp)->tv_nsec = (tsp)->tv_nsec + (usp)->tv_nsec; \ |
|
if ((vsp)->tv_nsec >= 1000000000L) { \ |
|
(vsp)->tv_sec++; \ |
|
(vsp)->tv_nsec -= 1000000000L; \ |
|
} \ |
|
} while (0) |
|
#define sched_timespecsub(tsp, usp, vsp) \ |
|
do { \ |
|
(vsp)->tv_sec = (tsp)->tv_sec - (usp)->tv_sec; \ |
|
(vsp)->tv_nsec = (tsp)->tv_nsec - (usp)->tv_nsec; \ |
|
if ((vsp)->tv_nsec < 0) { \ |
|
(vsp)->tv_sec--; \ |
|
(vsp)->tv_nsec += 1000000000L; \ |
|
} \ |
|
} while (0) |
|
|
|
#define sched_timespec2val(tsp, tvp) ((tvp)->tv_sec = (tsp)->tv_sec, \ |
|
(tvp)->tv_usec = (tsp)->tv_nsec / 1000) |
|
#define sched_timeval2spec(tvp, tsp) ((tsp)->tv_sec = (tvp)->tv_sec, \ |
|
(tsp)->tv_nsec = (tvp)->tv_usec * 1000) |
|
|
|
#define sched_timevalclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0) |
|
#define sched_timevalinf(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = -1) |
|
#define sched_timevalisinf(tvp) ((tvp)->tv_sec == -1 && (tvp)->tv_usec == -1) |
|
#define sched_timevalisset(tvp) (((tvp)->tv_sec && (tvp)->tv_sec != -1) || \ |
|
((tvp)->tv_usec && (tvp)->tv_usec != -1)) |
|
#define sched_timevalcmp(tvp, uvp, cmp) \ |
|
(((tvp)->tv_sec == (uvp)->tv_sec) ? \ |
|
((tvp)->tv_usec cmp (uvp)->tv_usec) : \ |
|
((tvp)->tv_sec cmp (uvp)->tv_sec)) |
|
#define sched_timevaladd(tvp, uvp, vvp) \ |
|
do { \ |
|
(vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \ |
|
(vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \ |
|
if ((vvp)->tv_usec >= 1000000) { \ |
|
(vvp)->tv_sec++; \ |
|
(vvp)->tv_usec -= 1000000; \ |
|
} \ |
|
} while (0) |
|
#define sched_timevalsub(tvp, uvp, vvp) \ |
|
do { \ |
|
(vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ |
|
(vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ |
|
if ((vvp)->tv_usec < 0) { \ |
|
(vvp)->tv_sec--; \ |
|
(vvp)->tv_usec += 1000000; \ |
|
} \ |
|
} while (0) |
|
|
|
|
extern int sched_Errno; |
extern int sched_Errno; |
extern char sched_Error[]; |
extern char sched_Error[]; |
|
|
inline void sched_SetErr(int, char *, ...); | void sched_SetErr(int, char *, ...); |
|
|
inline sched_task_t *_sched_useTask(sched_root_task_t * __restrict root); | void *_sched_threadWrapper(sched_task_t *); |
inline sched_task_t *_sched_unuseTask(sched_task_t * __restrict task); | void *_sched_rtcWrapper(sched_task_t *); |
|
|
|
|
#endif |
#endif |