4

私は新しいカーネル モジュールを作成しており、新しい IOCTL の実装を追加しています。
IOCTL の番号付けで従うべきルールはありますか?
たぶん、いくつかの「ユーザー範囲」がありますか?

組み込みプラットフォームでカーネル 2.6.21 を使用しています。

4

1 に答える 1

4

IOCTLは、デバイスに依存するように定義されています。実装する「標準」ioctlがある場合、これらはとのようなシステムコールにreadなりwriteます。

ioctl番号にはいくつかの規則があります。

  • パラメーターの方向(in、out、both)は、2ビットのioctl番号にエンコードされます。推奨される一般的なユーザーからのコピー/ユーザーへのコピーのコードを使用しない限り、これは必須ではありません。
  • 競合を避けるためのマジックナンバーがあります。2つのデバイスが同じioctlを定義していても実際に害はありませんが、異なる番号を使用すると、エラーをキャッチする追加の機会が得られます。
于 2012-01-19T07:11:31.913 に答える