[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:102074] Re: 組込Linuxドライバの作成方法


At Wed, 3 Mar 2004 14:20:56 +0900,
Yuichi Enokida wrote:
> o 質問事項
>   - 本来、デバイスからの割込を参照し、その状態変化を上位
>     に知らせるためにはどのようなソフト構造にすべきなの
>     でしょうか。

Unix の API って、kernel から userland にイベントが
飛ぶような構造になっていないんです。

ではどうするのかというと、システムコールの中でプロセスを
ブロックして待たせて置いて、なにかイベントがあるとブロックしていた
システムコールから復帰するのです。

で、read(2) でブロックすると、read(2) の先にあるデバイスからの
イベントしか待てませんから、これだけでは使いものになりません。
それで、複数の事象を同時に待てる select(2) というのが用意されてます。

デバドラは、割り込みなりでデバイスからのイベントをもらったら、
read(2) や select(2) の中で寝ているプロセスを起こして、
user level へ復帰することで結果的にイベントがあったことを
プロセスに知らせるというわけです。

--
Naoto Shimazaki

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: References: