Blame include/ntapi/nt_termios.h

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