summaryrefslogtreecommitdiffhomepage
path: root/include/ntapi/nt_termios.h
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2015-07-27 04:01:18 -0400
committermidipix <writeonce@midipix.org>2015-07-27 04:01:18 -0400
commitdd89bb8ad4fe184a34b5dbdda237e640fc82121b (patch)
tree5e80d2da35f5892f92be29f57982b2708e6bd99b /include/ntapi/nt_termios.h
parentdcdadc2702712fa750ed255ed1dfa354522797a0 (diff)
downloadntapi-dd89bb8ad4fe184a34b5dbdda237e640fc82121b.tar.bz2
ntapi-dd89bb8ad4fe184a34b5dbdda237e640fc82121b.tar.xz
entered advanced internal development stage.
Diffstat (limited to 'include/ntapi/nt_termios.h')
-rw-r--r--include/ntapi/nt_termios.h305
1 files changed, 305 insertions, 0 deletions
diff --git a/include/ntapi/nt_termios.h b/include/ntapi/nt_termios.h
new file mode 100644
index 0000000..4d381d2
--- /dev/null
+++ b/include/ntapi/nt_termios.h
@@ -0,0 +1,305 @@
+#ifndef _NT_TERMIOS_H_
+#define _NT_TERMIOS_H_
+
+#include <psxtypes/psxtypes.h>
+
+/* tty friendly guids */
+#define TTY_PTM_GUID {0x21b51c45,0x3388,0x4dd9,{0x82,0x9a,0x5b,0x67,0x4e,0x3e,0x31,0x55}}
+#define TTY_PTS_GUID {0xa038ed3e,0x7bcc,0x4a53,{0xb2,0x94,0x01,0xdf,0x87,0xf6,0x94,0x70}}
+#define TTY_DBG_GUID {0x5ad03536,0xde3c,0x451a,{0xa4,0x32,0xf6,0xfd,0x95,0x97,0x5c,0x52}}
+
+/* cc_chars */
+#define TTY_NCCS 32
+
+#define TTY_VINTR 0x00
+#define TTY_VQUIT 0x01
+#define TTY_VERASE 0x02
+#define TTY_VKILL 0x03
+#define TTY_VEOF 0x04
+#define TTY_VTIME 0x05
+#define TTY_VMIN 0x06
+#define TTY_VSWTC 0x07
+#define TTY_VSTART 0x08
+#define TTY_VSTOP 0x09
+#define TTY_VSUSP 0x0a
+#define TTY_VEOL 0x0b
+#define TTY_VREPRINT 0x0c
+#define TTY_VDISCARD 0x0d
+#define TTY_VWERASE 0x0e
+#define TTY_VLNEXT 0x0f
+#define TTY_VEOL2 0x10
+
+/* c_iflag bits */
+#define TTY_IGNBRK 0000001
+#define TTY_BRKINT 0000002
+#define TTY_IGNPAR 0000004
+#define TTY_PARMRK 0000010
+#define TTY_INPCK 0000020
+#define TTY_ISTRIP 0000040
+#define TTY_INLCR 0000100
+#define TTY_IGNCR 0000200
+#define TTY_ICRNL 0000400
+#define TTY_IUCLC 0001000
+#define TTY_IXON 0002000
+#define TTY_IXANY 0004000
+#define TTY_IXOFF 0010000
+#define TTY_IMAXBEL 0020000
+#define TTY_IUTF8 0040000
+
+/* c_oflag bits */
+#define TTY_OPOST 0000001
+#define TTY_OLCUC 0000002
+#define TTY_ONLCR 0000004
+#define TTY_OCRNL 0000010
+#define TTY_ONOCR 0000020
+#define TTY_ONLRET 0000040
+#define TTY_OFILL 0000100
+#define TTY_OFDEL 0000200
+#define TTY_NLDLY 0000400
+#define TTY_NL0 0000000
+#define TTY_NL1 0000400
+#define TTY_CRDLY 0003000
+#define TTY_CR0 0000000
+#define TTY_CR1 0001000
+#define TTY_CR2 0002000
+#define TTY_CR3 0003000
+#define TTY_TABDLY 0014000
+#define TTY_TAB0 0000000
+#define TTY_TAB1 0004000
+#define TTY_TAB2 0010000
+#define TTY_TAB3 0014000
+#define TTY_BSDLY 0020000
+#define TTY_BS0 0000000
+#define TTY_BS1 0020000
+#define TTY_FFDLY 0100000
+#define TTY_FF0 0000000
+#define TTY_FF1 0100000
+
+#define TTY_VTDLY 0040000
+#define TTY_VT0 0000000
+#define TTY_VT1 0040000
+
+/* c_lflag bits */
+#define TTY_ISIG 0000001
+#define TTY_ICANON 0000002
+#define TTY_ECHO 0000010
+#define TTY_ECHOE 0000020
+#define TTY_ECHOK 0000040
+#define TTY_ECHONL 0000100
+#define TTY_NOFLSH 0000200
+#define TTY_TOSTOP 0000400
+#define TTY_IEXTEN 0100000
+
+#define TTY_ECHOCTL 0001000
+#define TTY_ECHOPRT 0002000
+#define TTY_ECHOKE 0004000
+#define TTY_FLUSHO 0010000
+#define TTY_PENDIN 0040000
+
+/* c_cflag bits */
+#define TTY_CBAUD 0010017
+#define TTY_CSIZE 0000060
+#define TTY_CS5 0000000
+#define TTY_CS6 0000020
+#define TTY_CS7 0000040
+#define TTY_CS8 0000060
+#define TTY_CSTOPB 0000100
+#define TTY_CREAD 0000200
+#define TTY_PARENB 0000400
+#define TTY_PARODD 0001000
+#define TTY_HUPCL 0002000
+#define TTY_CLOCAL 0004000
+
+/* control flow */
+#define TTY_TCOOFF 0
+#define TTY_TCOON 1
+#define TTY_TCIOFF 2
+#define TTY_TCION 3
+
+/* flush */
+#define TTY_TCIFLUSH 0
+#define TTY_TCOFLUSH 1
+#define TTY_TCIOFLUSH 2
+
+/* tty ioctl */
+#define TTY_TCSANOW 0
+#define TTY_TCSADRAIN 1
+#define TTY_TCSAFLUSH 2
+
+/* tty ioctl codes */
+#define TTY_TCGETS 0x5401
+#define TTY_TCSETS 0x5402
+#define TTY_TCSETSW 0x5403
+#define TTY_TCSETSF 0x5404
+#define TTY_TCGETA 0x5405
+#define TTY_TCSETA 0x5406
+#define TTY_TCSETAW 0x5407
+#define TTY_TCSETAF 0x5408
+#define TTY_TCSBRK 0x5409
+#define TTY_TCXONC 0x540A
+#define TTY_TCFLSH 0x540B
+#define TTY_TIOCEXCL 0x540C
+#define TTY_TIOCNXCL 0x540D
+#define TTY_TIOCSCTTY 0x540E
+#define TTY_TIOCGPGRP 0x540F
+#define TTY_TIOCSPGRP 0x5410
+#define TTY_TIOCOUTQ 0x5411
+#define TTY_TIOCSTI 0x5412
+#define TTY_TIOCGWINSZ 0x5413
+#define TTY_TIOCSWINSZ 0x5414
+#define TTY_TIOCMGET 0x5415
+#define TTY_TIOCMBIS 0x5416
+#define TTY_TIOCMBIC 0x5417
+#define TTY_TIOCMSET 0x5418
+#define TTY_TIOCGSOFTCAR 0x5419
+#define TTY_TIOCSSOFTCAR 0x541A
+#define TTY_FIONREAD 0x541B
+#define TTY_TIOCINQ FIONREAD
+#define TTY_TIOCLINUX 0x541C
+#define TTY_TIOCCONS 0x541D
+#define TTY_TIOCGSERIAL 0x541E
+#define TTY_TIOCSSERIAL 0x541F
+#define TTY_TIOCPKT 0x5420
+#define TTY_FIONBIO 0x5421
+#define TTY_TIOCNOTTY 0x5422
+#define TTY_TIOCSETD 0x5423
+#define TTY_TIOCGETD 0x5424
+#define TTY_TCSBRKP 0x5425
+#define TTY_TIOCTTYGSTRUCT 0x5426
+#define TTY_TIOCSBRK 0x5427
+#define TTY_TIOCCBRK 0x5428
+#define TTY_TIOCGSID 0x5429
+#define TTY_TIOCGPTN 0x5430
+#define TTY_TIOCSPTLCK 0x5431
+#define TTY_TCGETX 0x5432
+#define TTY_TCSETX 0x5433
+#define TTY_TCSETXF 0x5434
+#define TTY_TCSETXW 0x5435
+
+/* packet mode */
+#define TTY_TIOCPKT_DATA 0x00
+#define TTY_TIOCPKT_FLUSHREAD 0x01
+#define TTY_TIOCPKT_FLUSHWRITE 0x02
+#define TTY_TIOCPKT_STOP 0x04
+#define TTY_TIOCPKT_START 0x08
+#define TTY_TIOCPKT_NOSTOP 0x10
+#define TTY_TIOCPKT_DOSTOP 0x20
+#define TTY_TIOCPKT_IOCTL 0x40
+
+/* transmitter empty */
+#define TTY_TIOCSER_TEMT 0x01
+
+/* baud rate... :-) */
+#define TTY_B0 0000000
+#define TTY_B50 0000001
+#define TTY_B75 0000002
+#define TTY_B110 0000003
+#define TTY_B134 0000004
+#define TTY_B150 0000005
+#define TTY_B200 0000006
+#define TTY_B300 0000007
+#define TTY_B600 0000010
+#define TTY_B1200 0000011
+#define TTY_B1800 0000012
+#define TTY_B2400 0000013
+#define TTY_B4800 0000014
+#define TTY_B9600 0000015
+#define TTY_B19200 0000016
+#define TTY_B38400 0000017
+
+#define TTY_B57600 0010001
+#define TTY_B115200 0010002
+#define TTY_B230400 0010003
+#define TTY_B460800 0010004
+#define TTY_B500000 0010005
+#define TTY_B576000 0010006
+#define TTY_B921600 0010007
+#define TTY_B1000000 0010010
+#define TTY_B1152000 0010011
+#define TTY_B1500000 0010012
+#define TTY_B2000000 0010013
+#define TTY_B2500000 0010014
+#define TTY_B3000000 0010015
+#define TTY_B3500000 0010016
+#define TTY_B4000000 0010017
+
+/* special characters */
+#define TTY_CTRL_AT 0x00
+#define TTY_CTRL_A 0x01
+#define TTY_CTRL_B 0x02
+#define TTY_CTRL_C 0x03
+#define TTY_CTRL_D 0x04
+#define TTY_CTRL_E 0x05
+#define TTY_CTRL_F 0x06
+#define TTY_CTRL_G 0x07
+#define TTY_CTRL_H 0x08
+#define TTY_CTRL_I 0x09
+#define TTY_CTRL_J 0x0a
+#define TTY_CTRL_K 0x0b
+#define TTY_CTRL_L 0x0c
+#define TTY_CTRL_M 0x0d
+#define TTY_CTRL_N 0x0e
+#define TTY_CTRL_O 0x0f
+#define TTY_CTRL_P 0x10
+#define TTY_CTRL_Q 0x11
+#define TTY_CTRL_R 0x12
+#define TTY_CTRL_S 0x13
+#define TTY_CTRL_T 0x14
+#define TTY_CTRL_U 0x15
+#define TTY_CTRL_V 0x16
+#define TTY_CTRL_W 0x17
+#define TTY_CTRL_X 0x18
+#define TTY_CTRL_Y 0x19
+#define TTY_CTRL_Z 0x1a
+#define TTY_CTRL_LBRACKET 0x1b
+#define TTY_CTRL_BSLASH 0x1c
+#define TTY_CTRL_RBRACKET 0x1d
+#define TTY_CTRL_CTRL 0x1e
+#define TTY_CTRL_USCORE 0x1f
+#define TTY_CTRL_QMARK 0x7f
+
+/* tty properties */
+struct tty_termios {
+ uint32_t c_iflag;
+ uint32_t c_oflag;
+ uint32_t c_cflag;
+ uint32_t c_lflag;
+ unsigned char c_line;
+ unsigned char c_cc[TTY_NCCS];
+ uint32_t __c_ispeed;
+ uint32_t __c_ospeed;
+};
+
+
+/* tty window properties */
+struct tty_winsize {
+ uint16_t ws_row;
+ uint16_t ws_col;
+ uint16_t ws_xpixel;
+ uint16_t ws_ypixel;
+};
+
+
+struct tty_winbuffer {
+ uint16_t wb_row;
+ uint16_t wb_col;
+ uint16_t wb_prev_row;
+ uint16_t wb_prev_col;
+};
+
+
+struct tty_winpos {
+ uint16_t wp_x;
+ uint16_t wp_y;
+ uint16_t wp_prev_x;
+ uint16_t wp_prev_y;
+};
+
+
+struct tty_winprops {
+ struct tty_winsize winsize;
+ struct tty_winbuffer winbuffer;
+ struct tty_winpos winpos;
+};
+
+#endif