109
|
1 #include <stdio.h>
|
|
2 #include <stdlib.h>
|
|
3 #include "CellHTaskInfo.h"
|
|
4
|
|
5 int
|
|
6 CellHTaskInfo::extend_pool(int num)
|
|
7 {
|
|
8 HTaskPtr q = NULL;
|
|
9
|
|
10 q = (HTaskPtr)malloc(sizeof(HTask)*(num+1));
|
|
11
|
|
12 if (q == NULL) {
|
|
13 return -1;
|
|
14 }
|
|
15 q->next = htaskPool;
|
|
16 htaskPool = q;
|
|
17
|
|
18 /* Connect all free queue in the pool */
|
|
19 for (q = htaskPool + 1; --num > 0; q++) {
|
|
20 q->next = q + 1;
|
|
21 posix_memalign((void**)&q->inData, DEFAULT_ALIGNMENT, sizeof(ListData));
|
|
22 posix_memalign((void**)&q->outData, DEFAULT_ALIGNMENT, sizeof(ListData));
|
|
23 }
|
|
24 q->next = freeHTask;
|
|
25 posix_memalign((void**)&q->inData, DEFAULT_ALIGNMENT, sizeof(ListData));
|
|
26 posix_memalign((void**)&q->outData, DEFAULT_ALIGNMENT, sizeof(ListData));
|
|
27
|
|
28 freeHTask = htaskPool + 1;
|
|
29
|
|
30 return 0;
|
|
31 }
|