|
version 1.4, 2012/05/31 22:31:48
|
version 1.8, 2012/08/21 12:54:39
|
|
Line 11
|
Line 11
|
| #include <aitsched.h> |
#include <aitsched.h> |
| |
|
| intptr_t Kill; |
intptr_t Kill; |
| |
sched_root_task_t *root; |
| |
|
| void *event(sched_task_t *arg) |
void *event(sched_task_t *arg) |
| { |
{ |
|
Line 18 void *event(sched_task_t *arg)
|
Line 19 void *event(sched_task_t *arg)
|
| return NULL; |
return NULL; |
| } |
} |
| |
|
| void *eventlo(sched_task_t *arg) | void *regular(sched_task_t *arg) |
| { |
{ |
| printf("EventLOW::\n"); | printf("Task(%lu):: %s\n", TASK_VAL(arg), (char*) TASK_ARG(arg)); |
| | fflush(stdout); |
| return NULL; |
return NULL; |
| } |
} |
| |
|
|
Line 38 void *alarmz(sched_task_t *arg)
|
Line 40 void *alarmz(sched_task_t *arg)
|
| |
|
| void *node(sched_task_t *arg) |
void *node(sched_task_t *arg) |
| { |
{ |
| printf("Node %s fflags 0x%X\n", (char*) TASK_ARG(arg), (u_int) TASK_DATLEN(arg)); | printf("Node %s data %d fflags 0x%X\n", (char*) TASK_ARG(arg), TASK_RET(arg), TASK_FLAG(arg)); |
| return NULL; |
return NULL; |
| } |
} |
| |
|
| void *proc(sched_task_t *arg) |
void *proc(sched_task_t *arg) |
| { |
{ |
| printf("Proc pid=%ld fflags 0x%X data %p\n", TASK_VAL(arg), (u_int) TASK_DATLEN(arg), | printf("Proc pid=%ld data %d fflags 0x%X\n", TASK_VAL(arg), TASK_RET(arg), TASK_FLAG(arg)); |
| TASK_DATA(arg)); | |
| return NULL; |
return NULL; |
| } |
} |
| |
|
| void *sigz(sched_task_t *arg) |
void *sigz(sched_task_t *arg) |
| { |
{ |
| printf("Signal signal=%ld\n", TASK_VAL(arg)); | printf("Signal signal=%ld how many times %d\n", TASK_VAL(arg), TASK_RET(arg)); |
| return NULL; |
return NULL; |
| } |
} |
| |
|
| #ifdef EVFILT_USER |
#ifdef EVFILT_USER |
| void *user(sched_task_t *arg) |
void *user(sched_task_t *arg) |
| { |
{ |
| printf("User trigger id %ld fflags %d\n", TASK_VAL(arg), TASK_DATLEN(arg) & NOTE_FFLAGSMASK); | printf("User trigger id %ld fflags %d\n", TASK_VAL(arg), TASK_FLAG(arg) & NOTE_FFLAGSMASK); |
| return NULL; |
return NULL; |
| } |
} |
| #endif |
#endif |
| |
|
| |
void *susp1(sched_task_t *arg) |
| |
{ |
| |
printf("Suspend 1 =%ld\n", TASK_VAL(arg)); |
| |
return NULL; |
| |
} |
| |
void *susp2(sched_task_t *arg) |
| |
{ |
| |
printf("Suspend 2 =%ld\n", TASK_VAL(arg)); |
| |
return NULL; |
| |
} |
| |
void *susp3(sched_task_t *arg) |
| |
{ |
| |
printf("Suspend 3 =%ld\n", TASK_VAL(arg)); |
| |
return NULL; |
| |
} |
| |
|
| void *once(sched_task_t *arg) |
void *once(sched_task_t *arg) |
| { |
{ |
| printf("once::\n"); |
printf("once::\n"); |
|
Line 76 void sig(int s)
|
Line 93 void sig(int s)
|
| Kill++; |
Kill++; |
| break; |
break; |
| case SIGUSR1: |
case SIGUSR1: |
| |
schedResumeby(root, CRITERIA_ID, (void*) 0); |
| |
schedResumeby(root, CRITERIA_ID, (void*) 7); |
| break; |
break; |
| } |
} |
| } |
} |
|
Line 83 void sig(int s)
|
Line 102 void sig(int s)
|
| int |
int |
| main(int argc, char **argv) |
main(int argc, char **argv) |
| { |
{ |
| sched_root_task_t *root; |
|
| struct timespec ts = { 20, 0 }; |
struct timespec ts = { 20, 0 }; |
| // struct timespec p = { 0, 10000000 }; |
// struct timespec p = { 0, 10000000 }; |
| int f = 0; |
int f = 0; |
|
Line 91 main(int argc, char **argv)
|
Line 109 main(int argc, char **argv)
|
| #ifdef EVFILT_USER |
#ifdef EVFILT_USER |
| sched_task_t *t[4]; |
sched_task_t *t[4]; |
| #endif |
#endif |
| |
sched_task_t *task; |
| |
|
| sa.sa_handler = sig; |
sa.sa_handler = sig; |
| sigemptyset(&sa.sa_mask); |
sigemptyset(&sa.sa_mask); |
|
Line 119 main(int argc, char **argv)
|
Line 138 main(int argc, char **argv)
|
| return 2; |
return 2; |
| } |
} |
| |
|
| if (!schedEventLo(root, eventlo, "piuk", 1111, NULL, 0)) { | if (!schedTask(root, regular, "piuk", 11, NULL, 0)) { |
| printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); |
printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); |
| return 3; |
return 3; |
| } |
} |
| |
if (!schedTask(root, regular, "piuk", 1, NULL, 0)) { |
| |
printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); |
| |
return 3; |
| |
} |
| |
if (!schedTask(root, regular, "piuk", 0, NULL, 0)) { |
| |
printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); |
| |
return 3; |
| |
} |
| |
if (!schedTask(root, regular, "piuk", 1000001, NULL, 0)) { |
| |
printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); |
| |
return 3; |
| |
} |
| |
|
| if (!schedTimer(root, timer, (void*) (intptr_t) ts.tv_sec, ts, NULL, 0)) { |
if (!schedTimer(root, timer, (void*) (intptr_t) ts.tv_sec, ts, NULL, 0)) { |
| printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); |
printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); |
|
Line 171 main(int argc, char **argv)
|
Line 202 main(int argc, char **argv)
|
| return 6; |
return 6; |
| } |
} |
| #endif |
#endif |
| |
if (!schedSuspend(root, susp1, NULL, 7, NULL, 0)) { |
| |
printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); |
| |
return 6; |
| |
} |
| |
if (!(task = schedSuspend(root, susp2, NULL, 1, NULL, 0))) { |
| |
printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); |
| |
return 6; |
| |
} |
| |
if (!schedSuspend(root, susp3, NULL, 0, NULL, 0)) { |
| |
printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); |
| |
return 6; |
| |
} |
| |
|
| if (argc > 1) |
if (argc > 1) |
| if (!schedProc(root, proc, NULL, atoi(argv[1]), 0, 0)) { |
if (!schedProc(root, proc, NULL, atoi(argv[1]), 0, 0)) { |
|
Line 194 main(int argc, char **argv)
|
Line 237 main(int argc, char **argv)
|
| schedTrigger(t[3]); |
schedTrigger(t[3]); |
| schedTrigger(t[1]); |
schedTrigger(t[1]); |
| #endif |
#endif |
| |
schedResumeby(root, CRITERIA_DATA, task); |
| |
|
| if (!schedSignal(root, sigz, NULL, SIGUSR1, 0, 0)) { |
if (!schedSignal(root, sigz, NULL, SIGUSR1, 0, 0)) { |
| printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); |
printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); |