Mercurial > hg > Members > kono > Cerium
view TaskManager/Fifo/FifoTaskInfo.cc @ 14:41ccd4b38184
*** empty log message ***
author | gongo |
---|---|
date | Fri, 08 Feb 2008 18:00:21 +0900 |
parents | 7aa4c006e4be |
children |
line wrap: on
line source
#include <stdio.h> #include <stdlib.h> #include "FifoTaskInfo.h" int FifoTaskInfo::extend_pool_taskList(int num) { TaskListPtr q = NULL; q = (TaskListPtr)malloc(sizeof(TaskList)*(num+1)); if (q == NULL) { return -1; } q->next = taskListPool; taskListPool = q; /* Connect all free pack_list in the pool */ for (q = taskListPool + 1; --num > 0; q++) { q->next = q + 1; } q->next = freeTaskList; freeTaskList = taskListPool + 1; return 0; } TaskListPtr FifoTaskInfo::get_available_taskList(void) { TaskListPtr list, q; list = machineTaskList[0]; while (list->next) list = list->next; if (list->length < TASK_MAX_SIZE) { return list; } else { q = get_free_taskList(); machineTaskList[0] = append_taskList(machineTaskList[0], q); return q; } } void FifoTaskInfo::clear_taskList(void) { TaskListPtr p, p1; machineTaskList[0]->length = 0; p = machineTaskList[0]->next; while (p) { p1 = p; p = p->next; free_taskList(p1); } }