⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tty.h

📁 LINUX1.0内核源代码,学习LINUX编程的一定要看。
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef _LINUX_TTY_H#define _LINUX_TTY_H/* * 'tty.h' defines some structures used by tty_io.c and some defines. */#include <linux/termios.h>#include <asm/system.h>#define NR_CONSOLES	8#define NR_LDISCS	16/* * These are set up by the setup-routine at boot-time: */struct screen_info {	unsigned char  orig_x;	unsigned char  orig_y;	unsigned char  unused1[2];	unsigned short orig_video_page;	unsigned char  orig_video_mode;	unsigned char  orig_video_cols;	unsigned short orig_video_ega_ax;	unsigned short orig_video_ega_bx;	unsigned short orig_video_ega_cx;	unsigned char  orig_video_lines;};extern struct screen_info screen_info;#define ORIG_X			(screen_info.orig_x)#define ORIG_Y			(screen_info.orig_y)#define ORIG_VIDEO_PAGE		(screen_info.orig_video_page)#define ORIG_VIDEO_MODE		(screen_info.orig_video_mode)#define ORIG_VIDEO_COLS 	(screen_info.orig_video_cols)#define ORIG_VIDEO_EGA_AX	(screen_info.orig_video_ega_ax)#define ORIG_VIDEO_EGA_BX	(screen_info.orig_video_ega_bx)#define ORIG_VIDEO_EGA_CX	(screen_info.orig_video_ega_cx)#define ORIG_VIDEO_LINES	(screen_info.orig_video_lines)#define VIDEO_TYPE_MDA		0x10	/* Monochrome Text Display	*/#define VIDEO_TYPE_CGA		0x11	/* CGA Display 			*/#define VIDEO_TYPE_EGAM		0x20	/* EGA/VGA in Monochrome Mode	*/#define VIDEO_TYPE_EGAC		0x21	/* EGA/VGA in Color Mode	*//* * This character is the same as _POSIX_VDISABLE: it cannot be used as * a c_cc[] character, but indicates that a particular special character * isn't in use (eg VINTR ahs no character etc) */#define __DISABLED_CHAR '\0'/* * See comment for the tty_struct structure before changing * TTY_BUF_SIZE.  Actually, there should be different sized tty_queue * structures for different purposes.  1024 bytes for the transmit * queue is way overkill.  TYT, 9/14/92 */#define TTY_BUF_SIZE 1024	/* Must be a power of 2 */struct tty_queue {	unsigned long head;	unsigned long tail;	struct wait_queue * proc_list;	unsigned char buf[TTY_BUF_SIZE];};struct serial_struct {	int	type;	int	line;	int	port;	int	irq;	int	flags;	int	xmit_fifo_size;	int	custom_divisor;	int	baud_base;	unsigned short	close_delay;	char	reserved_char[2];	int	hub6;	int	reserved[5];};/* * These are the supported serial types. */#define PORT_UNKNOWN	0#define PORT_8250	1#define PORT_16450	2#define PORT_16550	3#define PORT_16550A	4#define PORT_MAX	4/* * Definitions for async_struct (and serial_struct) flags field */#define ASYNC_HUP_NOTIFY 0x0001 /* Notify getty on hangups and closes 				   on the callout port */#define ASYNC_FOURPORT  0x0002	/* Set OU1, OUT2 per AST Fourport settings */#define ASYNC_SAK	0x0004	/* Secure Attention Key (Orange book) */#define ASYNC_SPLIT_TERMIOS 0x0008 /* Separate termios for dialin/callout */#define ASYNC_SPD_MASK	0x0030#define ASYNC_SPD_HI	0x0010	/* Use 56000 instead of 38400 bps */#define ASYNC_SPD_VHI	0x0020  /* Use 115200 instead of 38400 bps */#define ASYNC_SPD_CUST	0x0030  /* Use user-specified divisor */#define ASYNC_SKIP_TEST	0x0040 /* Skip UART test during autoconfiguration */#define ASYNC_AUTO_IRQ  0x0080 /* Do automatic IRQ during autoconfiguration */#define ASYNC_SESSION_LOCKOUT 0x0100 /* Lock out cua opens based on session */#define ASYNC_PGRP_LOCKOUT    0x0200 /* Lock out cua opens based on pgrp */#define ASYNC_CALLOUT_NOHUP   0x0400 /* Don't do hangups for cua device */#define ASYNC_FLAGS	0x0FFF	/* Possible legal async flags */#define ASYNC_USR_MASK 0x0430	/* Legal flags that non-privileged				 * users can set or reset *//* Internal flags used only by kernel/chr_drv/serial.c */#define ASYNC_INITIALIZED	0x80000000 /* Serial port was initialized */#define ASYNC_CALLOUT_ACTIVE	0x40000000 /* Call out device is active */#define ASYNC_NORMAL_ACTIVE	0x20000000 /* Normal device is active */#define ASYNC_BOOT_AUTOCONF	0x10000000 /* Autoconfigure port on bootup */#define ASYNC_CLOSING		0x08000000 /* Serial port is closing */#define IS_A_CONSOLE(min)	(((min) & 0xC0) == 0x00)#define IS_A_SERIAL(min)	(((min) & 0xC0) == 0x40)#define IS_A_PTY(min)		((min) & 0x80)#define IS_A_PTY_MASTER(min)	(((min) & 0xC0) == 0x80)#define IS_A_PTY_SLAVE(min)	(((min) & 0xC0) == 0xC0)#define PTY_OTHER(min)		((min) ^ 0x40)#define SL_TO_DEV(line)		((line) | 0x40)#define DEV_TO_SL(min)		((min) & 0x3F)#define INC(a) ((a) = ((a)+1) & (TTY_BUF_SIZE-1))#define DEC(a) ((a) = ((a)-1) & (TTY_BUF_SIZE-1))#define EMPTY(a) ((a)->head == (a)->tail)#define LEFT(a) (((a)->tail-(a)->head-1)&(TTY_BUF_SIZE-1))#define LAST(a) ((a)->buf[(TTY_BUF_SIZE-1)&((a)->head-1)])#define FULL(a) (!LEFT(a))#define CHARS(a) (((a)->head-(a)->tail)&(TTY_BUF_SIZE-1))extern void put_tty_queue(unsigned char c, struct tty_queue * queue);extern int get_tty_queue(struct tty_queue * queue);#define INTR_CHAR(tty) ((tty)->termios->c_cc[VINTR])#define QUIT_CHAR(tty) ((tty)->termios->c_cc[VQUIT])#define ERASE_CHAR(tty) ((tty)->termios->c_cc[VERASE])#define KILL_CHAR(tty) ((tty)->termios->c_cc[VKILL])#define EOF_CHAR(tty) ((tty)->termios->c_cc[VEOF])#define TIME_CHAR(tty) ((tty)->termios->c_cc[VTIME])#define MIN_CHAR(tty) ((tty)->termios->c_cc[VMIN])#define SWTC_CHAR(tty) ((tty)->termios->c_cc[VSWTC])#define START_CHAR(tty) ((tty)->termios->c_cc[VSTART])#define STOP_CHAR(tty) ((tty)->termios->c_cc[VSTOP])#define SUSP_CHAR(tty) ((tty)->termios->c_cc[VSUSP])#define EOL_CHAR(tty) ((tty)->termios->c_cc[VEOL])#define REPRINT_CHAR(tty) ((tty)->termios->c_cc[VREPRINT])#define DISCARD_CHAR(tty) ((tty)->termios->c_cc[VDISCARD])#define WERASE_CHAR(tty) ((tty)->termios->c_cc[VWERASE])#define LNEXT_CHAR(tty)	((tty)->termios->c_cc[VLNEXT])#define EOL2_CHAR(tty) ((tty)->termios->c_cc[VEOL2])#define _I_FLAG(tty,f)	((tty)->termios->c_iflag & (f))#define _O_FLAG(tty,f)	((tty)->termios->c_oflag & (f))#define _C_FLAG(tty,f)	((tty)->termios->c_cflag & (f))#define _L_FLAG(tty,f)	((tty)->termios->c_lflag & (f))#define I_IGNBRK(tty)	_I_FLAG((tty),IGNBRK)#define I_BRKINT(tty)	_I_FLAG((tty),BRKINT)#define I_IGNPAR(tty)	_I_FLAG((tty),IGNPAR)#define I_PARMRK(tty)	_I_FLAG((tty),PARMRK)#define I_INPCK(tty)	_I_FLAG((tty),INPCK)#define I_ISTRIP(tty)	_I_FLAG((tty),ISTRIP)#define I_INLCR(tty)	_I_FLAG((tty),INLCR)#define I_IGNCR(tty)	_I_FLAG((tty),IGNCR)#define I_ICRNL(tty)	_I_FLAG((tty),ICRNL)#define I_IUCLC(tty)	_I_FLAG((tty),IUCLC)#define I_IXON(tty)	_I_FLAG((tty),IXON)#define I_IXANY(tty)	_I_FLAG((tty),IXANY)#define I_IXOFF(tty)	_I_FLAG((tty),IXOFF)#define I_IMAXBEL(tty)	_I_FLAG((tty),IMAXBEL)#define O_OPOST(tty)	_O_FLAG((tty),OPOST)#define O_OLCUC(tty)	_O_FLAG((tty),OLCUC)#define O_ONLCR(tty)	_O_FLAG((tty),ONLCR)#define O_OCRNL(tty)	_O_FLAG((tty),OCRNL)#define O_ONOCR(tty)	_O_FLAG((tty),ONOCR)#define O_ONLRET(tty)	_O_FLAG((tty),ONLRET)#define O_OFILL(tty)	_O_FLAG((tty),OFILL)#define O_OFDEL(tty)	_O_FLAG((tty),OFDEL)#define O_NLDLY(tty)	_O_FLAG((tty),NLDLY)#define O_CRDLY(tty)	_O_FLAG((tty),CRDLY)#define O_TABDLY(tty)	_O_FLAG((tty),TABDLY)#define O_BSDLY(tty)	_O_FLAG((tty),BSDLY)#define O_VTDLY(tty)	_O_FLAG((tty),VTDLY)#define O_FFDLY(tty)	_O_FLAG((tty),FFDLY)#define C_BAUD(tty)	_C_FLAG((tty),CBAUD)#define C_CSIZE(tty)	_C_FLAG((tty),CSIZE)#define C_CSTOPB(tty)	_C_FLAG((tty),CSTOPB)#define C_CREAD(tty)	_C_FLAG((tty),CREAD)#define C_PARENB(tty)	_C_FLAG((tty),PARENB)#define C_PARODD(tty)	_C_FLAG((tty),PARODD)#define C_HUPCL(tty)	_C_FLAG((tty),HUPCL)#define C_CLOCAL(tty)	_C_FLAG((tty),CLOCAL)#define C_CIBAUD(tty)	_C_FLAG((tty),CIBAUD)#define C_CRTSCTS(tty)	_C_FLAG((tty),CRTSCTS)#define L_ISIG(tty)	_L_FLAG((tty),ISIG)#define L_ICANON(tty)	_L_FLAG((tty),ICANON)#define L_XCASE(tty)	_L_FLAG((tty),XCASE)#define L_ECHO(tty)	_L_FLAG((tty),ECHO)#define L_ECHOE(tty)	_L_FLAG((tty),ECHOE)#define L_ECHOK(tty)	_L_FLAG((tty),ECHOK)#define L_ECHONL(tty)	_L_FLAG((tty),ECHONL)#define L_NOFLSH(tty)	_L_FLAG((tty),NOFLSH)#define L_TOSTOP(tty)	_L_FLAG((tty),TOSTOP)#define L_ECHOCTL(tty)	_L_FLAG((tty),ECHOCTL)#define L_ECHOPRT(tty)	_L_FLAG((tty),ECHOPRT)#define L_ECHOKE(tty)	_L_FLAG((tty),ECHOKE)#define L_FLUSHO(tty)	_L_FLAG((tty),FLUSHO)#define L_PENDIN(tty)	_L_FLAG((tty),PENDIN)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -