?? tty.h
字號:
/* * A clist structure is the head * of a linked list queue of characters. * The characters are stored in 4-word * blocks containing a link and several characters. * The routines getc and putc * manipulate these structures. */struct clist{ int c_cc; /* character count */ char *c_cf; /* pointer to first char */ char *c_cl; /* pointer to last char */};/* * A tty structure is needed for * each UNIX character device that * is used for normal terminal IO. * The routines in tty.c handle the * common code associated with * these structures. * The definition and device dependent * code is in each driver. (kl.c dc.c dh.c) */struct tc { char t_intrc; /* interrupt */ char t_quitc; /* quit */ char t_startc; /* start output */ char t_stopc; /* stop output */ char t_eofc; /* end-of-file */ char t_brkc; /* input delimiter (like nl) */};struct tty{ struct clist t_rawq; /* input chars right off device */ struct clist t_canq; /* input chars after erase and kill */ struct clist t_outq; /* output list to device */ int (* t_oproc)(); /* routine to start output */ int (* t_iproc)(); /* routine to start input */ struct chan *t_chan; /* destination channel */ caddr_t t_linep; /* aux line discipline pointer */ caddr_t t_addr; /* device address */ dev_t t_dev; /* device number */ short t_flags; /* mode, settable by ioctl call */ short t_state; /* internal state, not visible externally */ short t_pgrp; /* process group name */ char t_delct; /* number of delimiters in raw q */ char t_line; /* line discipline */ char t_col; /* printing column of device */ char t_erase; /* erase character */ char t_kill; /* kill character */ char t_char; /* character temporary */ char t_ispeed; /* input speed */ char t_ospeed; /* output speed */ union { struct tc; struct clist t_ctlq; } t_un;};#define tun tp->t_un/* * structure of arg for ioctl */struct ttiocb { char ioc_ispeed; char ioc_ospeed; char ioc_erase; char ioc_kill; int ioc_flags;};#define TTIPRI 28#define TTOPRI 29#define CERASE '#' /* default special characters */#define CEOT 004#define CKILL '@'#define CQUIT 034 /* FS, cntl shift L */#define CINTR 0177 /* DEL */#define CSTOP 023 /* Stop output: ctl-s */#define CSTART 021 /* Start output: ctl-q */#define CBRK 0377/* limits */#define TTHIWAT 100#define TTLOWAT 50#define TTYHOG 256/* modes */#define TANDEM 01#define CBREAK 02#define LCASE 04#define ECHO 010#define CRMOD 020#define RAW 040#define ODDP 0100#define EVENP 0200#define NLDELAY 001400#define TBDELAY 006000#define XTABS 006000#define CRDELAY 030000#define VTDELAY 040000/* Hardware bits */#define DONE 0200#define IENABLE 0100/* Internal state bits */#define TIMEOUT 01 /* Delay timeout in progress */#define WOPEN 02 /* Waiting for open to complete */#define ISOPEN 04 /* Device is open */#define FLUSH 010 /* outq has been flushed during DMA */#define CARR_ON 020 /* Software copy of carrier-present */#define BUSY 040 /* Output in progress */#define ASLEEP 0100 /* Wakeup when output done */#define XCLUDE 0200 /* exclusive-use flag against open */#define TTSTOP 0400 /* Output stopped by ctl-s */#define HUPCLS 01000 /* Hang up upon last close */#define TBLOCK 02000 /* tandem queue blocked */#define DKCMD 04000 /* datakit command channel */#define DKMPX 010000 /* datakit user-multiplexed mode */#define DKCALL 020000 /* datakit dial mode */#define DKLINGR 040000 /* datakit lingering close mode */#define CNTLQ 0100000 /* interpret t_un as clist *//* * tty ioctl commands */#define TIOCGETD (('t'<<8)|0)#define TIOCSETD (('t'<<8)|1)#define TIOCHPCL (('t'<<8)|2)#define TIOCMODG (('t'<<8)|3)#define TIOCMODS (('t'<<8)|4)#define TIOCGETP (('t'<<8)|8)#define TIOCSETP (('t'<<8)|9)#define TIOCSETN (('t'<<8)|10)#define TIOCEXCL (('t'<<8)|13)#define TIOCNXCL (('t'<<8)|14)#define TIOCFLUSH (('t'<<8)|16)#define TIOCSETC (('t'<<8)|17)#define TIOCGETC (('t'<<8)|18)#define DIOCLSTN (('d'<<8)|1)#define DIOCNTRL (('d'<<8)|2)#define DIOCMPX (('d'<<8)|3)#define DIOCNMPX (('d'<<8)|4)#define DIOCSCALL (('d'<<8)|5)#define DIOCRCALL (('d'<<8)|6)#define DIOCPGRP (('d'<<8)|7)#define DIOCGETP (('d'<<8)|8)#define DIOCSETP (('d'<<8)|9)#define DIOCLOSE (('d'<<8)|10)#define DIOCTIME (('d'<<8)|11)#define DIOCRESET (('d'<<8)|12)#define FIOCLEX (('f'<<8)|1)#define FIONCLEX (('f'<<8)|2)#define MXLSTN (('x'<<8)|1)#define MXNBLK (('x'<<8)|2)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -