NAME | SYNOPSIS | DESCRIPTION | APPLICATION PROGRAMMING INTERFACE | IOCTLS | ERRORS | FILES | ATTRIBUTES | SEE ALSO | DIAGNOSTICS
#include <fcntl.h>
#include <sys/termios.h>
open("/dev/ttynn", mode);
open("/dev/ttydn", mode);
open("/dev/cuan", mode);
The asy module is a loadable STREAMS driver that provides basic support for the standard UARTS that use Intel-8250, National Semiconductor-16450/16550 hardware, together with basic asynchronous communication support. The driver supports those termio(7I) device control functions specified by flags in the c_cflag word of the termios structure and by the IGNBRK, IGNPAR, PARMRK, or INPCK flags in the c_iflag word of the termios structure. All other termio(7I) functions must be performed by STREAMS modules pushed atop the driver. When a device is opened, the ldterm(7M) and ttcompat(7M) STREAMS modules are automatically pushed on top of the stream, providing the standard termio(7I) interface.
The character-special devices /dev/tty00 and /dev/tty01 are used to access the two standard serial ports ( COM1 and COM2 ) on an x86 based system. The asy driver supports up to four serial ports, including the standard ports. These ttynn devices have minor device numbers in the range 00-03.
By convention these same devices may be given names of the form /dev/ttydn, where n denotes which line is to be accessed. Such device names are typically used to provide a logical access point for a dial-in line being used with a modem.
To allow a single tty line to be connected to a modem and used for both incoming and outgoing calls, a special feature, controlled by the minor device number, is available. By accessing character-special devices with names of the form /dev/cuan it is possible to open a port without the Carrier Detect signal being asserted, either through hardware or an equivalent software mechanism. These devices are commonly known as dial-out lines.
Once a /dev/cuan line is opened, the corresponding tty, or ttyd line cannot be opened until the /dev/cuan line is closed; a blocking open will wait until the /dev/cuan line is closed (which will drop Data Terminal Ready, after which Carrier Detect will usually drop as well) and carrier is detected again, and a non-blocking open will return an error. Also, if the /dev/ttydn line has been opened successfully (usually only when carrier is recognized on the modem) the corresponding /dev/cuan line can not be opened. This allows a modem to be attached to, for example, /dev/ttyd0 (renamed from /dev/tty00) and used for dial-in (by enabling the line for login in /etc/inittab) and also used for dial-out (by tip(1) or uucp(1C)) as /dev/cua0 when no one is logged in on the line.
The standard set of termio ioctl() calls are supported by asy.
Breaks can be generated by the TCSBRK, TIOCSBRK, and TIOCCBRK ioctl() calls.
The input and output line speeds may be set to any of the speeds supported by termio. The speeds cannot be set independently; when the output speed is set, the input speed is set to the same speed.
An open() will fail if:
The unit being opened does not exist.
The dial-out device is being opened and the dial-in device is already open, or the dial-in device is being opened with a no-delay open and the dial-out device is already open.
The unit has been marked as exclusive-use by another process with a TIOCEXCL ioctl() call.
The open was interrupted by the delivery of a signal.
hardwired tty lines
dial-in tty lines
dial-out tty lines
asy configuration file
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Architecture | x86 |
tip(1), uucp(1C), ioctl(2), open(2), termios(3), attributes(5), ldterm(7M), termio(7I), ttcompat(7M)
The hardware overrun occurred before the input character could be serviced.
The driver's character input ring buffer overflowed before it could be serviced.
NAME | SYNOPSIS | DESCRIPTION | APPLICATION PROGRAMMING INTERFACE | IOCTLS | ERRORS | FILES | ATTRIBUTES | SEE ALSO | DIAGNOSTICS