|
|
1.1 root 1: /* conf.c 4.4 11/12/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: #include "../conf/hp.h"
22: #if NHP > 0
23: int hpstrategy(),hpread(),hpwrite(),hpintr();
24: struct buf hptab;
25: #define HPTAB &hptab
26: #else
27: #define hpstrategy nodev
28: #define hpread nodev
29: #define hpwrite nodev
30: #define hpintr nodev
31: #define HPTAB 0
32: #endif
33:
34: #include "../conf/ht.h"
35: #if NHT > 0
36: int htopen(),htclose(),htstrategy(),htread(),htwrite();
37: struct buf httab;
38: #define HTTAB &httab
39: #else
40: #define htopen nodev
41: #define htclose nodev
42: #define htstrategy nodev
43: #define htread nodev
44: #define htwrite nodev
45: #define HTTAB 0
46: #endif
47:
48: #include "../conf/up.h"
49: #if NUP > 0
50: int upstrategy(),upread(),upwrite(),upreset();
51: struct buf uptab;
52: #define UPTAB &uptab
53: #else
54: #define upstrategy nodev
55: #define upread nodev
56: #define upwrite nodev
57: #define upreset nulldev
58: #define UPTAB 0
59: #endif
60:
61: int swstrategy(),swread(),swwrite();
62:
63: struct bdevsw bdevsw[] =
64: {
65: nulldev, nulldev, hpstrategy, HPTAB, /*0*/
66: htopen, htclose, htstrategy, HTTAB, /*1*/
67: nulldev, nulldev, upstrategy, UPTAB, /*2*/
68: /* 3 reserved for rk07 */
69: nodev, nodev, nodev, 0, /*3*/
70: nodev, nodev, swstrategy, 0, /*4*/
71: /* 5 reserved for tm03 */
72: 0,
73: };
74:
75: int cnopen(),cnclose(),cnread(),cnwrite(),cnioctl();
76:
77: #include "../conf/dh.h"
78: #if NDH11 == 0
79: #define dhopen nodev
80: #define dhclose nodev
81: #define dhread nodev
82: #define dhwrite nodev
83: #define dhioctl nodev
84: #define dhstop nodev
85: #define dhreset nulldev
86: #define dh11 0
87: #else
88: int dhopen(),dhclose(),dhread(),dhwrite(),dhioctl(),dhstop(),dhreset();
89: struct tty dh11[];
90: #endif
91:
92: int flopen(),flclose(),flread(),flwrite();
93:
94: #include "../conf/dz.h"
95: #if NDZ11 == 0
96: #define dzopen nodev
97: #define dzclose nodev
98: #define dzread nodev
99: #define dzwrite nodev
100: #define dzioctl nodev
101: #define dzstop nodev
102: #define dzreset nulldev
103: #define dz_tty 0
104: #else
105: int dzopen(),dzclose(),dzread(),dzwrite(),dzioctl(),dzstop(),dzreset();
106: struct tty dz_tty[];
107: #endif
108:
109: int syopen(),syread(),sywrite(),syioctl();
110:
111: int mmread(),mmwrite();
112:
113: #include "../conf/va.h"
114: #if NVA > 0
115: int vaopen(),vaclose(),vawrite(),vaioctl(),vareset();
116: #else
117: #define vaopen nodev
118: #define vaclose nodev
119: #define vawrite nodev
120: #define vaopen nodev
121: #define vaioctl nodev
122: #define vareset nulldev
123: #endif
124:
125: #include "../conf/vp.h"
126: #if NVP > 0
127: int vpopen(),vpclose(),vpwrite(),vpioctl(),vpreset();
128: #else
129: #define vpopen nodev
130: #define vpclose nodev
131: #define vpwrite nodev
132: #define vpioctl nodev
133: #define vpreset nulldev
134: #endif
135:
136: int mxopen(),mxclose(),mxread(),mxwrite(),mxioctl();
137: int mcread();
138: char *mcwrite();
139:
140: struct cdevsw cdevsw[] =
141: {
142: cnopen, cnclose, cnread, cnwrite, /*0*/
143: cnioctl, nulldev, nulldev, 0,
144: dzopen, dzclose, dzread, dzwrite, /*1*/
145: dzioctl, dzstop, dzreset, dz_tty,
146: syopen, nulldev, syread, sywrite, /*2*/
147: syioctl, nulldev, nulldev, 0,
148: nulldev, nulldev, mmread, mmwrite, /*3*/
149: nodev, nulldev, nulldev, 0,
150: nulldev, nulldev, hpread, hpwrite, /*4*/
151: nodev, nodev, nulldev, 0,
152: htopen, htclose, htread, htwrite, /*5*/
153: nodev, nodev, nulldev, 0,
154: vpopen, vpclose, nodev, vpwrite, /*6*/
155: vpioctl, nulldev, vpreset, 0,
156: nulldev, nulldev, swread, swwrite, /*7*/
157: nodev, nodev, nulldev, 0,
158: flopen, flclose, flread, flwrite, /*8*/
159: nodev, nodev, nulldev, 0,
160: mxopen, mxclose, mxread, mxwrite, /*9*/
161: mxioctl, nulldev, nulldev, 0,
162: vaopen, vaclose, nodev, vawrite, /*10*/
163: vaioctl, nulldev, vareset, 0,
164: /* 11 reserved for rk07 */
165: nodev, nodev, nodev, nodev, /*11*/
166: nodev, nodev, nulldev, 0,
167: dhopen, dhclose, dhread, dhwrite, /*12*/
168: dhioctl, dhstop, dhreset, dh11,
169: nulldev, nulldev, upread, upwrite, /*13*/
170: nodev, nodev, upreset, 0,
171: /* 14 reserved for tm03 */
172: /* 15 reserved for lp11 */
173: 0,
174: };
175:
176: int ttyopen(),ttread(),nullioctl(),ttstart();
177: char *ttwrite();
178: int ttyinput(),ttyrend();
179: int bkopen(),bkclose(),bkread(),bkinput(),bkioctl();
180: int ntyopen(),ntyclose(),ntread();
181: char *ntwrite();
182: int ntyinput(),ntyrend();
183:
184: struct linesw linesw[] =
185: {
186: ttyopen, nulldev, ttread, ttwrite, nullioctl,
187: ttyinput, ttyrend, nulldev, nulldev, nulldev, /* 0 */
188: bkopen, bkclose, bkread, ttwrite, bkioctl,
189: bkinput, nodev, nulldev, ttstart, nulldev, /* 1 */
190: ntyopen, ntyclose, ntread, ntwrite, nullioctl,
191: ntyinput, ntyrend, nulldev, ttstart, nulldev, /* 2 */
192: mxopen, mxclose, mcread, mcwrite, mxioctl,
193: nulldev, nulldev, nulldev, nulldev, nulldev, /* 3 */
194: 0
195: };
196:
197: int nldisp = 3;
198:
199: struct buf buf[NBUF];
200: struct file file[NFILE];
201: struct inode inode[NINODE];
202: struct text text[NTEXT];
203: struct proc proc[NPROC];
204: struct buf bfreelist;
205: struct buf bswlist; /* free list of swap headers */
206: struct buf *bclnlist; /* header for list of cleaned pages */
207: struct acct acctbuf;
208: struct inode *acctp;
209:
210: int mem_no = 3; /* major device number of memory special file */
211:
212: /*
213: * Swapdev is a fake device implemented
214: * in sw.c used only internally to get to swstrategy.
215: * It cannot be provided to the users, because the
216: * swstrategy routine munches the b_dev and b_blkno entries
217: * before calling the appropriate driver. This would horribly
218: * confuse, e.g. the hashing routines as well as the placement
219: * of the block on the d_tab chains. Instead, /dev/drum is
220: * provided as a character (raw) device.
221: */
222: dev_t swapdev = makedev(4, 0);
223:
224: extern struct user u;
225:
226: /*
227: * This is stupid, and will go away soon.
228: */
229: int mbanum[] = { /* mba number of major device */
230: 0, /* disk */
231: 1, /* tape */
232: 9999999, /* unused */
233: 9999999, /* unused */
234: 0, /* disk, raw */
235: 1, /* tape, raw */
236: };
237:
238: extern struct pte MBA0map[], MBA1map[];
239:
240: struct mba_info mbainfo[] = {
241: MBA0, PHYSMBA0, MBA0map,
242: MBA1, PHYSMBA1, MBA1map
243: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.