.\" .\" %Id: cx.4,v 1.4 1997/06/23 04:02:37 steve Exp % .\" $FreeBSD$ .\" .Dd December 12, 1994 .Dt CX 4 i386 .Os FreeBSD .Sh 名称 .Nm cx , .Nm if_cx .Nd 同期/非同期 Cronyx-Sigma アダプタドライバ .Sh 設定 .Cd "device cx0 at isa? port 0x240 irq 15 drq 7" .Cd "device cx1 at isa? port 0x260 irq 12 drq 6" .Cd pseudo-device sppp .Pp i/o ベースアドレスは、ボード上のジャンパで設定されます。 DMA チャネルと割り込みリクエスト番号は、 アダプタ初期化時にソフトウェアで設定されます。 通常の値は以下の通りです。 .Pp .Bl -tag -compact -width Port .It Port 0x240, 0x260, 0x280, 0x300, 0x320, 0x380 .It IRQ 3, 5, 7, 10, 11, 12, 15 .It DMA 5, 6, 7 .Sh 解説 Cronyx-Sigma ドライバはモデル 100, 400, 500, 401, 404, 410, 440, 703, 801, 810, 840 をサポートします。 モデルが異なると、チャネルのセットが異なります。 .Pp .Bl -tag -compact -width Cronyx-Sigma-999 .It モデル チャネル .It Cronyx-Sigma-100 0 .It Cronyx-Sigma-400 4, 5, 6, 7 .It Cronyx-Sigma-500 0, 4, 5, 6, 7 .It Cronyx-Sigma-401 0, 1, 2, 3 .It Cronyx-Sigma-404 0, 1, 2, 3 .It Cronyx-Sigma-410 0, 1, 2, 3 .It Cronyx-Sigma-440 0, 1, 2, 3 .It Cronyx-Sigma-703 0, 1, 2, 4, 5, 6, 7 .It Cronyx-Sigma-801 0, 1, 2, 3, 4, 5, 6, 7 .It Cronyx-Sigma-810 0, 1, 2, 3, 4, 5, 6, 7 .It Cronyx-Sigma-840 0, 1, 2, 3, 4, 5, 6, 7 .El .Pp ふたつのアダプタは、ボード間接続用の短い専用ケーブルで接続することができます。 ふたつの接続されたアダプタは、同じ IRQ と DMA チャネルを使用し、 ドライバから見ればひとつの 16 チャネルマルチプレクサとして動作します。 接続されたボードの片方が ``マスタ'' に、もう一方が ``スレーブ'' になります。 .Pp スレーブになったボードのチャネルは、 ドライバによって 8 から始まる番号が割り当てられます。 たとえばモデル 100 と モデル 500 を接続すると、 0, 8, 12, 13, 14, 15 番のチャネル番号が割り当てられます。 .Pp RS-232C インタフェースをもつチャネルは、 同期モードと非同期モードのどちらでも動作することが可能 (cxconfig ユーティリティによってソフトウェア的に選択します) であり、 そのため ``ユニバーサルチャネル'' と呼ばれます。 .Pp Cronyx-Sigma アダプタ用のデバイス型特殊ファイル .Pa /dev/* は、 .Xr MAKEDEV 8 によっ作られます。 たとえば、以下のように作ります: .Bd -literal cd /dev sh MAKEDEV cronyx ttyx0 ttyx1 ttyy0 .El .Sh 非同期ドライバ .Pp 非同期チャネルのデバイスファイルには次のような名前が付けられます: .Pa /dev/ttyx# - はアダプタ cx0 に、 .Pa /dev/ttyy# - はアダプタ cx1 に、 .Pa /dev/ttyz# - はアダプタ cx2 に付けられます。 ここで # は 0-9-a-f の、16 進数でのチャネル番号です。 .Pp ドライバは以下の標準 ioctl を受け付けます ( .Xr ioctl を参照): .Pp .Bl -tag -width TIOCXXXXX -compact .It Dv TIOCSBRK BREAK を送信開始します。 .It Dv TIOCCBRK BREAK の送信を停止します。 .It Dv TIOCSDTR DTR 信号をセットします (DTR := 1)。 DTR 信号は最初の open(2) で必ずセットされ、 .Dv TIOCCDTR , .Dv TIOCSDTR , .Dv TIOCMSET , .Dv TIOCMBIS , .Dv TIOCMBIC の ioctl により変更可能です。 .It TIOCCDTR DTR 信号をクリアします (DTR := 0)。 .It TIOCMSET DTR 信号と RTS 信号に、指定した値をセットします ( := data)。 DTR 信号と RTS 信号は、 ioctl システムコールの引数中の .Dv TIOCM_DTR と .Dv TIOCM_RTS のビットにより制御可能です。 .It TIOCMBIS DTR 信号と RTS 信号をセットします ( |= data)。 DTR 信号と RTS 信号は、 ioctl システムコールの引数中の .Dv TIOCM_DTR と .Dv TIOCM_RTS のビットにより制御可能です。 .It TIOCMBIC DTR 信号と RTS 信号をクリアします ( &= ~data)。 DTR 信号と RTS 信号は、 ioctl システムコールの引数中の .Dv TIOCM_DTR と .Dv TIOCM_RTS のビットにより制御可能です。 .It TIOCMGET ライン上のモデム信号の状態を判定します。 呼び出しのあと、引数のデータは下記のビットを保持しています: .Pp .Bl -tag -width TIOCM_XXX -compact .It TIOCM_LE 常にセット (ラインイネーブル状態) .It TIOCM_DSR データセットレディ信号 (DSR) 受信済 .It TIOCM_CTS 送信可能信号 (CTS) 受信済 .It TIOCM_CD データキャリア検出信号 (CD) 受信済 .It TIOCM_DTR データ端末レディ (DTR) 信号送信済 .It TIOCM_RTS 送信要求 (RTS) 送信済 .El .El .Sh 同期ドライバ .Pp 同期チャネルとユニバーサルチャネルは、 .Xr cxconfig 8 ユーティリティによって同期モードに設定すると、 ネットワークインタフェース ``cx#'' (# は 0 から 47 までのチャネル番号) としてアクセス可能です。 すべての標準的なネットワークインタフェースパラメータは、 .Xr ifconfig 8 によって設定可能です。 また .Xr cxconfig 8 コマンドは、拡張されたチャネルオプションの変更や、 上位レベルのソフトウェアプロトコル (PpP や Cisco HDLC など) の設定に使用されます。 .Pp ユニバーサルチャネルは同期モードでも非同期モードでも使用することができます。 デフォルトでは非同期モードに設定されており、モードは .Xr cxconfig 8 ユーティリティによって変更可能です。 チャネルがビジー状態 (非同期チャネルがオープン状態の場合や、 ネットワークインタフェースが動作中 (up) の場合) の間、モードはブロックされます。 .Sh 同期ポイントツーポイントプロトコル .Pp Cronyx-Sigma ドライバは、組み込みの同期ポイントツーポイントプロトコル (sppp) を使用します。 本プロトコルには、PpP/HDLC や Cisco/HDLC、keepalive パケットによる 自動的なコネクションロス検出もサポートしています。 sppp プロトコルセットは独立したモジュールとして実装され、 他の同期シリアルチャネルのドライバによって使用することも可能です。 BSD/386 (BSDI) 用の ドライバでは、OS 側で実装されている一般的な同期プロトコルのセットも使用 可能です。外部プロトコルセットは、``cxconfig ext'' コマンド ( .Xr cxconfig 8 を参照) によって選択可能です。 .Sh チャネルオプションの管理 .Pp .Xr cxconfig 8 ユーティリティは、チャネルオプションを設定するのに使用されます。 チャネルオプションは、通常、オペレーティングシステムが起動する際に (たとえば .Pa /etc/rc ファイルなどで) 設定されます。 すべての場合において、 すべてのオプションが意味を持つとは限らないことに注意してください。 また、 オプションの設定によっては、 チャネルもしくはアダプタ全体のハングアップの原因になります。 .Pp 実際のチャネルオプションの制御機能は、 デバイス型特殊ファイル /dev/cronyx に対する いくつかの ioctl を経由する形で実装されており、以下の ioctl が使用できます。 .Pp .Bl -tag -width CXIOCXXXXXXX -compact .It CXIOCGETMODE チャネルオプションの値を取得します。 .It CXIOCSETMODE チャネルオプションの値を設定します。 .El .Pp ioctl コールのデータ引数は以下のオプション構造体のアドレスを持ちます: .Bd -literal typedef struct { unsigned char board; /* アダプタ番号であり、0..2 */ unsigned char channel; /* チャネル番号であり、0..15 */ unsigned char type; /* チャネルタイプ (読み込み専用) */ unsigned char iftype; /* chan0 インタフェース */ unsigned long rxbaud; /* 受信速度 */ unsigned long txbaud; /* 転送速度 */ cx_chan_mode_t mode; /* チャネルモード */ cx_chan_opt_t opt; /* 共通のチャネルオプション */ cx_opt_async_t aopt; /* 非同期モードオプション */ cx_opt_hdlc_t hopt; /* hdlc モードオプション */ cx_opt_bisync_t bopt; /* bisync モードオプション */ cx_opt_x21_t xopt; /* x.21 モードオプション */ cx_soft_opt_t sopt; /* ソフトウェアオプションと状態フラグ */ } cx_options_t; /* ユーザが設定可能なオプション */ .Ed .Pp .Bl -tag -width rxbaudxxx .It Fa board 0..2 の、アダプタ番号 .It Fa channel 0..15 の、チャネル番号 .It Fa type チャネルのタイプ (読み取り専用の引数) .It Fa iftype 0 番 (と 8 番) チャネルのインタフェースタイプ。 0 - RS-232, 1 - RS-449/V.35。 .It Fa rxbaud 受信ボーレート .It Fa txbaud 送信ボーレート .It Fa mode チャネルモード: 非同期/HDLC/Bisync/X.21 .It Fa opt 共通のチャネルオプション .It Fa aopt 非同期モードオプション .It Fa hopt HDLC モードオプション .It Fa bopt Bisync モードオプション .It Fa xopt X.21 モードオプション .It Fa sopt ソフトウェアプロトコルオプション .El .Sh 関連ファイル .Bl -tag -width /dev/cxXXXX -compact .It Pa /dev/cx?? 非同期チャネル .It Pa /dev/cronyx チャネルオプション管理用のデバイス型特殊ファイル .El .Pp ドライバを含んでいるソースファイルは以下の通りです: .Pp .Bl -tag -width /dev/cxXXXX -compact .It Pa /sys/i386/isa/cronyx.c .It Pa /sys/i386/isa/cx.c .It Pa /sys/i386/isa/if_cx.c .It Pa /sys/i386/isa/cronyx.h .It Pa /sys/i386/isa/cxreg.h .It Pa /sys/net/if_spppsubr.c .It Pa /sys/net/if_sppp.h .El .Sh 関連項目 .Xr cxconfig 8 , .Xr ifconfig 8