|
version 1.16.14.1, 2022/10/03 22:16:36
|
version 1.18, 2023/02/25 15:55:01
|
|
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 - 2022 | Copyright 2004 - 2023 |
| 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 182 extern char sched_Error[];
|
Line 182 extern char sched_Error[];
|
| void sched_SetErr(int, char *, ...); |
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 |
static inline void |
| remove_task_from(sched_task_t * __restrict t, sched_queue_t * __restrict q) |
remove_task_from(sched_task_t * __restrict t, sched_queue_t * __restrict q) |
| { |
{ |
|
Line 212 transit_task2unuse(sched_task_t * __restrict t, sched_
|
Line 228 transit_task2unuse(sched_task_t * __restrict t, sched_
|
| TASK_UNLOCK(t); |
TASK_UNLOCK(t); |
| TASK_TYPE(t) = taskUNUSE; |
TASK_TYPE(t) = taskUNUSE; |
| insert_task_to(t, &(TASK_ROOT(t))->root_unuse); |
insert_task_to(t, &(TASK_ROOT(t))->root_unuse); |
| |
} |
| |
|
| |
static inline void |
| |
transit_task2ready(sched_task_t * __restrict t, sched_queue_t * __restrict q) |
| |
{ |
| |
remove_task_from(t, q); |
| |
|
| |
t->task_type = taskREADY; |
| |
insert_task_to(t, &(TASK_ROOT(t))->root_ready); |
| } |
} |
| |
|
| |
|