?? tty.h
字號(hào):
/* * 'tty.h' defines some structures used by tty_io.c and some defines. * * NOTE! Don't touch this without checking that nothing in rs_io.s or * con_io.s breaks. Some constants are hardwired into the system (mainly * offsets into 'tty_queue' */#ifndef _TTY_H#define _TTY_H#define MAX_CONSOLES 8#define NR_SERIALS 2#define NR_PTYS 4extern int NR_CONSOLES;#include <termios.h>#define TTY_BUF_SIZE 1024struct tty_queue { unsigned long data; unsigned long head; unsigned long tail; struct task_struct * proc_list; char buf[TTY_BUF_SIZE];};#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 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))#define GETCH(queue,c) \(void)({c=(queue)->buf[(queue)->tail];INC((queue)->tail);})#define PUTCH(c,queue) \(void)({(queue)->buf[(queue)->head]=(c);INC((queue)->head);})#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 START_CHAR(tty) ((tty)->termios.c_cc[VSTART])#define STOP_CHAR(tty) ((tty)->termios.c_cc[VSTOP])#define SUSPEND_CHAR(tty) ((tty)->termios.c_cc[VSUSP])struct tty_struct { struct termios termios; int pgrp; int session; int stopped; void (*write)(struct tty_struct * tty); struct tty_queue *read_q; struct tty_queue *write_q; struct tty_queue *secondary; };extern struct tty_struct tty_table[];extern int fg_console;#define TTY_TABLE(nr) \(tty_table + ((nr) ? (((nr) < 64)? (nr)-1:(nr)) : fg_console))/* intr=^C quit=^| erase=del kill=^U eof=^D vtime=\0 vmin=\1 sxtc=\0 start=^Q stop=^S susp=^Z eol=\0 reprint=^R discard=^U werase=^W lnext=^V eol2=\0*/#define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0"void rs_init(void);void con_init(void);void tty_init(void);int tty_read(unsigned c, char * buf, int n);int tty_write(unsigned c, char * buf, int n);void con_write(struct tty_struct * tty);void rs_write(struct tty_struct * tty);void mpty_write(struct tty_struct * tty);void spty_write(struct tty_struct * tty);void copy_to_cooked(struct tty_struct * tty);void update_screen(void);#endif
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -