summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/lib/tcflush.c
diff options
context:
space:
mode:
Diffstat (limited to 'mdk-stage1/dietlibc/lib/tcflush.c')
-rw-r--r--mdk-stage1/dietlibc/lib/tcflush.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/lib/tcflush.c b/mdk-stage1/dietlibc/lib/tcflush.c
new file mode 100644
index 000000000..a19fe11d1
--- /dev/null
+++ b/mdk-stage1/dietlibc/lib/tcflush.c
@@ -0,0 +1,23 @@
+#include <unistd.h>
+#include <termios.h>
+#include <sys/ioctl.h>
+
+#include <asm/errno.h>
+
+extern int errno;
+
+/* Flush pending data on FD. */
+int tcflush(int fd, int queue_selector)
+{
+ switch (queue_selector) {
+ case TCIFLUSH:
+ return ioctl(fd, TCFLSH, 0);
+ case TCOFLUSH:
+ return ioctl(fd, TCFLSH, 1);
+ case TCIOFLUSH:
+ return ioctl(fd, TCFLSH, 2);
+ default:
+ errno = EINVAL;
+ return -1;
+ }
+}