|
|
1.1 ! root 1: /* ! 2: * new tty line discipline processing ! 3: */ ! 4: ! 5: struct nttyld { ! 6: ! 7: struct queue *nt_outq; /* for echoed characters */ ! 8: struct queue *nt_readq; /* for processed input characters */ ! 9: ! 10: #define NT_NIN 256 ! 11: char nt_in[NT_NIN]; /* cooked mode input buffer */ ! 12: short nt_nin; /* current number of characters in nt_in */ ! 13: ! 14: short nt_flags; /* ioctl [gs]ettable modes */ ! 15: short nt_state; /* internal state, not visible externally */ ! 16: char nt_col; /* printing column of device */ ! 17: char nt_delct; /* number of delimiters in read queue */ ! 18: ! 19: char nt_erase; /* erase character */ ! 20: char nt_kill; /* kill character */ ! 21: struct tchars nt_tchr; ! 22: #define nt_intrc nt_tchr.t_intrc ! 23: #define nt_quitc nt_tchr.t_quitc ! 24: #define nt_startc nt_tchr.t_startc ! 25: #define nt_stopc nt_tchr.t_stopc ! 26: #define nt_eofc nt_tchr.t_eofc ! 27: #define nt_brkc nt_tchr.t_brkc ! 28: ! 29: /* ! 30: * local: ! 31: */ ! 32: short nt_trash; /* nt_nin after last write() data processed */ ! 33: short nt_rocol; /* nt_col when nt_nin==0 */ ! 34: short nt_local; /* local mode bits */ ! 35: short nt_lstate; /* local state bits */ ! 36: ! 37: struct ltchars nt_ltchr; ! 38: #define nt_suspc nt_ltchr.t_suspc ! 39: #define nt_dsuspc nt_ltchr.t_dsuspc ! 40: #define nt_rprntc nt_ltchr.t_rprntc ! 41: #define nt_flushc nt_ltchr.t_flushc ! 42: #define nt_werasc nt_ltchr.t_werasc ! 43: #define nt_lnextc nt_ltchr.t_lnextc ! 44: #define nt_urotc nt_luchr.t_urotc ! 45: }; ! 46: ! 47: ! 48: /* ! 49: * values for nt_state: ! 50: */ ! 51: #define NT_STOP 001 /* stopped by stop character */ ! 52: #define NT_ESC 002 /* have just seen \ or lnext character */ ! 53: #define NT_CR 004 /* turning LF into CRLF */ ! 54: #define NT_USE 010 /* nttyld structure in use */ ! 55: #define NT_CASE 020 /* adding \ for upper-case-only terminals */ ! 56: #define NT_ECHO 040 /* echoed something for ntin */ ! 57: ! 58: ! 59: /* ! 60: * default local special characters (struct ltchars) ! 61: */ ! 62: #define CSUSP CTRL(z) ! 63: #define CDSUSP CTRL(y) ! 64: #define CRPRNT CTRL(r) ! 65: #define CFLUSH CTRL(o) ! 66: #define CWERAS CTRL(w) ! 67: #define CLNEXT CTRL(v) ! 68: ! 69: ! 70: /* ! 71: * Ioctl message format. ! 72: */ ! 73: ! 74: struct ntioc { ! 75: int command; ! 76: ! 77: union { ! 78: struct sgttyb sg; ! 79: struct tchars tchr; ! 80: struct ltchars ltchr; ! 81: short local; ! 82: char chr[16]; ! 83: } arg; ! 84: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.