--- libaitsched/inc/defs.h 2012/08/22 10:33:45 1.8.6.1 +++ libaitsched/inc/defs.h 2014/01/27 16:52:56 1.11.14.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: defs.h,v 1.8.6.1 2012/08/22 10:33:45 misho Exp $ +* $Id: defs.h,v 1.11.14.1 2014/01/27 16:52:56 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -51,7 +51,14 @@ SUCH DAMAGE. #define STRSIZ 256 #endif +#ifndef KQ_EVENTS #define KQ_EVENTS 32 +#endif + +#ifndef EV_EOF +#define EV_EOF 0x8000 +#endif + #define MAX_TASK_MISS 12 #define LOGERR { \ @@ -87,12 +94,47 @@ SUCH DAMAGE. } \ } 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 char sched_Error[]; -inline void sched_SetErr(int, char *, ...); +void sched_SetErr(int, char *, ...); -void *_sched_threadJoin(sched_task_t *); +void *_sched_threadWrapper(sched_task_t *); +void *_sched_rtcWrapper(sched_task_t *); #endif