V8/usr/sys/chaos/dr11c.h
/*
* Definitions for DR11-C interface used as Chaosnet link.
*/
/*
* Structure needed for each transmitter. (member of xminfo union).
*/
struct dr11cinfo {
struct dr11c *dr_addr; /* Actual UNIBUS address */
short *dr_tptr; /* Next short in trans pkt */
short *dr_rptr; /* Next short in rcv pkt */
short dr_tcnt; /* # of shorts to send in pkt */
short dr_rcnt; /* # of shorts to rcve in pkt */
short dr_tcheck; /* Transmit block check word */
short dr_rcheck; /* Receive block check word */
char dr_tstate; /* Framing state of transmitter */
char dr_rstate; /* Framing state of receiver */
char dr_intrup; /* True during interrupt, used by
clock level to suppress checking
for hung interface if clock
interrupted a dr11c interrupt */
};
#ifdef vax
#define DR11CBASE (0176770 + UBA0_DEV) /* base UNIBUS address for first dr11-c */
#else
#define DR11CBASE 0167770 /* base UNIBUS address for first dr11-c */
#endif
#define DR11CINC -010 /* increment for next dr11-c */
/*
* Arrangement of dr11 registers
*/
struct dr11c {
short dr_csr;
short dr_obuf;
short dr_ibuf;
};
/*
* dr_csr bit definitions
*/
#define DROUT 02 /* I have sent output - set by xmitter (sets DRIRDY) */
#define DRORDY 0200 /* He has read output - interrupts (from DRIN) */
#define DROE 0100 /* Interrupt enable (allow DRORDY to interrupt me) */
#define DRIN 01 /* I have read input - set by receiver (sets DRORDY)*/
#define DRIRDY 0100000 /* He has sent input - interrupts (from DROUT) */
#define DRIE 040 /* Interrupt enable (allow DRIRDY to interrupt me) */
/*
* Definitions of framing characters and CRC constants.
*/
#define DR11CHUNG (HZ*2)
#define DRSYNC (short)0137773
#define DRESC (short)0167776
/*
* Framing states
*/
#define DRIDLE 0 /* Idle, between packets */
#define DRSYN1 1 /* After one DRSYNC sent/received */
#define DRSYN2 2 /* After two DRSYNC's sent/received */
#define DRCNT1 3 /* After count sent/received */
#define DRDATA 4 /* In the middle of data */
#define DRESC1 5 /* After DRESC escape sent/received */
#define DRCHECK 6 /* After last data word sent/received */
#define DRTDONE 7 /* After check is transmitted (transmitter only) */