Mercurial > hg > Members > kono > Cerium
diff TaskManager/kernel/schedule/Scheduler.cc @ 872:e49c1b29c43d
add overlay segment
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 04 Jul 2010 17:59:53 +0900 |
parents | ab3cd3aeacff |
children | 3b9536925fb8 |
line wrap: on
line diff
--- a/TaskManager/kernel/schedule/Scheduler.cc Sun Jul 04 16:56:04 2010 +0900 +++ b/TaskManager/kernel/schedule/Scheduler.cc Sun Jul 04 17:59:53 2010 +0900 @@ -200,10 +200,18 @@ * Task load API */ void -Scheduler::allocate_code_segment(int size, int count) +Scheduler::allocate_code_segment(int size, int count, struct tbl *table) { // 既に overlay 領域があるので、それを追加する必要がある... code_segment_pool = createMemList(size, count); + if (table) { + MemorySegment* here = (MemorySegment*)( + manager->allocate(sizeof(MemorySegment))); + here->data = (void*)(table->vma); + here->size = size; + here->address = (memaddr)here; + code_segment_pool->addLast(here); + } } static void @@ -220,7 +228,7 @@ (char*)task_list[task_id].segment->data + task_list[task_id].entry_offset); task_list[task_id].run = run; -#if 0 +#if 1 m->printf("loadng task id %d at 0x%x entry 0x%x\n",task_id, (unsigned int)(task_list[task_id].segment->data ), (unsigned int)(