カーネル空間にドライバが格納されたので、次にユーザ空間側からシステムコー ルを利用して、このデバイスドライバを呼び出すことにする。
作成したdio_ioctlメソッドを呼び出すioctlシステムコールの具
体的な書式は、次のようになる
ioctl(fd, cmd, *argp);
|
fdは、今までと同じようにopenシステムコールで生成されるファイ
ルデスクリプタである。
cmdは、今回作成したヘッダファイルのdio_ioctl.hで定義した
IOCTL_DIO_RESETやIOCTL_DIO_INPUTやIOCTL_DIO_OUTPUTなどのコマン
ド番号である。
*argpは、今回作成したヘッダファイルのdio_ioctl.hで定義した
DIO_POINT構造体型の変数のアドレスである。
戻り値(返り値)は、正常終了したばあいは、読み込んだバイト数を返す。
エラーのばあいは-1が返され、errnoに指定の値が格納される。