TIOCMBIC2const
Modem control
Part of TIOCMSET(2const).
Usage
#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;
Library
Standard C library (libc, -lc)
Overview
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, andTIOCM_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 <asm/termbits.h>
#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);
}
Releases
2 releases since Debian 13 (Trixie); the text changed 1 time.