CX(4)

명칭
cx, if_cx - 동기/비동기 Cronyx-Sigma 어댑터 드라이버

설정
device cx0 at isa? port 0x240 irq 15 drq 7 device cx1 at isa? port 0x260 irq 12 drq 6 pseudo-device sppp

i/o 베이스 주소는, 보드상의 점퍼로 설정됩니다. DMA 채널과 끼어들어 리퀘스트 번호는, 어댑터 초기화시에 소프트웨어로 설정됩니다. 통상의 값은 이하와 같습니다.

Port
    0x240, 0x260, 0x280, 0x300, 0x320, 0x380
IRQ 3, 5, 7, 10, 11, 12, 15
DMA 5, 6, 7

해설
Cronyx-Sigma 드라이버는 모델 100, 400, 500, 401, 404, 410, 440, 703, 801, 810, 840 을 서포트합니다. 모델이 다르면(자), 채널세트가 다릅니다.

모델  채널
Cronyx-Sigma-100
    0
Cronyx-Sigma-400
    4, 5, 6, 7
Cronyx-Sigma-500
    0, 4, 5, 6, 7
Cronyx-Sigma-401
    0, 1, 2, 3
Cronyx-Sigma-404
    0, 1, 2, 3
Cronyx-Sigma-410
    0, 1, 2, 3
Cronyx-Sigma-440
    0, 1, 2, 3
Cronyx-Sigma-703
    0, 1, 2, 4, 5, 6, 7
Cronyx-Sigma-801
    0, 1, 2, 3, 4, 5, 6, 7
Cronyx-Sigma-810
    0, 1, 2, 3, 4, 5, 6, 7
Cronyx-Sigma-840
    0, 1, 2, 3, 4, 5, 6, 7

두 어댑터는, 보드 간접속용의 짧은 전용 케이블로 접속할 수가 있습니다. 두 접속된 어댑터는, 같은 IRQ 와 DMA 채널을 사용해, 드라이버로부터 보면 하나의 16 채널 멀티플렉서로서 동작합니다. 접속된 보드의 다른 한쪽이 ``마스터''에, 이제(벌써) 한편이 ``슬레이브''가 됩니다.

슬레이브가 된 보드의 채널은, 드라이버에 의해 8 으로부터 시작되는 번호를 할당할 수 있습니다. 예를 들어 모델 100 으로 모델 500 을 접속하면(자), 0, 8, 12, 13, 14, 15 번의 채널 번호를 할당할 수 있습니다.

RS-232C 인터페이스를 가지는 채널은, 동기 모드와 비동기 모드의 어디라도 동작하는 것이 가능 (cxconfig 유틸리티에 의해 소프트웨어적으로 선택합니다)(이어)여, 그 때문에 ``유니버설 채널''로 불립니다.

