NAME | SYNOPSIS | DESCRIPTION | APPLICATION PROGRAMMING INTERFACE | IOCTLS | ERRORS | FILES | ATTRIBUTES | SEE ALSO | DIAGNOSTICS
se@
bus_address
:
port_name
[
,cu
]
The se module is a loadable STREAMS driver that provides basic support for the 82532 ESCC hardware, together with basic asynchronous and synchronous communication support. This manual page describes the asynchronous protocol interface, the synchronous interface is described under se_hdlc(7D). Both interfaces use the same driver, but there is little overlap in the format of the interfaces, so a separate manual seems appropriate. bus_address is the platform specific se device bus address. port_name is a single letter (a-z).
The Siemens 82532 provides two serial input/output channels that are capable of supporting a variety of communication protocols. A typical system will have one of these devices to implement two serial ports (port_name), usually configured for RS-423 (which will also support most RS-232 equipment). The 82532 uses 64 character input and output FIFOs to reduce system overhead. When receiving characters the CPU is notified when 32 characters have arrived (1/2 of receive buffer is full) or no character has arrived in the time it would take to receive 4 characters at the current baud rate. When sending characters the 82532 places the first 64 characters to be sent into its output FIFO and thereafter notifies the CPU when it is half empty (32 characters left). Delays may be seen when modifying the port's attributes while the se driver waits for the 82532 to transmit the remaining characters within its output FIFO before making the requested change.
The chip implements CTS/RTS flow control in hardware. Removing the responsibility for this feature from the CPU prevents data overruns during periods of high system load.
In async mode (obtained by opening /dev/cua/[a-z], /dev/term/[a-z] or /dev/tty[a-z]), 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.
/dev/cua/[a-z], /dev/term/[a-z] and /dev/tty[a-z] are valid name space entries. The number of entries used in this name space are machine dependent.
The /dev/tty[a-z] device names only exist if the Binary Compatibility Package is installed. The /dev/tty[a-z] device names are created by the ucblinks command. This command is only available with the Binary Compatibility Package.
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/cua/[a-z] 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/cua/[a-z] line is opened, the corresponding tty line cannot be opened until the /dev/cua/[a-z] line is closed; a blocking open will wait until the /dev/cua/[a-z] 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 tty line has been opened successfully (usually only when carrier is recognized on the modem) the corresponding /dev/cua/[a-z] line cannot be opened. This allows a modem to be attached to, for example, /dev/term/[a-z] (renamed from /dev/tty[a-z]) 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/cua/[a-z] when no one is logged in on the line.
The standard set of termio ioctl() calls are supported by se.
Breaks can be generated by the TCSBRK, TIOCSBRK, and TIOCCBRK ioctl() calls.
The state of the DCD, CTS, RTS, and DTR interface signals may be queried through the use of the TIOCM_CAR, TIOCM_CTS, TIOCM_RTS, and TIOCM_DTR arguments to the TIOCMGET ioctl command, respectively. Due to hardware limitations, only the RTS and DTR signals may be set through their respective arguments to the TIOCMSET, TIOCMBIS, and TIOCMBIC ioctl commands.
The input and output line speeds may be set to all baud rates supported by termio. The speeds cannot be set independently; when the output speed is set, the input speed is set to the same speed.
When using baud rates over 100,000 baud, the software will change the line driver configuration to handle the higher data rates. This decreases the theoretical maximum cable length from 70 meters to 30 meters. For further details, see the Unitrode UC5170 line driver data sheets under "Slew rate programming".
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 port is in use by another serial protocol.
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.
dial-out tty lines
dial-in tty lines
binary compatibility package device names
Synchronous devices - see se_hdlc(7D).
Synchronous control clone device
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Architecture | SPARC |
cu(1C), tip(1), ucblinks(1B), uucp(1C), ports(1M), attributes(5), ioctl(2), open(2), ldterm(7M), se_hdlc(7D), termio(7I), ttcompat(7M), zs(7D), zsh(7D)
The 82532 internal FIFO received more data than it could handle. This indicates that Solaris was not servicing data interrupts fast enough and suggests a system with too many interrupts or a data line with too high a data rate.
The se driver was unable to store data it removed the 82532 FIFO. This suggests that the user process is not reading data fast enough, and suggests an overloaded system. If possible, the application should enable flow control (either CTSRTS or XONXOFF); this will allow the driver to backpressure the remote system when the local buffers fill up.
NAME | SYNOPSIS | DESCRIPTION | APPLICATION PROGRAMMING INTERFACE | IOCTLS | ERRORS | FILES | ATTRIBUTES | SEE ALSO | DIAGNOSTICS