kbd スペシャル・ファイル
目的
ネイティブに接続されたキーボードへのアクセスを提供します。
説明
KBD スペシャル・ファイルは、ネイティブ・キーボードへのインターフェースです。 これは、アプリケーションがキーボードからオペレーター入力を受け取ったり、キーボード LED を制御したり、さまざまなキーボード・パラメーターを変更したりするために使用できるインターフェースを提供します。 スペシャル・ファイルを使用すると、アプリケーションはキーボード内にあるスピーカーを介してオペレーターに音声信号を送信することもできます。
構成
サウンド・ボリューム、クリック・ボリューム、タイプ・マティック・レート、およびタイプ・マティック遅延は、 Ioctl サブルーチンを介してアプリケーションによって構成可能です。 これらの変更は、 ODM データベースには反映されません。 ODM データベース内のこれらの属性を変更するには、 chhwkbd コマンドを使用します。
使用に関する考慮事項
開く
このサブルーチン呼び出しは、アプリケーションとネイティブに接続されたキーボードとの間のチャネルを作成します。 2 つのチャネルがサポートされます。 オープン・サブルーチン呼び出しは正常に処理されますが、 モード および オフラグ パラメーターは無視されます。 すべてのキーボード入力は、入力リングが確立されるまでフラッシュされます。 最新のオープンに関連した入力リングだけが入力報告書を受け取ります。
閉じる
KBD 装置が 2 回オープンされると、 閉じる サブルーチン呼び出しの後、最初の オープンの前に登録された入力リングを介して入力が報告されます。
読み取り/書き込み
キーボード・デバイス・ドライバーは、 読み取り および 書き込みを介してデータを戻したり、受け入れたりすることはありません。 これらの呼び出しは、 /dev/nullに対する呼び出しであるかのように動作します。 入力データは、入力リングを介して入力ドライバーから受信されます。
ioctl
キーボード・デバイス・ドライバーは、以下の ioctl コマンドをサポートします。
| 項目 | 説明 |
|---|---|
| IOCINFO | デバイス情報 構造体を戻します。 |
| KSALARM (K) | 音響アラーム。 |
| KSCFGクリック | キーボード・クリックを制御します。 |
| KSDIAGMODE (K) | 診断モードを有効/無効にします (ユーザー・モードのみ)。 |
| KSLED (サーバー) | キーボード LED を設定/リセットします。 |
| KSKAP (K) | キープアライブ・ポーリングを有効/無効にします (ユーザー・モードのみ)。 |
| KSKAPACK (K) | キープアライブ・ポーリングを確認します (ユーザー・モードのみ)。 |
| KSQUERYID (K) | キーボード装置 ID を照会します。 |
| スクエリソフ | キーボード・サービス・ベクトルを照会します (カーネル・モードのみ)。 |
| KSREGRING (再試行) | 入力リングを登録します。 |
| KSRFLUSH (R) | 入力リングをフラッシュします。 |
| KSTDELAY (K) | タイプミスの遅延を設定します。 |
| KSTRATE (K) | タイプミス率を設定します。 |
| ボリューム | アラーム・ボリュームの設定 |
エラー・コード
エラー・コードは、 /usr/include/sys/errno.h ファイルにあります。
| 項目 | 説明 |
|---|---|
| EFAULT | アドレスまたは無効なアドレスにアクセスするための権限が不十分であることを示します。 |
| EIO | 入出力エラーが発生したことを示します。 |
| ENOMEM | 必要なページング操作のためのメモリーが不足していたことを示します。 |
| ENOSPC | ファイル・システムまたはページング・スペースが不十分であったことを示します。 |
| EINVAL | 無効な引数が指定されたことを示します。 |
| EINTR | 要求がシグナルによって割り込まれたことを示します。 |
| EPERM | 永続エラーが発生したことを示します。 |
| EBUSY | 装置が使用中であることを示します。 |
| ENXIO | サポートされない装置番号が指定された。 |
| ENODEV | サポートされない装置または装置タイプの不一致を示します。 |
ファイル
| 項目 | 説明 |
|---|---|
| /usr/include/sys/inputdd.h | ioctl コマンドおよび入力リング・レポート・フォーマットの宣言が含まれています。 |