最終更新:2013-07-17 (水) 05:47:52 (4264d)
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 リクエスト番号 - デバイスドライバに対する個々の操作に割り当てられた番号
オプション
ドライバ側
int (*ioctl) (struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg);
ioctlコマンド番号
- 間違ったデバイスに正しいコマンドを発行するというエラーを防ぐために、ioctlのコマンド番号については、システム全体で同じものが使われないように選ぶ
- kernel.org/doc/Documentation/ioctl/ioctl-number.txt
引数の使い方
整数
- そのまま使う
ポインタ
- access_ok - アドレスを検証
- copy_from_user
- copy_to_user
- put_user?
- get_user
Linux
- sys/ioctl.h?