update copyright for distribution
[unix-history] / usr / src / sys / vax / if / if_dmc.h
CommitLineData
da7c5cc6 1/*
0880b18e 2 * Copyright (c) 1982, 1986 Regents of the University of California.
da7c5cc6
KM
3 * All rights reserved. The Berkeley software License Agreement
4 * specifies the terms and conditions for redistribution.
5 *
742bd769 6 * @(#)if_dmc.h 7.3 (Berkeley) %G%
da7c5cc6 7 */
c9fd255c
BJ
8
9/*
10 * DMC-11 Interface
11 */
12
13struct dmcdevice {
e2f9ee06
MK
14 char bsel0;
15 char bsel1;
16 char bsel2;
17 char bsel3;
18 short sel4;
19 short sel6;
c9fd255c
BJ
20};
21
e2f9ee06
MK
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 */
29struct dmc_header {
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.
bfac8224 44 #define DMCMTU 1284
e2f9ee06 45 */
bfac8224 46#define DMCMTU 1500
c9fd255c 47
12ef2795 48#define RDYSCAN 16 /* loop delay for RDYI after RQI */
c9fd255c
BJ
49
50/* defines for bsel0 */
51#define DMC_BACCI 0
52#define DMC_CNTLI 1
53#define DMC_PERR 2
54#define DMC_BASEI 3
55#define DMC_WRITE 0 /* transmit block */
56#define DMC_READ 4 /* read block */
57#define DMC_RQI 0040 /* port request bit */
58#define DMC_IEI 0100 /* enable input interrupts */
59#define DMC_RDYI 0200 /* port ready */
742bd769 60#define DMC0BITS "\10\10RDI\7IEI\6RQI"
c9fd255c
BJ
61
62/* defines for bsel1 */
63#define DMC_MCLR 0100 /* DMC11 Master Clear */
64#define DMC_RUN 0200 /* clock running */
742bd769 65#define DMC1BITS "\10\10RUN\7MCLR"
c9fd255c
BJ
66
67/* defines for bsel2 */
68#define DMC_BACCO 0
69#define DMC_CNTLO 1
70#define DMC_OUX 0 /* transmit block */
71#define DMC_OUR 4 /* read block */
72#define DMC_IEO 0100 /* enable output interrupts */
73#define DMC_RDYO 0200 /* port available */
742bd769 74#define DMC2BITS "\10\10RDO\7IEO"
c9fd255c
BJ
75
76/* defines for CNTLI mode */
77#define DMC_HDPLX 02000 /* half duplex DDCMP operation */
78#define DMC_SEC 04000 /* half duplex secondary station */
79#define DMC_MAINT 00400 /* enter maintenance mode */
80
81/* defines for BACCI/O and BASEI mode */
82#define DMC_XMEM 0140000 /* xmem bit position */
83#define DMC_CCOUNT 0037777 /* character count mask */
84#define DMC_RESUME 0002000 /* resume (BASEI only) */
85
86/* defines for CNTLO */
87#define DMC_CNTMASK 01777
ad6dfeed
TF
88
89#define DMC_DATACK 01
90#define DMC_TIMEOUT 02
91#define DMC_NOBUFS 04
92#define DMC_MAINTREC 010
93#define DMC_LOSTDATA 020
94#define DMC_DISCONN 0100
95#define DMC_START 0200
96#define DMC_NEXMEM 0400
97#define DMC_ERROR 01000
98
99#define DMC_FATAL (DMC_ERROR|DMC_NEXMEM|DMC_START|DMC_LOSTDATA|DMC_MAINTREC)
100#define CNTLO_BITS \
101 "\10\12ERROR\11NEXMEM\10START\7DISC\5LSTDATA\4MAINT\3NOBUF\2TIMEO\1DATACK"