summaryrefslogtreecommitdiff
path: root/lib/libc/termios/tcsetattr.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/termios/tcsetattr.c')
-rw-r--r--lib/libc/termios/tcsetattr.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/libc/termios/tcsetattr.c b/lib/libc/termios/tcsetattr.c
new file mode 100644
index 00000000..a76e77a5
--- /dev/null
+++ b/lib/libc/termios/tcsetattr.c
@@ -0,0 +1,14 @@
+#include <termios.h>
+#include <syscall.h>
+#include <asm-generic/ioctls.h>
+#include <errno.h>
+
+int tcsetattr(int fildes, int optional_actions, const struct termios *termios_p)
+{
+ if (optional_actions < 0 || optional_actions > 2) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ return syscall(ioctl, fildes, TCSETS + optional_actions, termios_p);
+}