X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=int%2Ftask.c;h=8fde866a338fd4562cdf9dc9482dbfa665605c30;hb=e09afe083f9077d63a8bd6c27ed8fa5da60430a8;hp=13fbd07d437a9cf3176d46bc28be51caf6627f91;hpb=fa71b6dc45c53e87d9045eb7cdf3cd4328ad0e7d;p=mTask.git diff --git a/int/task.c b/int/task.c index 13fbd07..8fde866 100644 --- a/int/task.c +++ b/int/task.c @@ -1,15 +1,22 @@ -#include #include #include + +#ifndef STM #include +#include +#endif -#include "misc.h" #include "task.h" +#include "interface.h" + +struct task tasks[MAXTASKS]; -struct task tasks[MAXTASKS] = {0}; -uint8_t c; +void task_init(void) +{ + memset(&tasks, 0, sizeof(struct task)*MAXTASKS); +} -int task_register(int fd) +int task_register(void) { uint8_t ct; @@ -17,38 +24,39 @@ int task_register(int fd) if(!tasks[ct].used) break; if(ct == MAXTASKS) - die("Trying to add too much tasks...\n"); + die("Trying to add too much tasks..."); memset(&tasks[ct], 0, sizeof(struct task)); //Read interval - read(fd, &c, 1); - tasks[ct].interval = 256*c; - read(fd, &c, 1); - tasks[ct].interval += c; + tasks[ct].interval = read16(); + debug("interval"); + debugi(tasks[ct].interval); //Read tasklength - read(fd, &c, 1); - tasks[ct].tlen = 256*c; - read(fd, &c, 1); - tasks[ct].tlen += c; + tasks[ct].tlen = read16(); + debug("length"); + debugi(tasks[ct].tlen); + if(tasks[ct].tlen > MAXTASKSIZE) - die("Task is too long: %d\n", tasks[ct].tlen); + die("Task is too long: %d", tasks[ct].tlen); //Read task bytecode - for(int i = 0; i