Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
ブロックデバイスのドライバの登録は、register_blkdev関数を用いて、ブロックデバイスドライバの登録テーブルblkdev[]に、デバイス名とデバイス操作関数テーブルの登録を行う。unregister_blkdev関数はその逆に登録を抹消する。
キャラクタデバイスの場合は、register_chrdev関数、unregister_chrdev巻数をを用いる。
register_blkdev(デバイスメジャー番号, デバイス名, デバイス操作関数テーブル) { if (デバイスメジャー番号 の指定が無いなら) { ブロックデバイス登録テーブルblkdev[]の空きスロットを探し、 デバイス名とデバイス操作関数テーブルを登録する。 } else { ブロックデバイス登録テーブルblkdev[デバイスメジャー番号]に、 デバイス名とデバイス操作関数テーブルを登録する。 } }
ブロック型デバイスの場合は、これ以外にもデバイスの初期化時に以下のテーブルにデバイス情報を設定しておかねばならない。また割り込みを利用するデバイスでは、request_irq関数を用いて割り込みハンドラを登録して置かねばならない。
(NIS)HirokazuTakahashi
2000年06月11日 (日) 22時29分57秒 JST1
[PageInfo]
LastUpdate: 2008-08-27 14:45:22, ModifiedBy: hiromichi-m
[Permissions]
view:all, edit:login users, delete/config:members