diff --git a/src/sys/include/ubixos/schedule.h b/src/sys/include/ubixos/schedule.h index dd42259..e6e678e 100755 --- a/src/sys/include/ubixos/schedule.h +++ b/src/sys/include/ubixos/schedule.h @@ -102,9 +102,9 @@ void timerInt(); void schedule(); -/* Stuff for queues...commenting out until I get a chance to test (so I don't break stuff). +// Stuff for queues...commenting out until I get a chance to test (so I don't break stuff). -const uint32_t schedMagicNumber = 0x253B9CF9; +extern const uint32_t schedMagicNumber; struct waitQueueNode { @@ -117,7 +117,7 @@ }; -struct waitQueue +typedef struct waitQueue { uint32_t magic_number; uint32_t type; @@ -128,13 +128,13 @@ } waitQueue_t; waitQueue_t * waitQueueCreate(int); -void waitQueueInit(waitQueue_t &, int); +void waitQueueInit(waitQueue_t *, int); void waitQueueDelete(waitQueue_t *); -void waitQueueUnInit(waitQueue_t &); +void waitQueueUnInit(waitQueue_t *); void waitQueueInsert(waitQueue_t *, void *, int); -void * waitQueueRemove(waitQueue_t *, int &); +void * waitQueueRemove(waitQueue_t *, int *); -*/ + #endif diff --git a/src/sys/kernel/schedule.c b/src/sys/kernel/schedule.c index 47a1ab9..21144de 100755 --- a/src/sys/kernel/schedule.c +++ b/src/sys/kernel/schedule.c @@ -22,11 +22,18 @@ **************************************************************************************/ #include +#include #include #include #include #include +#ifndef NULL +#define NULL 0 +#endif + +const uint32_t schedMagicNumber = 0x253B9CF9; + int currentProc = -1; struct taskStruct *taskList = (struct taskStruct *)0xE0000000; struct taskStruct *_current,*_usedMath = 0x0; @@ -74,18 +81,6 @@ i %= numTasks; } proc = i; - /* - for (i=currentProc;i= numTasks) { i = -1; } - }*/ if (proc != -1) { currentProc = proc; _current = &taskList[proc]; @@ -112,7 +107,7 @@ " iret \n" ); -/* New stuff commented out for now. +// New stuff commented out for now. waitQueue_t * waitQueueCreate(int type) { @@ -129,9 +124,9 @@ return queue; } -void waitQueueInit(waitQueue_t & queue, int type) +void waitQueueInit(waitQueue_t * queue, int type) { - memset(&queue, '\0', sizeof(queue)); + memset(queue, '\0', sizeof(*queue)); queue->magic_number = schedMagicNumber; queue->type = type; @@ -161,21 +156,21 @@ kfree(queue); } -void waitQueueUnInit(waitQueue_t & queue) +void waitQueueUnInit(waitQueue_t * queue) { struct waitQueueNode * temp; - if (queue.magic_number != schedMagicNumber) + if (queue->magic_number != schedMagicNumber) return; - while (queue.first != NULL) + while (queue->first != NULL) { - temp = queue.first; - queue.first = queue.first->next; + temp = queue->first; + queue->first = queue->first->next; kfree(temp); } - memset(&queue, '\0', sizeof(waitQueue_t)); + memset(queue, '\0', sizeof(waitQueue_t)); } void waitQueueInsert(waitQueue_t * queue, void * data, int id) @@ -208,7 +203,7 @@ return; } -void * waitQueueRemove(waitQueue_t * queue, int & id) +void * waitQueueRemove(waitQueue_t * queue, int * id) { void * temp; @@ -222,6 +217,7 @@ return NULL; temp = queue->first->data; + *id = queue->first->id; if (queue->first->next == NULL) { @@ -239,4 +235,4 @@ } -*/ +