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

名称

ng_ttyさらに、TTY フックである netgraph ノードタイプ

書式

#include < sys/types.h>
#include < sys/ttycom.h>
#include < netgraph/ng_tty.h>

解説

tty ノードタイプは、netgraph ノードタイプと TTY フックの両方です。

ノードは、 hook と呼ばれる単一のフックを持っています。 tty デバイスで受信された着信バイトは、このフック上で送信されます。また、 hook 上で受信されたフレームは、tty デバイス上で送信されます。データへの修正は、いずれの方向にしても実行されません。フックが tty にインストールされますが、通常の読み込みと書き込み操作は、利用不可能で、その場合 EIO を返します。

着信データは、バッファポインタと長さとしての tty 迂回フックを通して直接 ng_tty に配信されます、これは、mbuf に変換されて、ピア (相手側) に渡されます。

ノードは、オプションの“hot character (熱い文字)”をサポートします。ドライバが直接 tty 迂回フックにデータを配信することができないなら、各文字は、1 度に 1 つ、入力されます。 0 以外に設定され、迂回モードが利用可能でないなら、 tty デバイスからの着信データは、この文字が見られるまでキューに入れられます。これは、多くの mbufs に少数のバイトを含ませていることを回避しますが、潜在的に無限の待ち時間を持ち込みます。デフォルトの hot character (熱い文字) は、0x7eです。それは、 ng_async(4) タイプノードに接続されている hook (フック) と一致しています。 hot character (熱い文字) は、データの送信に影響はありません。

フック

このノードタイプは、次のフックをサポートします:
hook
任意の相互フレーム境界で mbuf 構造体に含まれていた tty(4) シリアルデータです。

コントロールメッセージ

このノードタイプは、次を加えて、一般的なコントロールメッセージをサポートします:
NGM_TTY_SET_HOTCHAR
このコマンドは、整数引数をとり、下位 8 ビットから hot character (熱い文字) を設定します。 0 の hot character (熱い文字) は、キューに入れることを無効にします。そのため、すべての受信データは、直ちに転送されます。
NGM_TTY_GET_HOTCHAR
下位 8 ビットに現在の hot character (熱い文字) を含んでいる整数を返します。
NGM_TTY_SET_TTY
このコマンドは、tty のオープンされたファイル記述子への整数ポインタを取り、 tty フックを登録します。

シャットダウン

対応するデバイスがクローズされるとき、このノードは、シャットダウンします。

歴史

ng_tty ノードタイプは、 FreeBSD 4.0 で実装されました。

作者

Archie Cobbs <archie@FreeBSD.org> Andrew Thompson <thompsa@FreeBSD.org>

バグ

シリアルドライバコードは、さらに“hot character” (熱い文字) についての概念を持っています。不幸にも、この値は、回線制御規則に関して静的に定義され変更することができません。したがって、0x7e (デフォルト) 以外の hot character (熱い文字) が ng_tty ノードに予定されている場合、ノードは、シリアルドライバにこの情報を伝える方法を持っていません。そして、性能が少し最適化されます。
December 25, 2008 FreeBSD