Mercurial > hg > Members > kono > Cerium
diff TaskManager/kernel/ppe/TaskManager.cc @ 368:126f90e8582c
change TaskManager
author | aaa |
---|---|
date | Mon, 27 Jul 2009 18:26:50 +0900 |
parents | 401b55a4a4dd |
children | 03ae2929c931 |
line wrap: on
line diff
--- a/TaskManager/kernel/ppe/TaskManager.cc Mon Jul 27 16:18:17 2009 +0900 +++ b/TaskManager/kernel/ppe/TaskManager.cc Mon Jul 27 18:26:50 2009 +0900 @@ -85,3 +85,28 @@ { return gen_random->getData(); } + +/*! + @param [size] リストの要素1つのサイズ + @param [count] 要素数 + @return allocate した領域のポインタ + + */ +MemList* +createMemList(uint32 size, uint32 count) +{ + uint32 head_size = + round_up16(sizeof(MemorySegment)); + uint32 seg_size = + round_up16(head_size+size); + void* mseg = m_impl->allocate(seg_size*count); + MemList* mlist = new MemList((MemorySegment*)mseg); + + for(int i = 1; i < count; i++) { + MemorySegment* next = (MemorySegment*)(mseg+seg_size*i); + mlist->addLast(next); + } + + return mlist; +} +