Mercurial > hg > Game > Cerium
view TaskManager/kernel/ppe/BufferManager.cc @ 391:492e60453124 draft
fix...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 07 Aug 2009 02:24:06 +0900 |
parents | 028ffc9c0375 |
children |
line wrap: on
line source
#include <stdio.h> #include <stdlib.h> #include "BufferManager.h" BufferManager::BufferManager(int num) : machineNum(num) {} BufferManager::~BufferManager(void) { finish(); } void BufferManager::init(void) { taskListImpl = new TaskListInfo; taskQueueImpl = new TaskQueueInfo; htaskImpl = new HTaskInfo; taskListImpl->init(machineNum*2); taskQueueImpl->init(TASK_MAX_SIZE*4); htaskImpl->init(TASK_MAX_SIZE*2); } TaskListPtr BufferManager::create_taskList(void) { return taskListImpl->create(); } TaskQueuePtr BufferManager::create_taskQueue(HTaskPtr task) { return taskQueueImpl->create(task); } HTaskPtr BufferManager::create_task(int cmd) { return htaskImpl->create(cmd); } void BufferManager::free_taskList(TaskListPtr q) { taskListImpl->free(q); } void BufferManager::free_taskQueue(TaskQueuePtr q) { taskQueueImpl->free(q); } void BufferManager::free_task(HTaskPtr task) { htaskImpl->free(task); } void BufferManager::finish(void) { delete taskListImpl; delete taskQueueImpl; delete htaskImpl; } TaskListPtr BufferManager::clear_taskList(TaskListPtr list) { TaskListPtr p, p1; list->length = 0; p = list->next; while (p) { p1 = p; p = p->next; taskListImpl->free(p1); } list->next = NULL; return list; }