EN JA
UHID(4)
UHID(4) FreeBSD Kernel Interfaces Manual UHID(4)

名称

uhidUSB 一般的な HID サポート

書式

このドライバをカーネルにコンパイルするためには、次の行を利用者のカーネル設定ファイルに置きます:

device uhid

もう一つの方法として、ブート時にモジュールとしてドライバをロードするためには、次の行を loader.conf(5) に置きます:

uhid_load="YES"

解説

uhid ドライバは特別のドライバを持っていない USB デバイスのすべての HID (Human Interface Device) インタフェースのサポートを行ないます。

デバイスは次の ioctl(2) 呼び出しを操作します。

USB_GET_REPORT_ID ( int)
この HID レポートで使用されるレポート識別子を取得します。
USB_GET_REPORT_DESC ( struct usb_ctl_report_desc)
HID レポート記述子を取得します。この記述子を使用して、デバイスからのデータ/デバイスへのデータの正確なレイアウトと意味を見つけることができます。なんの処理もなしでレポート記述子は配信されます。

struct usb_ctl_report_desc { 
    int     ucrd_size; 
    u_char  ucrd_data[1024]; /* 詰められたデータのサイズは 
           異なる */ 
};
USB_SET_IMMED ( int)
read(2) が入力レポートの現在の値を返すモードにデバイスを設定します。通常、 read(2) はデバイスが割り込みパイプについてレポートするデータだけを返します。デバイスがこの機能をサポートしないなら、この呼び出しは失敗します。
USB_GET_REPORT ( struct usb_ctl_report)
割り込みパイプに関するデータを待たないで、デバイスからレポートを取得します。 report フィールドは、どのレポートが要求されるかを示します。それは、 UHID_INPUT_REPORT, UHID_OUTPUT_REPORT, UHID_FEATURE_REPORT であるべきです。デバイスがこの機能をサポートしないなら、この呼び出しは失敗します。

struct usb_ctl_report { 
 int ucr_report; 
 u_char ucr_data[1024]; /* 使用されたデータサイズは 
       異なる */ 
};
USB_SET_REPORT ( struct usb_ctl_report)
デバイスにレポートを設定します。 report フィールドは、どのレポートが設定されるかを示します。それは、 UHID_INPUT_REPORT, UHID_OUTPUT_REPORT, UHID_FEATURE_REPORT であるべきです。デバイスがこの機能をサポートしないなら、この呼び出しは失敗します。

デバイスからデータを取得するために、 read(2) を使用します。データはレポート記述子によって定められたサイズのかたまりで読み込まれているべきです。

データをデバイスに送るために write(2) を使用します。データはレポート記述子によって定められたサイズのかたまりで書き込まれているべきです。

関連ファイル

/dev/uhid?

関連項目

usbhidctl(1), usb(4)

歴史

uhid ドライバは、 NetBSD 1.4 で登場しました。このマニュアルページは、2002 年 4 月に Tom Rhodes <trhodes@FreeBSD.org>によって NetBSD から導入されました。
November 22, 2006 FreeBSD