(toppers-users 285) Re: i_lock_cpu() について教えてください

Horie, Seiichi tigersharkdsp @ geocities.co.jp
2001年 10月 4日 (木) 23:51:44 JST


若林さん、説明ありがとうございます。

> また,disint()する直前でint_intmaskが書き換えられているということは,
>   ・今実行している割り込みよりも優先度の高い割り込みがかかって飛んでいった
>   ・その優先度の高い割込みハンドラ内でi_lock_cpuをかけた
> ということが言えます.
> そうなると,当然このハンドラに戻ってきたということは,優先度の高い割込みの
> 処理は終わっているはずなので,int_intmaskはすでに使用されていないはずで
す.

なるほど、よくわかりました。生真面目に処理をしなくてもうまくすれば
再帰的なロックを行えるとはおもしろいです。

ところで、もう一つ質問させていただきたいことがあります。この仕組みは
chg_ipmで割り込み許可レベルを変化させるから必要なのであって、chg_ipm
を実装しないならば lok_cpu()、i_loc_cpu()とも単純なdisint() でかまわないと
思います。これは正しいでしょうか。

---
酔漢