aboutsummaryrefslogtreecommitdiff
path: root/lib/mlibc/abis/ironclad/termios.h
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2024-03-07 17:28:00 -0500
committerIan Moffett <ian@osmora.org>2024-03-07 17:28:32 -0500
commitbd5969fc876a10b18613302db7087ef3c40f18e1 (patch)
tree7c2b8619afe902abf99570df2873fbdf40a4d1a1 /lib/mlibc/abis/ironclad/termios.h
parenta95b38b1b92b172e6cc4e8e56a88a30cc65907b0 (diff)
lib: Add mlibc
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'lib/mlibc/abis/ironclad/termios.h')
-rw-r--r--lib/mlibc/abis/ironclad/termios.h116
1 files changed, 116 insertions, 0 deletions
diff --git a/lib/mlibc/abis/ironclad/termios.h b/lib/mlibc/abis/ironclad/termios.h
new file mode 100644
index 0000000..4dd5987
--- /dev/null
+++ b/lib/mlibc/abis/ironclad/termios.h
@@ -0,0 +1,116 @@
+#ifndef _ABIBITS_TERMIOS_H
+#define _ABIBITS_TERMIOS_H
+
+typedef unsigned int cc_t;
+typedef unsigned int speed_t;
+typedef unsigned int tcflag_t;
+
+// indices for the c_cc array in struct termios
+#define NCCS 11
+#define VEOF 0
+#define VEOL 1
+#define VERASE 2
+#define VINTR 3
+#define VKILL 4
+#define VMIN 5
+#define VQUIT 6
+#define VSTART 7
+#define VSTOP 8
+#define VSUSP 9
+#define VTIME 10
+
+// bitwise flags for c_iflag in struct termios
+#define BRKINT 0x0001
+#define ICRNL 0x0002
+#define IGNBRK 0x0004
+#define IGNCR 0x0008
+#define IGNPAR 0x0010
+#define INLCR 0x0020
+#define INPCK 0x0040
+#define ISTRIP 0x0080
+#define IXANY 0x0100
+#define IXOFF 0x0200
+#define IXON 0x0400
+#define PARMRK 0x0800
+#define ECHOCTL 0001000
+#define IMAXBEL 0020000
+#define ECHOKE 0004000
+
+// bitwise flags for c_oflag in struct termios
+#define OPOST 0x0001
+#define ONLCR 0x0002
+#define OCRNL 0x0004
+#define ONOCR 0x0008
+#define ONLRET 0x0010
+#define OFDEL 0x0020
+#define OFILL 0x0040
+
+#define NLDLY 0x0080
+#define NL0 0x0000
+#define NL1 0x0080
+
+#define CRDLY 0x0300
+#define CR0 0x0000
+#define CR1 0x0100
+#define CR2 0x0200
+#define CR3 0x0300
+
+#define TABDLY 0x0C00
+#define TAB0 0x0000
+#define TAB1 0x0400
+#define TAB2 0x0800
+#define TAB3 0x0C00
+
+#define BSDLY 0x1000
+#define BS0 0x0000
+#define BS1 0x1000
+
+#define VTDLY 0x2000
+#define VT0 0x0000
+#define VT1 0x2000
+
+#define FFDLY 0x4000
+#define FF0 0x0000
+#define FF1 0x4000
+
+// bitwise constants for c_cflag in struct termios
+#define CSIZE 0x0003
+#define CS5 0x0000
+#define CS6 0x0001
+#define CS7 0x0002
+#define CS8 0x0003
+
+#define CSTOPB 0x0004
+#define CREAD 0x0008
+#define PARENB 0x0010
+#define PARODD 0x0020
+#define HUPCL 0x0040
+#define CLOCAL 0x0080
+
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+#define CBAUD 0x100F
+#endif
+
+// bitwise constants for c_lflag in struct termios
+#define ECHO 0x0001
+#define ECHOE 0x0002
+#define ECHOK 0x0004
+#define ECHONL 0x0008
+#define ICANON 0x0010
+#define IEXTEN 0x0020
+#define ISIG 0x0040
+#define NOFLSH 0x0080
+#define TOSTOP 0x0100
+#define ECHOPRT 0x0200
+
+struct termios {
+ tcflag_t c_iflag;
+ tcflag_t c_oflag;
+ tcflag_t c_cflag;
+ tcflag_t c_lflag;
+ cc_t c_cc[NCCS];
+ speed_t ibaud;
+ speed_t obaud;
+};
+
+#endif