カーネル空間にドライバが格納されたので、次にユーザ空間側からシステムコー ルを利用して、このデバイスドライバを呼び出すことにする。
作成した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
に指定の値が格納される。