|
|
1.1 root 1: /*
2: * Definitions for DR11-C interface used as Chaosnet link.
3: */
4:
5: /*
6: * Structure needed for each transmitter. (member of xminfo union).
7: */
8: struct dr11cinfo {
9: struct dr11c *dr_addr; /* Actual UNIBUS address */
10: short *dr_tptr; /* Next short in trans pkt */
11: short *dr_rptr; /* Next short in rcv pkt */
12: short dr_tcnt; /* # of shorts to send in pkt */
13: short dr_rcnt; /* # of shorts to rcve in pkt */
14: short dr_tcheck; /* Transmit block check word */
15: short dr_rcheck; /* Receive block check word */
16: char dr_tstate; /* Framing state of transmitter */
17: char dr_rstate; /* Framing state of receiver */
18: char dr_intrup; /* True during interrupt, used by
19: clock level to suppress checking
20: for hung interface if clock
21: interrupted a dr11c interrupt */
22: };
23:
24: #ifdef vax
25: #define DR11CBASE (0176770 + UBA0_DEV) /* base UNIBUS address for first dr11-c */
26: #else
27: #define DR11CBASE 0167770 /* base UNIBUS address for first dr11-c */
28: #endif
29: #define DR11CINC -010 /* increment for next dr11-c */
30: /*
31: * Arrangement of dr11 registers
32: */
33: struct dr11c {
34: short dr_csr;
35: short dr_obuf;
36: short dr_ibuf;
37: };
38: /*
39: * dr_csr bit definitions
40: */
41: #define DROUT 02 /* I have sent output - set by xmitter (sets DRIRDY) */
42: #define DRORDY 0200 /* He has read output - interrupts (from DRIN) */
43: #define DROE 0100 /* Interrupt enable (allow DRORDY to interrupt me) */
44:
45: #define DRIN 01 /* I have read input - set by receiver (sets DRORDY)*/
46: #define DRIRDY 0100000 /* He has sent input - interrupts (from DROUT) */
47: #define DRIE 040 /* Interrupt enable (allow DRIRDY to interrupt me) */
48:
49: /*
50: * Definitions of framing characters and CRC constants.
51: */
52: #define DR11CHUNG (HZ*2)
53: #define DRSYNC (short)0137773
54: #define DRESC (short)0167776
55: /*
56: * Framing states
57: */
58: #define DRIDLE 0 /* Idle, between packets */
59: #define DRSYN1 1 /* After one DRSYNC sent/received */
60: #define DRSYN2 2 /* After two DRSYNC's sent/received */
61: #define DRCNT1 3 /* After count sent/received */
62: #define DRDATA 4 /* In the middle of data */
63: #define DRESC1 5 /* After DRESC escape sent/received */
64: #define DRCHECK 6 /* After last data word sent/received */
65: #define DRTDONE 7 /* After check is transmitted (transmitter only) */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.