Mercurial > hg > Members > kono > Cerium
view TaskManager/kernel/schedule/SchedTaskBase.h @ 797:45c141669de7
SchedTask instance variable clean up
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 18 May 2010 17:57:19 +0900 |
parents | 5088d70e66c5 |
children | 30f84915713b |
line wrap: on
line source
#ifndef INCLUDED_SCHED_TASK_BASE #define INCLUDED_SCHED_TASK_BASE #include "base.h" #include "Scheduler.h" #include <stdio.h> #include <stdlib.h> class Scheduler; class SchedTaskBase { public: /* constructor */ // void *called ; // for debug SchedTaskBase() { // called = __builtin_return_address(1); } virtual ~SchedTaskBase() {} BASE_NEW_DELETE(SchedTaskBase); // noaction in default virtual void load() {} virtual void read() {} virtual void exec() {} virtual void write() {} /* functions */ virtual SchedTaskBase* next(Scheduler *, SchedTaskBase*) {return 0;} /* variables */ // SchedTask は、すべて同じ大きさであるべきなので、継承するクラスには、 // 変数を置かない。ここに、すべて置く。 // Task を実行するスケジューラ自身 Scheduler *scheduler; SimpleTaskPtr task; TaskPtr atask; SchedTaskBase *savedTask; // 現在スケジューラが実行している TaskList と、このタスクに対応する Task TaskListPtr list; // Task の、Tasklist での位置。(task = &list[cur_index-1]) int cur_index; memaddr params_addr; /** * read データ、write 用のバッファ * readbuf には タスク登録時に設定した入力データが入っている。 * writebuf にデータを描き込んでおくと、 * タスク登録時に設定した出力先に書き込む */ void *readbuf; void *writebuf; /* system call */ FILE *stdout_; FILE *stderr_; FILE *stdin_; // Task Array しか使わないが、たいした大きさではないのでいいか... ListData inListData; ListData outListData; }; #endif