#include "task-descriptor.h" #include "kernel.h" #include "syscall-handler.h" int handlerCreate(KernelStruct* Colonel, TD* Active, int priority, void (*code)()) { TD* NewTask = NewTask(priority,Active->TaskID),code); return pushToScheduler(Colonel, NewTask); } int handle(TD* Active, Request* req) { switch(req->n) { case SYS_Create: return handlerCreate(Active, Active->TaskPriority, ???); // TODO case SYS_MyTid: return Active->TaskID; case SYS_ParentTid: if (isTaskAlive(Active->ParentID)) return Active->ParentID; else return FAILURE; case SYS_Pass: Active->TaskState = Ready; return SUCCESS; case SYS_Exit: } }