xref: /original-bsd/sys/vax/vax/conf.c (revision d25e1985)
1 /*	conf.c	3.12	07/29/80	*/
2 
3 #include "../h/param.h"
4 #include "../h/systm.h"
5 #include "../h/buf.h"
6 #include "../h/tty.h"
7 #include "../h/conf.h"
8 #include "../h/text.h"
9 #include "../h/dir.h"
10 #include "../h/user.h"
11 #include "../h/proc.h"
12 #include "../h/file.h"
13 #include "../h/inode.h"
14 #include "../h/acct.h"
15 #include "../h/pte.h"
16 #include "../h/mba.h"
17 
18 int	nulldev();
19 int	nodev();
20 
21 int	hpstrategy(),hpread(),hpwrite(),hpintr();
22 struct	buf	hptab;
23 
24 int	htopen(),htclose(),htstrategy(),htread(),htwrite();
25 struct	buf	httab;
26 
27 int	upstrategy(),upread(),upwrite(),upreset();
28 struct	buf	uptab;
29 
30 int	swstrategy(),swread(),swwrite();
31 
32 struct bdevsw	bdevsw[] =
33 {
34 	nulldev,	nulldev,	hpstrategy,	&hptab,		/*0*/
35 	htopen,		htclose,	htstrategy,	&httab,		/*1*/
36 	nulldev,	nulldev,	upstrategy,	&uptab,		/*2*/
37 	nodev,		nodev,		nodev,		0,		/*3*/
38 	nodev,		nodev,		swstrategy,	0,		/*4*/
39 	0,
40 };
41 
42 int	cnopen(),cnclose(),cnread(),cnwrite(),cnioctl();
43 
44 int	dhopen(),dhclose(),dhread(),dhwrite(),dhioctl(),dhstop(),dhreset();
45 struct	tty dh11[];
46 
47 int	flopen(),flclose(),flread(),flwrite();
48 
49 int	dzopen(),dzclose(),dzread(),dzwrite(),dzioctl(),dzstop(),dzreset();
50 struct	tty dz_tty[];
51 
52 int	syopen(),syread(),sywrite(),syioctl();
53 
54 int 	mmread(),mmwrite();
55 
56 int	vpopen(),vpclose(),vpwrite(),vpioctl(),vpreset();
57 int	vaopen(),vaclose(),vawrite(),vaioctl(),vareset();
58 
59 int	mxopen(),mxclose(),mxread(),mxwrite(),mxioctl();
60 int	mcread();
61 char	*mcwrite();
62 
63 struct cdevsw	cdevsw[] =
64 {
65 	cnopen,		cnclose,	cnread,		cnwrite,	/*0*/
66 	cnioctl,	nulldev,	nulldev,	0,
67 	dzopen,		dzclose,	dzread,		dzwrite,	/*1*/
68 	dzioctl,	dzstop,		dzreset,	dz_tty,
69 	syopen,		nulldev,	syread,		sywrite,	/*2*/
70 	syioctl,	nulldev,	nulldev,	0,
71 	nulldev,	nulldev,	mmread,		mmwrite,	/*3*/
72 	nodev,		nulldev,	nulldev,	0,
73 	nulldev,	nulldev,	hpread,		hpwrite,	/*4*/
74 	nodev,		nodev,		nulldev,	0,
75 	htopen,		htclose,	htread,		htwrite,	/*5*/
76 	nodev,		nodev,		nulldev,	0,
77 	vpopen,		vpclose,	nodev,		vpwrite,	/*6*/
78 	vpioctl,	nulldev,	vpreset,	0,
79 	nulldev,	nulldev,	swread,		swwrite,	/*7*/
80 	nodev,		nodev,		nulldev,	0,
81 	flopen,		flclose,	flread,		flwrite,	/*8*/
82 	nodev,		nodev,		nulldev,	0,
83 	mxopen,		mxclose,	mxread,		mxwrite,	/*9*/
84 	mxioctl,	nulldev,	nulldev,	0,
85 	vaopen,		vaclose,	nodev,		vawrite,	/*10*/
86 	vaioctl,	nulldev,	vareset,	0,
87 	nodev,		nodev,		nodev,		nodev,		/*11*/
88 	nodev,		nodev,		nulldev,	0,
89 	dhopen,		dhclose,	dhread,		dhwrite,	/*12*/
90 	dhioctl,	dhstop,		dhreset,	dh11,
91 	nulldev,	nulldev,	upread,		upwrite,	/*13*/
92 	nodev,		nodev,		upreset,	0,
93 	0,
94 };
95 
96 int	ttyopen(),ttread(),nullioctl(),ttstart();
97 char	*ttwrite();
98 int	ttyinput(),ttyrend();
99 int	bkopen(),bkclose(),bkread(),bkinput(),bkioctl();
100 int	ntyopen(),ntyclose(),ntread();
101 char	*ntwrite();
102 int	ntyinput(),ntyrend();
103 
104 struct	linesw linesw[] =
105 {
106 	ttyopen, nulldev, ttread, ttwrite, nullioctl,
107 	ttyinput, ttyrend, nulldev, nulldev, nulldev,	/* 0 */
108 	bkopen, bkclose, bkread, ttwrite, bkioctl,
109 	bkinput, nodev, nulldev, ttstart, nulldev,	/* 1 */
110 	ntyopen, ntyclose, ntread, ntwrite, nullioctl,
111 	ntyinput, ntyrend, nulldev, ttstart, nulldev,	/* 2 */
112 	mxopen, mxclose, mcread, mcwrite, mxioctl,
113 	nulldev, nulldev, nulldev, nulldev, nulldev,	/* 3 */
114 	0
115 };
116 
117 int	nldisp = 3;
118 
119 struct	buf	buf[NBUF];
120 struct	file	file[NFILE];
121 struct	inode	inode[NINODE];
122 struct	text	text[NTEXT];
123 struct	proc	proc[NPROC];
124 struct	buf	bfreelist;
125 struct	buf	bswlist;	/* free list of swap headers */
126 struct	buf	*bclnlist;	/* header for list of cleaned pages */
127 struct	acct	acctbuf;
128 struct	inode	*acctp;
129 
130 int	mem_no = 3; 	/* major device number of memory special file */
131 
132 /*
133  * Swapdev is a fake device implemented
134  * in sw.c used only internally to get to swstrategy.
135  * It cannot be provided to the users, because the
136  * swstrategy routine munches the b_dev and b_blkno entries
137  * before calling the appropriate driver.  This would horribly
138  * confuse, e.g. the hashing routines as well as the placement
139  * of the block on the d_tab chains.  Instead, /dev/drum is
140  * provided as a character (raw) device.
141  */
142 dev_t	swapdev = makedev(4, 0);
143 
144 
145 extern struct user u;
146 
147 int	mbanum[] = {	/* mba number of major device */
148 	0,		/* disk */
149 	1,		/* tape */
150 	9999999,	/* unused */
151 	9999999,	/* unused */
152 	0,		/* disk, raw */
153 	1,		/* tape, raw */
154 };
155 
156 extern	struct pte MBA0map[], MBA1map[];
157 
158 struct	mba_info mbainfo[] = {
159 	MBA0,	PHYSMBA0,	MBA0map,
160 	MBA1,	PHYSMBA1,	MBA1map
161 };
162