最終更新:2013-07-17 (水) 05:47:52 (3934d)  

ioctl
Top / ioctl

アプリケーションがデバイスドライバを制御したり、デバイスドライバと通常のデータの読み書きの流れの外で通信するために用意されたシステムコール

open()されたスペシャルファイルを構成するデバイスの制御を行なう

http://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/ioctl.2.html

アプリケーション側

int ioctl(int fd, int cmd, ...);

パラメータ

  • fd - 有効なファイルディスクリプタ
  • cmd - ioctl リクエスト番号 - デバイスドライバに対する個々の操作に割り当てられた番号

オプション

  • リクエストの種類によっては、ioctlは上の2つに加えて次の引数のいずれかを受け取ることがある。

ドライバ側

int (*ioctl) (struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg);

ioctlコマンド番号

  • 間違ったデバイスに正しいコマンドを発行するというエラーを防ぐために、ioctlのコマンド番号については、システム全体で同じものが使われないように選ぶ
  • kernel.org/doc/Documentation/ioctl/ioctl-number.txt

引数の使い方

整数

  • そのまま使う

ポインタ

Linux

  • sys/ioctl.h?