Go to the documentation of this file.
   74     kpanic(
"Unable to create task list");
 
   76   taskList->
id = nextID++;
 
   79   kprintf(
"sched0 - Address: [0x%X]\n", taskList);
 
   97   for (; tmpTask != 0x0; tmpTask = tmpTask->
next) {
 
  108       if (delTask->
parent != 0x0) {
 
  114       tmpTask = tmpTask->
next;
 
  122   if (0x0 == tmpTask) {
 
  131       kprintf(
"IRQD(%i): 0x%X*0x%X:0x%X@, esp: 0x%X:0x%X, ebp: 0x%X:0x%X ds: 0x%X", 
_current->
id, 
_current->
tss.
eflags, 
_current->
tss.
cs, 
_current->
tss.
eip, 
_current->
tss.
ss, 
_current->
tss.
esp, 
_current->
tss.
ss, 
_current->
tss.
ebp,
_current->
tss.
ds);
 
  148     asm(
"ljmp $0x20,$0");
 
  162   struct file *fp = 0x0;
 
  165     kpanic(
"Error: schedNewTask() - kmalloc failed trying to initialize a new task struct\n");
 
  176   for (i = 0; i < 3; i++) {
 
  184   tmpTask->
id = nextID++;
 
  185   tmpTask->
next = taskList;
 
  187   taskList->
prev = tmpTask;
 
  199   for (tmpTask = taskList; tmpTask != 0x0; tmpTask = tmpTask->
next) {
 
  200     if (tmpTask->
id == 
id) {
 
  201       if (tmpTask->
prev != 0x0)
 
  203       if (tmpTask->
next != 0x0)
 
  205       if (taskList == tmpTask)
 
  206         taskList = tmpTask->
next;
 
  215   tmpTask->
next = delList;
 
  218     delList->
prev = tmpTask;
 
  230   delList = delList->
next;
 
  237   for (tmpTask = taskList; tmpTask; tmpTask = tmpTask->
next) {
 
  238     if (tmpTask->
id == 
id)
 
  325   if ((*p == wait) && ((*p = wait->
next) == wait)) {
 
  330     while (tmp->
next != wait) {
 
  343   if (!q || !(tmp = *q))
 
  354       kprintf(
"wait_queue is bad (eip = %08lx)\n", ((
unsigned long *) q)[-1]);
 
  368   if (!q || !(tmp = *q))
 
  379       kprintf(
"wait_queue is bad (eip = %08lx)\n", ((
unsigned long *) q)[-1]);
 
  
 
int sched_addDelTask(kTask_t *tmpTask)
struct gdtDescriptor descriptor
union descriptorTableUnion ubixGDT[11]
void schedEndTask(pidType pid)
void irqDisable(uInt16 irqNo)
void spinUnlock(spinLock_t *lock)
void remove_wait_queue(struct wait_queue **p, struct wait_queue *wait)
#define SPIN_LOCK_INITIALIZER
void add_wait_queue(struct wait_queue **p, struct wait_queue *wait)
void wake_up_interruptible(struct wait_queue **q)
void kpanic(const char *fmt,...)
print panic message and halt system
void * memcpy(const void *dst, const void *src, size_t length)
void spinLock(spinLock_t *lock)
kTask_t * schedFindTask(uInt32 id)
struct taskStruct * parent
void wake_up(struct wait_queue **q)
int sched_setStatus(pidType pid, tState state)
void * kmalloc(uInt32 len)
void * memset(void *dst, int c, size_t length)
int kprintf(const char *,...)
int sched_deleteTask(pidType id)
int spinTryLock(spinLock_t *lock)
kTask_t * sched_getDelTask()