From 9bc8a11afeed3569736b89754012e3ca22ee10f6 Mon Sep 17 00:00:00 2001 From: pommicket Date: Sun, 20 Feb 2022 13:18:21 -0800 Subject: conclusion --- 05/musl-0.6.0/src/termios/cfgetospeed.c | 12 ++++++++++++ 05/musl-0.6.0/src/termios/cfsetospeed.c | 22 ++++++++++++++++++++++ 05/musl-0.6.0/src/termios/tcdrain.c | 7 +++++++ 05/musl-0.6.0/src/termios/tcflow.c | 7 +++++++ 05/musl-0.6.0/src/termios/tcflush.c | 7 +++++++ 05/musl-0.6.0/src/termios/tcgetattr.c | 10 ++++++++++ 05/musl-0.6.0/src/termios/tcgetsid.c | 10 ++++++++++ 05/musl-0.6.0/src/termios/tcsendbreak.c | 8 ++++++++ 05/musl-0.6.0/src/termios/tcsetattr.c | 13 +++++++++++++ 9 files changed, 96 insertions(+) create mode 100644 05/musl-0.6.0/src/termios/cfgetospeed.c create mode 100644 05/musl-0.6.0/src/termios/cfsetospeed.c create mode 100644 05/musl-0.6.0/src/termios/tcdrain.c create mode 100644 05/musl-0.6.0/src/termios/tcflow.c create mode 100644 05/musl-0.6.0/src/termios/tcflush.c create mode 100644 05/musl-0.6.0/src/termios/tcgetattr.c create mode 100644 05/musl-0.6.0/src/termios/tcgetsid.c create mode 100644 05/musl-0.6.0/src/termios/tcsendbreak.c create mode 100644 05/musl-0.6.0/src/termios/tcsetattr.c (limited to '05/musl-0.6.0/src/termios') diff --git a/05/musl-0.6.0/src/termios/cfgetospeed.c b/05/musl-0.6.0/src/termios/cfgetospeed.c new file mode 100644 index 0000000..0ebc198 --- /dev/null +++ b/05/musl-0.6.0/src/termios/cfgetospeed.c @@ -0,0 +1,12 @@ +#include +#include + +speed_t cfgetospeed(const struct termios *tio) +{ + return tio->c_cflag & CBAUD; +} + +speed_t cfgetispeed(const struct termios *tio) +{ + return cfgetospeed(tio); +} diff --git a/05/musl-0.6.0/src/termios/cfsetospeed.c b/05/musl-0.6.0/src/termios/cfsetospeed.c new file mode 100644 index 0000000..80c790f --- /dev/null +++ b/05/musl-0.6.0/src/termios/cfsetospeed.c @@ -0,0 +1,22 @@ +#include +#include +#include +#include "libc.h" + +int cfsetospeed(struct termios *tio, speed_t speed) +{ + if (speed & ~CBAUD) { + errno = EINVAL; + return -1; + } + tio->c_cflag &= ~CBAUD; + tio->c_cflag |= speed; + return 0; +} + +int cfsetispeed(struct termios *tio, speed_t speed) +{ + return speed ? cfsetospeed(tio, speed) : 0; +} + +weak_alias(cfsetospeed, cfsetspeed); diff --git a/05/musl-0.6.0/src/termios/tcdrain.c b/05/musl-0.6.0/src/termios/tcdrain.c new file mode 100644 index 0000000..c51dd40 --- /dev/null +++ b/05/musl-0.6.0/src/termios/tcdrain.c @@ -0,0 +1,7 @@ +#include +#include + +int tcdrain(int fd) +{ + return ioctl(fd, TCSBRK, 1); +} diff --git a/05/musl-0.6.0/src/termios/tcflow.c b/05/musl-0.6.0/src/termios/tcflow.c new file mode 100644 index 0000000..c7fc3fe --- /dev/null +++ b/05/musl-0.6.0/src/termios/tcflow.c @@ -0,0 +1,7 @@ +#include +#include + +int tcflow(int fd, int action) +{ + return ioctl(fd, TCXONC, action); +} diff --git a/05/musl-0.6.0/src/termios/tcflush.c b/05/musl-0.6.0/src/termios/tcflush.c new file mode 100644 index 0000000..5022266 --- /dev/null +++ b/05/musl-0.6.0/src/termios/tcflush.c @@ -0,0 +1,7 @@ +#include +#include + +int tcflush(int fd, int queue) +{ + return ioctl(fd, TCFLSH, queue); +} diff --git a/05/musl-0.6.0/src/termios/tcgetattr.c b/05/musl-0.6.0/src/termios/tcgetattr.c new file mode 100644 index 0000000..d9ce786 --- /dev/null +++ b/05/musl-0.6.0/src/termios/tcgetattr.c @@ -0,0 +1,10 @@ +#include +#include +#include + +int tcgetattr(int fd, struct termios *tio) +{ + if (ioctl(fd, TCGETS, tio)) + return -1; + return 0; +} diff --git a/05/musl-0.6.0/src/termios/tcgetsid.c b/05/musl-0.6.0/src/termios/tcgetsid.c new file mode 100644 index 0000000..1053fd6 --- /dev/null +++ b/05/musl-0.6.0/src/termios/tcgetsid.c @@ -0,0 +1,10 @@ +#include +#include + +pid_t tcgetsid(int fd) +{ + int sid; + if (ioctl(fd, TIOCGSID, &sid) < 0) + return -1; + return sid; +} diff --git a/05/musl-0.6.0/src/termios/tcsendbreak.c b/05/musl-0.6.0/src/termios/tcsendbreak.c new file mode 100644 index 0000000..b6df0a2 --- /dev/null +++ b/05/musl-0.6.0/src/termios/tcsendbreak.c @@ -0,0 +1,8 @@ +#include +#include + +int tcsendbreak(int fd, int dur) +{ + /* nonzero duration is implementation-defined, so ignore it */ + return ioctl(fd, TCSBRK, 0); +} diff --git a/05/musl-0.6.0/src/termios/tcsetattr.c b/05/musl-0.6.0/src/termios/tcsetattr.c new file mode 100644 index 0000000..e9a168f --- /dev/null +++ b/05/musl-0.6.0/src/termios/tcsetattr.c @@ -0,0 +1,13 @@ +#include +#include +#include +#include + +int tcsetattr(int fd, int act, const struct termios *tio) +{ + if (act < 0 || act > 2) { + errno = EINVAL; + return -1; + } + return ioctl(fd, TCSETS+act, tio); +} -- cgit v1.2.3