Device control

Updated: May 06, 2022

Low-level device control is implemented using the devctl() call.

The POSIX terminal control functions are layered on top of devctl() as follows:

tcgetattr()
Get terminal attributes.
tcsetattr()
Set terminal attributes.
tcgetpgrp()
Get ID of process group leader for a terminal.
tcsetpgrp()
Set ID of process group leader for a terminal.
tcsendbreak()
Send a break condition.
tcflow()
Suspend or restart data transmission/reception.

QNX Neutrino extensions

The QNX Neutrino extensions to the terminal control API are as follows:

tcdropline()
Initiate a disconnect. For a serial device, this will pulse the DTR line.
tcinject()
Inject characters into the canonical buffer.

The io-char module acts directly on a common set of devctl() commands supported by most drivers. Applications send device-specific devctl() commands through io-char to the drivers.