|
|
1.1 root 1: /* dlc.h */
2:
3: /* driver states */
4:
5: #define DLIINIT 0 /* initial input (nonblockmode) */
6: #define DLIREAD 1 /* doing block input */
7: #define DLIREADY 2 /* ready to begin block mode */
8: #define DLIWAIT 3 /* waiting for start of block */
9: #define DLIDONE 4 /* block mode read completed */
10: #define DLOINIT 0 /* initial output (nonblockmode)*/
11: #define DLOREADY 1 /* ready to begin block mode */
12: #define DLOWRITE 2 /* doing block mode write */
13: #define DLOSTALL 3 /* stall before sending frame */
14: #define DLODONE 4 /* blockmode write completed */
15: #define DLORESTART 5 /* reset and resend block */
16:
17: /* character stuffing constants */
18:
19: #define DLESC '\251' /* block mode ESCape character */
20: #define DLRESTART '\257' /* RESTART character: sent from */
21: /* blockmode receiver BACK TO */
22: /* blockmode transmitter */
23: #define DLSTART '\253' /* START of frame character */
24: #define DLEOB '\252' /* End Of Block (frame) char. */
25: #define DLESCPED 0250 /* char escaped if it's 025x */
26: #define DLESCMASK 0770 /* mask of bits to test for esc */
27: #define DLESCBIT 0200 /* bit that is masked on escape */
28: #define DLEBMASK 0177 /* mask for other 7 bits */
29: #define DLNSTALL 3 /* number of times to stall */
30:
31: /* dlc control function codes */
32:
33: #define DCSETREC 1 /* set normal mode process id */
34: #define DCCLRREC 2 /* clear normal mode process id */
35:
36: struct dlblk { /* dlc control block */
37: struct csr *dioaddr; /* csr address */
38: char distate, dostate; /* input and output states */
39: int dicount; /* current number of chars read */
40: int docount; /* number of chars left to write*/
41: int diproc; /* process to resume after read */
42: int doproc; /* process to resume after write*/
43: char *dinext; /* next input buffer location */
44: char *donext; /* next output buffer location */
45: char *distart; /* addr of start of input buffer*/
46: char *dostart; /* addr of start of output " */
47: int dimax; /* maximum characters to read */
48: int dotot; /* total characters to write */
49: Bool diesc; /* true iff next input escaped */
50: Bool doesc; /* true iff DLESC just sent and */
51: /* next char should be escaped */
52: int dostall; /* num. of times output stalled */
53: int dpid; /* non-blockmode input process */
54: char dochar; /* non-blockmode output char. */
55: Bool dovalid; /* true iff dochar valid */
56: };
57:
58: #ifndef Ndlc
59: #define Ndlc 1
60: #endif
61:
62: extern struct dlblk dlc[];
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.