1: /*
2: * Copyright (c) 1982, 1986 Regents of the University of California.
3: * All rights reserved. The Berkeley software License Agreement
4: * specifies the terms and conditions for redistribution.
5: *
6: * @(#)if_dmc.h 7.1 (Berkeley) 6/5/86
7: */
8:
9: /*
10: * DMC-11 Interface
11: */
12:
13: struct dmcdevice {
14: char bsel0;
15: char bsel1;
16: char bsel2;
17: char bsel3;
18: short sel4;
19: short sel6;
20: };
21:
22: /*
23: * dmc software packet encapsulation. This allows the dmc
24: * link to be multiplexed among several protocols.
25: * The first eight bytes of the dmc header are garbage,
26: * since on a vax the uba has been known to mung these
27: * bytes. The next two bytes encapsulate packet type.
28: */
29: struct {
30: char dmc_buf[8]; /* space for uba on vax */
31: short dmc_type; /* encapsulate packet type */
32: };
33:
34: /* packet types */
35: #define DMC_IPTYPE 1
36: #define DMC_TRAILER 2
37: #define DMC_NTRAILER 16
38:
39: /*
40: * DMCMTU includes space for data (1024) +
41: * protocol header (256) + trailer descriptor (4).
42: * The software link encapsulation header (dmc_header)
43: * is handled separately.
44: */
45: #define DMCMTU 1284
46:
47: #define RDYSCAN 16 /* loop delay for RDYI after RQI */
48:
49: /* defines for bsel0 */
50: #define DMC_BACCI 0
51: #define DMC_CNTLI 1
52: #define DMC_PERR 2
53: #define DMC_BASEI 3
54: #define DMC_WRITE 0 /* transmit block */
55: #define DMC_READ 4 /* read block */
56: #define DMC_RQI 0040 /* port request bit */
57: #define DMC_IEI 0100 /* enable input interrupts */
58: #define DMC_RDYI 0200 /* port ready */
59: #define DMC0BITS "\10\8RDI\7IEI\6RQI"
60:
61: /* defines for bsel1 */
62: #define DMC_MCLR 0100 /* DMC11 Master Clear */
63: #define DMC_RUN 0200 /* clock running */
64: #define DMC1BITS "\10\8RUN\7MCLR"
65:
66: /* defines for bsel2 */
67: #define DMC_BACCO 0
68: #define DMC_CNTLO 1
69: #define DMC_OUX 0 /* transmit block */
70: #define DMC_OUR 4 /* read block */
71: #define DMC_IEO 0100 /* enable output interrupts */
72: #define DMC_RDYO 0200 /* port available */
73: #define DMC2BITS "\10\8RDO\7IEO"
74:
75: /* defines for CNTLI mode */
76: #define DMC_HDPLX 02000 /* half duplex DDCMP operation */
77: #define DMC_SEC 04000 /* half duplex secondary station */
78: #define DMC_MAINT 00400 /* enter maintenance mode */
79:
80: /* defines for BACCI/O and BASEI mode */
81: #define DMC_XMEM 0140000 /* xmem bit position */
82: #define DMC_CCOUNT 0037777 /* character count mask */
83: #define DMC_RESUME 0002000 /* resume (BASEI only) */
84:
85: /* defines for CNTLO */
86: #define DMC_CNTMASK 01777
87:
88: #define DMC_DATACK 01
89: #define DMC_TIMEOUT 02
90: #define DMC_NOBUFS 04
91: #define DMC_MAINTREC 010
92: #define DMC_LOSTDATA 020
93: #define DMC_DISCONN 0100
94: #define DMC_START 0200
95: #define DMC_NEXMEM 0400
96: #define DMC_ERROR 01000
97:
98: #define DMC_FATAL (DMC_ERROR|DMC_NEXMEM|DMC_START|DMC_LOSTDATA|DMC_MAINTREC)
99: #define CNTLO_BITS \
100: "\10\12ERROR\11NEXMEM\10START\7DISC\5LSTDATA\4MAINT\3NOBUF\2TIMEO\1DATACK"
Defined struct's
defined in line
29;
never used
Defined macros