[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CASSIOPEIA report



鈴木(康)です。
<200005160650.PAA26402@shin1.sm.sony.co.jp>の記事において
takemura@netbsd.orgさんは書きました。

  |  > ちょっと考えてみたんですが、やっぱり サスペンド/リジュームを
  |  > おこなうレベルは、ドライバの probe などを行うのと同じレベルでないと
  |  > いけなさそうです。(= sleep ができるレベル)
  | 
  | カーネルスレッドを作らないと駄目みたいですね。
  | そのへん(Power Management)の実装については私が検討しております。
  | 全部ちゃんと考えるのはかなり時間がかかりそうですが、
  | そろそろコードも書くようにします。

とりあえず実験していこうと思っているだけなんで、
そんなに急かすつもりはないです。

# デザインとか難しい面も多々あると思いますし..

  | とりあえず実験は電源 sw の割り込みルーチンではなく、cpu_reset 
  | ルーチンを修正して、shutdown -h などとして user land からキックする
  | ようにしてはどうでしょうか。

うーん。
カシオペアで実験やりたいので、カーネル+ボタンだけでテストできるのが
嬉しいです。

というわけで、md な ソフトウェア割り込みを 1 つ増やして
そこから config_hook_call するような仕組みをいれるのが
一番楽そうなんですが...

#define SIR_NET         0x1

にたいして

#define SIR_CONFIG_HOOK 	0x2

とか作って

DO_SIR(SIR_CONFIG_HOOK, config_hook_intr());

ってすれば、いいんですよね。

config_hook_call では、イベントを登録するだけにして、
config_hook_intr で 実際の call 動作をさせる。

おおきなメリットがあるわけじゃないんですが...

config_hook の関数群が動作する割り込みレベルを一定にすることができる。

ので、なにかと便利だと思うんですが いかがでしょうか?

# ほんとは、MIPS_SOFT_INT_MASK_1 じゃなくて MIPS_SOFT_INT_MASK_0 で
# 動いた方がよいと思う。

--
					鈴木 康司 @NECソリューションズ
					suz@hpc.bs1.fc.nec.co.jp
					TEL 042-333-6465