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

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


川辺と申します。

質問しておいて非常に申し訳ないのですが、これと言って目新しいカーネル
API があるわけでは無いのですね。

同一仮想空間(データアクセスもフェッチも可能な)でのものなら、対した手間
も無くどういうInterfaceでも作れてしまいますよね。(まぁ、並列処理の排他
などいくつか手間はありますが)

で、元々話題がドライバレベルとユーザ空間上で動作している状態のアプリケー
ションとのインターフェイスと言うことだったので、カーネルAPIとして、
Unix系には欠ているなんらかの新しいインターフェイスがあるのかと思いまし
た。

>>>>> "Naoto" == Naoto Shimazaki <igy@xxxxxxxx> writes:

Naoto> Unix でも、kernel から userland への up call を用いて
Naoto> スレッドのプリエンプション等を実装している例はあります。
Naoto> もっとも up call を API として使用している例は知りません。

これは、signalのことですか?

# あれは、実装上、up call とは掛け離れてますね。

どうせなら、具体的なものが知りたかったですね。

Linuxのドライバでも、Sound系(OSSもALSAも)やV4L、IEEE1394(rawやDVとか)、
SCSI Generic などのドライバは、mmapベースのインターフェイスを使ってデー
タのやり取りは特別な転送(copy_to_userとか)を使わ無く出来ます。で、イベ
ントの発生をSIGIOにすると、雰囲気だけはおっしゃられている様な感じに見
えるインターフェイスになります。が、普通は、mmapを使ってもイベントは、
poll/select もしくは、待つための ioctl を使うと思いますが。
sgドライバなんか結構面白いと思います。
--------
  Kawabe,Yoshihiro <ripula@xxxxxxxxxxxxxxx>
  Who is calling me from where?
  Knock on my shell and my mind? from Pearl song.

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

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