(toppers-users 1002) ACTIVATED_STACK_SIZEについて質問

Seiichi Horie seiichi_horie @ yahoo.co.jp
2003年 7月 27日 (日) 20:29:27 JST


こんにちは。

swest5の徹夜部屋で伺った「移植の作業は実質一日」にショックを受けて再度勉
強中です(^^;

さて、表題のとおりACTIVATED_STACK_SIZEについてわからないことがありますの
で教えてください。

TOPPERS/JSP 1.3のconfig.txtには
>ACTIVATE_STACK_SIZE を,create_context と activate_context が書き換え
>るスタック領域のサイズ(厳密には,スタックの底から何バイトめまでを書き
>換えるか)にマクロ定義しておくと,ext_tsk 内でスタック上に定義したサイ
>ズのダミー領域を確保し,自分の使用しているスタック領域を破壊するのを防
>ぐ.
とあります。実際、m68kのコードを見るとtask_manager.cのext_task()の中で
条件ビルドによりACTVIATED_STACK_SIZE分の領域をスタック上に確保していま
す。

ここでわからないのは実際に領域を確保している部分との整合性です。
ext_tsk()から間接的に呼ばれるのはcreate_contextで、これはタスクを
休止状態におきます。ところがm68kの実装ではcreate_contextは何も
しません。

スタック上にデータを積んでいるのはactivate_contextです。ところが
これは最初にスタックポインタをスタック領域の最上位に設定しますので
ext_tskの処理には影響を受けないはずです。

ACTIVATED_STACK_SIZEがext_tsk()の中で実際に保護しているのは何なの
か、どなたか教えていただけますでしょうか。

よろしくお願いします。
堀江誠一

__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!
http://bb.yahoo.co.jp/