Mercurial > hg > Members > kono > Cerium
comparison TaskManager/kernel/schedule/Scheduler.cc @ 464:01b321c86747
task run is mere C function now.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 30 Sep 2009 10:12:26 +0900 |
parents | 942f451341a4 |
children | bd5b93d39597 |
comparison
equal
deleted
inserted
replaced
463:bc5b3d327083 | 464:01b321c86747 |
---|---|
365 else | 365 else |
366 fprintf(stderr,"wait load task id %d 000000\n",task_id); | 366 fprintf(stderr,"wait load task id %d 000000\n",task_id); |
367 // wait for code segment load | 367 // wait for code segment load |
368 m->wait_segment(task_list[task_id].segment); | 368 m->wait_segment(task_list[task_id].segment); |
369 // calcurate call address | 369 // calcurate call address |
370 TaskObjectCreator creator = | 370 TaskObjectRun run = |
371 (TaskObjectCreator)( | 371 (TaskObjectRun)( |
372 (char*)task_list[task_id].segment->data + | 372 (char*)task_list[task_id].segment->data + |
373 task_list[task_id].entry_offset); | 373 task_list[task_id].entry_offset); |
374 task_list[task_id].creator = creator; | 374 task_list[task_id].run = run; |
375 fprintf(stderr,"wait load task id %d done. creator = 0x%x entry_offset = 0x%x\n",task_id, | 375 fprintf(stderr,"wait load task id %d done. creator = 0x%x entry_offset = 0x%x\n",task_id, |
376 (unsigned int)creator, | 376 (unsigned int)run, |
377 task_list[task_id].entry_offset); | 377 task_list[task_id].entry_offset); |
378 } | 378 } |
379 | 379 |
380 static void | 380 static void |
381 null_waiter(Scheduler *m, int task_id) | 381 null_waiter(Scheduler *m, int task_id) |
382 { | 382 { |
383 } | 383 } |
384 | 384 |
385 extern void | 385 extern void |
386 register_task(int cmd, TaskObjectCreator creator) | 386 register_task(int cmd, TaskObjectRun run) |
387 { | 387 { |
388 task_list[cmd].creator = creator; | 388 task_list[cmd].run = run; |
389 task_list[cmd].load = null_loader; | 389 task_list[cmd].load = null_loader; |
390 task_list[cmd].wait = null_waiter; | 390 task_list[cmd].wait = null_waiter; |
391 } | 391 } |
392 | 392 |
393 extern void | 393 extern void |
394 register_dynamic_task(int cmd, | 394 register_dynamic_task(int cmd, |
395 memaddr start, int size, | 395 memaddr start, int size, |
396 TaskObjectCreator creator, int entry_offset) | 396 TaskObjectRun run, int entry_offset) |
397 { | 397 { |
398 task_list[cmd].creator = creator; | 398 task_list[cmd].run = run; |
399 task_list[cmd].location = start; | 399 task_list[cmd].location = start; |
400 size &= 0xfffffffe; | 400 size &= 0xfffffffe; |
401 task_list[cmd].end = start+size; | 401 task_list[cmd].end = start+size; |
402 task_list[cmd].entry_offset = entry_offset; | 402 task_list[cmd].entry_offset = entry_offset; |
403 task_list[cmd].load = load_task; | 403 task_list[cmd].load = load_task; |