Mercurial > hg > Members > kono > Cerium
view TaskManager/Cell/CellTaskListInfo.cc @ 60:f50c74835a9b
*** empty log message ***
author | gongo |
---|---|
date | Sat, 16 Feb 2008 20:05:35 +0900 |
parents | 1f8a23cdeec3 |
children | 5c194c71eca8 |
line wrap: on
line source
#include <stdio.h> #include <stdlib.h> #include "CellTaskListInfo.h" #define NEXT_ADDR(addr, size) \ (TaskListPtr)((int)(addr) + (size)) int CellTaskListInfo::extend_pool(int num) { TaskListPtr q = NULL; int unit_size; unit_size = (ROUND_UP_ALIGN(sizeof(TaskList), 16)); posix_memalign((void**)&q, 16, unit_size*(num+1)); if (q == NULL) { return -1; } q->next = taskListPool; taskListPool = q; /* Connect all free pack_list in the pool */ q = NEXT_ADDR(taskListPool, unit_size); // q = taskListPool + 1; for (; --num > 0; q = NEXT_ADDR(q, unit_size)) { q->next = NEXT_ADDR(q, unit_size); // q->next = q + 1; } q->next = freeTaskList; freeTaskList = NEXT_ADDR(taskListPool, unit_size); return 0; }