--- libaitsched/inc/defs.h 2023/02/23 17:13:01 1.17.10.1 +++ libaitsched/inc/defs.h 2023/02/25 15:40:48 1.17.10.2 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: defs.h,v 1.17.10.1 2023/02/23 17:13:01 misho Exp $ +* $Id: defs.h,v 1.17.10.2 2023/02/25 15:40:48 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -181,6 +181,22 @@ extern char sched_Error[]; void sched_SetErr(int, char *, ...); + +static inline struct timespec * +sched_timespecmin(struct timespec * __restrict spa, struct timespec * __restrict spb) +{ + assert(spa && spb); + + if (sched_timespecisinf(spa)) + return spb; + if (sched_timespecisinf(spb)) + return spa; + + if (spa->tv_sec == spb->tv_sec) + return (spa->tv_nsec < spb->tv_nsec) ? spa : spb; + else + return (spa->tv_sec < spb->tv_sec) ? spa : spb; +} static inline void remove_task_from(sched_task_t * __restrict t, sched_queue_t * __restrict q)