番号 |
エントリ名 |
内容 |
1 |
Init |
デバイスを初期化するために呼び出されます。デバイスドライバは必要に応じてハードウェアや、スタティックストレージの初期化を行います(デバイスが割り込みを使用する場合は、割り込みハンドラの登録も行います)。このエントリへのパラメタとしては、デバイスリストが必須だと思います。また、デバイスのパス名、アクセスモードがあると便利でしょう。 |
2 |
Read |
デバイスからデータを読み込むために呼び出されます。デバイスドライバは必要に応じてハードウェアからデータを読み出します(データ入力に割り込みを使用する場合は、入力キューからの読み出しになります)。このエントリへのパタメタとしては、パスディスクリプタ、入力バッファのアドレスが必須だと思います。また、RBFのようなデバイスでは論理セクタ番号などの位置情報も必要です。場合によっては入力バッファの大きさも必要になるでしょう。 |
3 |
Write |
デバイスへデータを書き込むために呼び出されます(データ出力に割り込みを使用する場合は、出力キューへの書き込みになります)。このエントリへのパラメタとしては、パスディスクリプタ、出力バッファのアドレスが必須だと思います。また、RBFのようなデバイスでは論理セクタ番号などの位置情報も必要です。場合によっては出力バッファの大きさも必要になるでしょう。 |
4 |
Getstat |
_os_getstat()を処理するために呼び出されます。このエントリへのパラメタとしては、パスディスクリプタとパラメタブロックが必須です。また、機能コードを個別のパラメタとして渡してやると便利でしょう。 |
5 |
Setstat |
_os_setstat()を処理するために呼び出されます。このエントリへのパラメタとしては、パスディスクリプタとパラメタブロックが必須です。また、機能コードを個別のパタメタとして渡してやると便利でしょう。 |
6 |
Terminate |
デバイスを後始末するために呼び出されます。デバイスドライバは必要に応じてハードウェアや、スタティックストレージの後始末を行います(デバイスが割り込みを使用する場合は、割り込みハンドラの登録解除も行います)。このエントリへのパラメタとしては、デバイスリストが必須となります。 |
error_code Init(dev_list *, u_char *, u_int16); |
error_code Read(path_desc *, u_char *, u_int32); |
error_code Write(path_desc *, u_char *, u_int32); |
error_code Getstat(path_desc *, u_int16, void *); |
error_code Setstat(path_desc *, u_int16, void *); |
error_code Terminate(dev_list *); |