|
|
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.