table of contents
TIOCMSET(2const) | TIOCMSET(2const) |
NAME¶
TIOCMGET, TIOCMSET, TIOCMBIC, TIOCMBIS, TIOCMIWAIT, TIOCGICOUNT - modem control
LIBRARY¶
Standard C library (libc, -lc)
SYNOPSIS¶
#include <asm/termbits.h> /* Definition of TIOC* constants */ #include <sys/ioctl.h>
int ioctl(int fd, TIOCMGET, int *argp); int ioctl(int fd, TIOCMSET, const int *argp); int ioctl(int fd, TIOCMBIC, const int *argp); int ioctl(int fd, TIOCMBIS, const int *argp); int ioctl(int fd, TIOCMIWAIT, int arg); int ioctl(int fd, TIOCGICOUNT, struct serial_icounter_struct *argp);
#include <linux/serial.h>
struct serial_icounter_struct;
DESCRIPTION¶
- TIOCMGET
- Get the status of modem bits.
- TIOCMSET
- Set the status of modem bits.
- TIOCMBIC
- Clear the indicated modem bits.
- TIOCMBIS
- Set the indicated modem bits.
The following bits are used by the above ioctls:
TIOCM_LE | DSR (data set ready/line enable) |
TIOCM_DTR | DTR (data terminal ready) |
TIOCM_RTS | RTS (request to send) |
TIOCM_ST | Secondary TXD (transmit) |
TIOCM_SR | Secondary RXD (receive) |
TIOCM_CTS | CTS (clear to send) |
TIOCM_CAR | DCD (data carrier detect) |
TIOCM_CD | see TIOCM_CAR |
TIOCM_RNG | RNG (ring) |
TIOCM_RI | see TIOCM_RNG |
TIOCM_DSR | DSR (data set ready) |
- TIOCMIWAIT
- Wait for any of the 4 modem bits (DCD, RI, DSR, CTS) to change. The bits of interest are specified as a bit mask in arg, by ORing together any of the bit values, TIOCM_RNG, TIOCM_DSR, TIOCM_CD, and TIOCM_CTS. The caller should use TIOCGICOUNT to see which bit has changed.
- TIOCGICOUNT
- Get counts of input serial line interrupts (DCD, RI, DSR, CTS). The counts are written to the serial_icounter_struct structure pointed to by argp.
- Note: both 1->0 and 0->1 transitions are counted, except for RI, where only 0->1 transitions are counted.
RETURN VALUE¶
On success, 0 is returned. On error, -1 is returned, and errno is set to indicate the error.
EXAMPLES¶
Check the condition of DTR on the serial port.
#include <fcntl.h> #include <stdio.h> #include <sys/ioctl.h> #include <unistd.h> int main(void) {
int fd, serial;
fd = open("/dev/ttyS0", O_RDONLY);
ioctl(fd, TIOCMGET, &serial);
if (serial & TIOCM_DTR)
puts("TIOCM_DTR is set");
else
puts("TIOCM_DTR is not set");
close(fd); }
SEE ALSO¶
2024-06-13 | Linux man-pages (unreleased) |