Newer
Older
#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);
}
void Handle(KernelStruct* Colonel, int n) {
switch(n) {
return handlerCreate(Colonel);
case SYS_MyTid:
(Colonel->Active)->RetVal = (Colonel->Active)->TaskID;
pushToScheduler(Colonel);
break;
case SYS_ParentTid:
(Colonel->Active)->RetVal = (Colonel->Active)->ParentID;
pushToScheduler(Colonel);
break;
pushToScheduler(Colonel);
break;
(Colonel->Active)->TaskState = Zombie;
break;