Mercurial > hg > Members > kono > Cerium
diff TaskManager/kernel/schedule/Scheduler.cc @ 871:ab3cd3aeacff
fix get segment dma tag zero problem
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 04 Jul 2010 16:56:04 +0900 |
parents | daab9cd6f91f |
children | e49c1b29c43d |
line wrap: on
line diff
--- a/TaskManager/kernel/schedule/Scheduler.cc Tue Jun 29 04:23:52 2010 +0900 +++ b/TaskManager/kernel/schedule/Scheduler.cc Sun Jul 04 16:56:04 2010 +0900 @@ -109,7 +109,6 @@ return buff_taskList[buffFlag_taskList]; } - void Scheduler::dma_load(void *buf, memaddr addr, uint32 size, uint32 mask) { @@ -154,6 +153,7 @@ } + /* ここから下は、memory 以下にあるべき */ @@ -214,6 +214,12 @@ m->code_segment_pool, task_list[task_id].end-task_list[task_id].location); task_list[task_id].segment = s; + // calcurate call address + TaskObjectRun run = + (TaskObjectRun)( + (char*)task_list[task_id].segment->data + + task_list[task_id].entry_offset); + task_list[task_id].run = run; #if 0 m->printf("loadng task id %d at 0x%x entry 0x%x\n",task_id, (unsigned int)(task_list[task_id].segment->data ), @@ -240,15 +246,9 @@ #endif // wait for code segment load m->wait_segment(task_list[task_id].segment); - // calcurate call address - TaskObjectRun run = - (TaskObjectRun)( - (char*)task_list[task_id].segment->data + - task_list[task_id].entry_offset); - task_list[task_id].run = run; #if 0 m->printf("wait load task id %d done. creator = 0x%x entry_offset = 0x%x\n",task_id, - (unsigned int)run, + (unsigned int)(task_list[task_id].run), task_list[task_id].entry_offset); #endif }