Cronyx-Sigma 어댑터용의 디바이스형 특수 파일 /dev/* (은)는, MAKEDEV(8) 에만들어집니다. 예를 들어, 이하와 같이 만듭니다:

    cd /dev
    sh MAKEDEV cronyx ttyx0 ttyx1 ttyy0

비동기 드라이버

비동기 채널의 디바이스 파일에는 다음과 같은 이름을 붙일 수 있습니다: /dev/ttyx# - (은)는 어댑터 cx0 에, /dev/ttyy# - (은)는 어댑터 cx1 에, /dev/ttyz# - (은)는 어댑터 cx2 에 붙일 수 있습니다. 여기서 # 는 0-9-a-f 의, 16 진수에서의 채널 번호입니다.

드라이버는 이하의 표준 ioctl 를 받아들입니다 ( ioctl (을)를 참조):

TIOCSBRK
    BREAK 를 송신 개시합니다.
TIOCCBRK
    BREAK 의 송신을 정지합니다.
TIOCSDTR
    DTR 신호를 세트 합니다 (DTR := 1). DTR 신호는 최초의 open(2)로 반드시 세트 되어 TIOCCDTR, TIOCSDTR, TIOCMSET, TIOCMBIS, TIOCMBIC 의 ioctl 에 의해 변경 가능합니다.
TIOCCDTR
    DTR 신호를 클리어 합니다 (DTR := 0).
TIOCMSET
    DTR 신호와 RTS 신호에, 지정한 값을 세트 합니다 (<DTR:RTS> := data). DTR 신호와 RTS 신호는, ioctl 시스템 콜의 인수중의 TIOCM_DTR (와)과 TIOCM_RTS 의 비트에 의해 제어 가능합니다.
TIOCMBIS
    DTR 신호와 RTS 신호를 세트 합니다 (<DTR:RTS> |= data). DTR 신호와 RTS 신호는, ioctl 시스템 콜의 인수중의 TIOCM_DTR (와)과 TIOCM_RTS 의 비트에 의해 제어 가능합니다.
TIOCMBIC
    DTR 신호와 RTS 신호를 클리어 합니다 (<DTR:RTS> &= ~data). DTR 신호와 RTS 신호는, ioctl 시스템 콜의 인수중의 TIOCM_DTR (와)과 TIOCM_RTS 의 비트에 의해 제어 가능합니다.
TIOCMGET
    라인상의 모뎀 신호 상태를 판정합니다. 호출뒤, 인수의 데이터는 아래와 같은 비트를 보관 유지하고 있습니다:

    TIOCM_LE
        항상 세트 (라인 enable 상태)
    TIOCM_DSR
        데이터 세트 레이디 신호 (DSR) 수신제
    TIOCM_CTS
        송신 가능 신호 (CTS) 수신제
    TIOCM_CD
        데이터 캐리어 검출 신호 (CD) 수신제
    TIOCM_DTR
        데이터 단말 레이디 (DTR) 신호 송신제
    TIOCM_RTS
        송신 요구 (RTS) 송신제

동기 드라이버

동기 채널과 유니버설 채널은, cxconfig(8) 유틸리티에 의해 동기 모드로 설정하면(자), 네트워크 인터페이스 ``cx#'' (# 는 0 에서 47 까지의 채널 번호)(으)로서 액세스 가능합니다. 모든 표준적인 네트워크 인터페이스 파라미터는, ifconfig(8) 에 의해 설정 가능합니다. 또 cxconfig(8) 명령은, 확장된 채널 옵션의 변경이나, 상위 레벨의 소프트웨어 프로토콜 (PpP 나 Cisco HDLC 등)의 설정에 사용됩니다.

유니버설 채널은 동기 모드에서도 비동기 모드에서도 사용할 수가 있습니다. 디폴트에서는 비동기 모드로 설정되어 있어 모드는 cxconfig(8) 유틸리티에 의해 변경 가능합니다. 채널이 Busy 상태 (비동기 채널이 오픈 상태의 경우나, 네트워크 인터페이스가 동작중 (up)의 경우) 의 사이, 모드는 블록 됩니다.

동기 point-to-point 프로토콜

Cronyx-Sigma 드라이버는, 편입의 동기 point-to-point 프로토콜 (sppp)(을)를 사용합니다. 본프로토콜에는, PpP/HDLC 나 Cisco/HDLC, keepalive 패킷에 의한다 자동적인 connection 로스 검출도 서포트하고 있습니다. sppp 프로토콜 세트는 독립한 모듈로서 실장되어 다른 동기 시리얼 채널의 드라이버에 의해 사용하는 일도 가능합니다. BSD/386 (BSDI) 용의 드라이버에서는, OS 측에서 실장되고 있는 일반적인 동기 프로토콜세트도 사용 가능합니다. 외부 프로토콜 세트는, ``cxconfig ext''명령 ( cxconfig(8) (을)를 참조)에 의해 선택 가능합니다.

채널 옵션의 관리

cxconfig(8) 유틸리티는, 채널 옵션을 설정하는데 사용됩니다. 채널 옵션은, 통상, operating system가 기동할 때에 (예를 들어 /etc/rc 파일등으로) 설정됩니다. 모든 경우에 대해, 모든 옵션이 의미를 가진다고는 할 수 없는 것에 주의해 주세요. 또, 옵션의 설정에 따라서는, 채널 혹은 어댑터 전체의 행업의 원인이 됩니다.

실제의 채널 옵션의 제어 기능은, 디바이스형 특수 파일 /dev/cronyx 에 대한다 몇개의 ioctl 를 경유하는 형태로 실장되고 있어 이하의 ioctl 를 사용할 수 있습니다.

CXIOCGETMODE
    채널 옵션의 값을 취득합니다.
CXIOCSETMODE
    채널 옵션의 값을 설정합니다.

ioctl 콜의 데이터 인수는 이하의 옵션 구조체의 주소를 가집니다:

    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;            /* 유저가 설정 가능한 옵션 */

board
    0..2 의, 어댑터 번호

channel
    0..15 의, 채널 번호

type
    채널의 타입 (독해 전용의 인수)

iftype
    0 번 (와 8 번) 채널의 인터페이스 타입. 0 - RS-232, 1 - RS-449/V. 35.

rxbaud
    수신 baud rate

txbaud
    송신 baud rate

mode
    채널 모드: 비동기 /HDLC/Bisync/X. 21

opt 공통의 채널 옵션

aopt
    비동기 모드 옵션

hopt
    HDLC 모드 옵션

bopt
    Bisync 모드 옵션

xopt
    X. 21 모드 옵션

sopt
    소프트웨어 프로토콜 옵션

관련 파일
/dev/cx??
    비동기 채널
/dev/cronyx
    채널 옵션 관리용의 디바이스형 특수 파일

드라이버를 포함하고 있는 원시 파일은 이하와 같습니다:

/sys/i386/isa/cronyx.c
/sys/i386/isa/cx.c
/sys/i386/isa/if_cx.c
/sys/i386/isa/cronyx.h
/sys/i386/isa/cxreg.h
/sys/net/if_spppsubr.c
/sys/net/if_sppp.h

관련 항목
cxconfig(8), ifconfig(8)