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
Follow-Ups:
- [linux-users:102077] Re: 組込Linuxドライバの作成方法Yoshihiro Kawabe
- [linux-users:102082] Re: 組込Linuxドライバの作成方法Dr.Sc.KAWAMOTO,Takuji (Ext)
- [linux-users:102054] 組込Linuxドライバの作成方法Yuichi Enokida
- Prev by Subject: [linux-users:102073] Mandrake9.0を使ってます
- Next by Subject: [linux-users:102075] Re: 組込Linuxドライバの作成方法
- Previous by thread: [linux-users:102075] Re: 組込Linuxドライバの作成方法
- Next by thread: [linux-users:102077] Re: 組込Linuxドライバの作成方法
- Indexes:[Main][Thread]