Add original unix v6
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* 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 6 characters.
|
||||
* The routines getc and putc (m45.s or m40.s)
|
||||
* manipulate these structures.
|
||||
*/
|
||||
struct clist
|
||||
{
|
||||
int c_cc; /* character count */
|
||||
int c_cf; /* pointer to first block */
|
||||
int c_cl; /* pointer to last block */
|
||||
};
|
||||
|
||||
/*
|
||||
* 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 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_flags; /* mode, settable by stty call */
|
||||
int *t_addr; /* device address (register or startup fcn) */
|
||||
char t_delct; /* number of delimiters in raw q */
|
||||
char t_col; /* printing column of device */
|
||||
char t_erase; /* erase character */
|
||||
char t_kill; /* kill character */
|
||||
char t_state; /* internal state, not visible externally */
|
||||
char t_char; /* character temporary */
|
||||
int t_speeds; /* output+input line speed */
|
||||
int t_dev; /* device name */
|
||||
};
|
||||
|
||||
char partab[]; /* ASCII table: parity, character class */
|
||||
|
||||
#define TTIPRI 10
|
||||
#define TTOPRI 20
|
||||
|
||||
#define CERASE '#' /* default special characters */
|
||||
#define CEOT 004
|
||||
#define CKILL '@'
|
||||
#define CQUIT 034 /* FS, cntl shift L */
|
||||
#define CINTR 0177 /* DEL */
|
||||
|
||||
/* limits */
|
||||
#define TTHIWAT 50
|
||||
#define TTLOWAT 30
|
||||
#define TTYHOG 256
|
||||
|
||||
/* modes */
|
||||
#define HUPCL 01
|
||||
#define XTABS 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 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 SSTART 010 /* Has special start routine at addr */
|
||||
#define CARR_ON 020 /* Software copy of carrier-present */
|
||||
#define BUSY 040 /* Output in progress */
|
||||
#define ASLEEP 0100 /* Wakeup when output done */
|
||||
Reference in New Issue
Block a user