From 3af5f3b288df39452b3498c99ea4e3ed520d4cde Mon Sep 17 00:00:00 2001 From: Faisal Abbas <90.abbasfaisal@gmail.com> Date: Sun, 15 Mar 2015 13:05:26 +0000 Subject: [PATCH] tcflow.c: tcflow implementation --- Library/libs/tcflow.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/Library/libs/tcflow.c b/Library/libs/tcflow.c index 27d8492d..d062b67d 100644 --- a/Library/libs/tcflow.c +++ b/Library/libs/tcflow.c @@ -4,7 +4,24 @@ int tcflow(int fd, int action) { - /* TODO */ - errno = EINVAL; - return -1; + struct termios term; + cc_t c; + + switch (action) { + case TCOOFF: + return ioctl(fd, TIOCOSTOP, 0); + case TCOON: + return ioctl(fd, TIOCOSTART, 0); + case TCIOFF: + case TCION: + if (tcgetattr(fd, &term) == -1) + return -1; + c = term.c_cc[action == TCIOFF ? VSTOP : VSTART]; + if (c != _POSIX_VDISABLE && (write(fd, &c, sizeof(c))) == -1) + return -1; + return 0; + default: + errno = EINVAL; + return -1; + } } -- 2.34.1