This source file includes following definitions.
- iskmemdev
- iszerodev
- getnulldev
- dev_rawpart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #include <sys/param.h>
34 #include <sys/systm.h>
35 #include <sys/buf.h>
36 #include <sys/device.h>
37 #include <sys/disklabel.h>
38 #include <sys/ioctl.h>
39 #include <sys/tty.h>
40 #include <sys/vnode.h>
41
42 #include <machine/conf.h>
43
44 #include "inet.h"
45
46 #include "wd.h"
47 bdev_decl(wd);
48 #include "fdc.h"
49 #include "fd.h"
50 bdev_decl(fd);
51 #include "sd.h"
52 #include "st.h"
53 #include "cd.h"
54 #include "uk.h"
55 #include "mcd.h"
56 bdev_decl(mcd);
57 #include "vnd.h"
58 #include "ccd.h"
59 #include "raid.h"
60 #include "rd.h"
61
62 struct bdevsw bdevsw[] =
63 {
64 bdev_disk_init(NWD,wd),
65 bdev_swap_init(1,sw),
66 bdev_disk_init(NFD,fd),
67 bdev_notdef(),
68 bdev_disk_init(NSD,sd),
69 bdev_tape_init(NST,st),
70 bdev_disk_init(NCD,cd),
71 bdev_disk_init(NMCD,mcd),
72 bdev_lkm_dummy(),
73 bdev_lkm_dummy(),
74 bdev_lkm_dummy(),
75 bdev_lkm_dummy(),
76 bdev_lkm_dummy(),
77 bdev_lkm_dummy(),
78 bdev_disk_init(NVND,vnd),
79 bdev_notdef(),
80 bdev_disk_init(NCCD,ccd),
81 bdev_disk_init(NRD,rd),
82 bdev_notdef(),
83 bdev_disk_init(NRAID,raid),
84 };
85 int nblkdev = sizeof(bdevsw) / sizeof(bdevsw[0]);
86
87
88 #define cdev_pc_init(c,n) { \
89 dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \
90 dev_init(c,n,write), dev_init(c,n,ioctl), dev_init(c,n,stop), \
91 dev_init(c,n,tty), ttpoll, dev_init(c,n,mmap), D_TTY }
92
93
94 #define cdev_joy_init(c,n) { \
95 dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \
96 (dev_type_write((*))) enodev, dev_init(c,n,ioctl), \
97 (dev_type_stop((*))) enodev, 0, seltrue, \
98 (dev_type_mmap((*))) enodev }
99
100
101 #define cdev_ocis_init(c,n) { \
102 dev_init(c,n,open), dev_init(c,n,close), (dev_type_read((*))) enodev, \
103 (dev_type_write((*))) enodev, dev_init(c,n,ioctl), \
104 (dev_type_stop((*))) enodev, 0, dev_init(c,n,poll), \
105 (dev_type_mmap((*))) enodev, 0 }
106
107
108 #define cdev_nvram_init(c,n) { \
109 dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \
110 (dev_type_write((*))) enodev, (dev_type_ioctl((*))) enodev, \
111 (dev_type_stop((*))) enodev, 0, seltrue, \
112 (dev_type_mmap((*))) enodev, 0 }
113
114
115 #define mmread mmrw
116 #define mmwrite mmrw
117 cdev_decl(mm);
118 cdev_decl(wd);
119 #include "systrace.h"
120 #include "bio.h"
121 #include "pty.h"
122 #include "com.h"
123 #include "pccom.h"
124 cdev_decl(com);
125 cdev_decl(fd);
126 #include "ss.h"
127 #include "lpt.h"
128 cdev_decl(lpt);
129 #include "ch.h"
130 #include "bpfilter.h"
131 #if 0
132 #include "pcmcia.h"
133 cdev_decl(pcmcia);
134 #endif
135 #include "spkr.h"
136 cdev_decl(spkr);
137 #if 0
138 #include "mms.h"
139 cdev_decl(mms);
140 #include "lms.h"
141 cdev_decl(lms);
142 #include "opms.h"
143 cdev_decl(pms);
144 #endif
145 #include "cy.h"
146 cdev_decl(cy);
147 cdev_decl(mcd);
148 #include "tun.h"
149 #include "audio.h"
150 #include "midi.h"
151 #include "sequencer.h"
152 cdev_decl(music);
153 #include "joy.h"
154 #include "acpi.h"
155 #include "apm.h"
156 #include "bthub.h"
157 #include "pctr.h"
158 #include "bios.h"
159 #include "iop.h"
160 #ifdef XFS
161 #include <xfs/nxfs.h>
162 cdev_decl(xfs_dev);
163 #endif
164 #include "bktr.h"
165 #include "ksyms.h"
166 #include "usb.h"
167 #include "uhid.h"
168 #include "ugen.h"
169 #include "ulpt.h"
170 #include "urio.h"
171 #include "ucom.h"
172 #include "uscanner.h"
173 #include "cz.h"
174 cdev_decl(cztty);
175 #include "radio.h"
176 #include "gpr.h"
177 #include "nvram.h"
178 cdev_decl(nvram);
179
180
181 #if (NCOM > 0) && (NPCCOM > 0)
182 #error com and pccom are mutually exclusive. Sorry.
183 #endif
184
185 #include "wsdisplay.h"
186 #include "wskbd.h"
187 #include "wsmouse.h"
188 #include "wsmux.h"
189
190 #ifdef USER_PCICONF
191 #include "pci.h"
192 cdev_decl(pci);
193 #endif
194
195 #include "pf.h"
196 #include "hotplug.h"
197 #include "gpio.h"
198
199 struct cdevsw cdevsw[] =
200 {
201 cdev_cn_init(1,cn),
202 cdev_ctty_init(1,ctty),
203 cdev_mm_init(1,mm),
204 cdev_disk_init(NWD,wd),
205 cdev_swap_init(1,sw),
206 cdev_tty_init(NPTY,pts),
207 cdev_ptc_init(NPTY,ptc),
208 cdev_log_init(1,log),
209 #if NPCCOM > 0
210 cdev_tty_init(NPCCOM,com),
211 #else
212 cdev_tty_init(NCOM,com),
213 #endif
214 cdev_disk_init(NFD,fd),
215 cdev_notdef(),
216 cdev_notdef(),
217 cdev_wsdisplay_init(NWSDISPLAY,
218 wsdisplay),
219 cdev_disk_init(NSD,sd),
220 cdev_tape_init(NST,st),
221 cdev_disk_init(NCD,cd),
222 cdev_lpt_init(NLPT,lpt),
223 cdev_ch_init(NCH,ch),
224 cdev_disk_init(NCCD,ccd),
225 cdev_ss_init(NSS,ss),
226 cdev_uk_init(NUK,uk),
227 cdev_apm_init(NAPM,apm),
228 cdev_fd_init(1,filedesc),
229 cdev_bpftun_init(NBPFILTER,bpf),
230 cdev_notdef(),
231 #if 0
232 cdev_ocis_init(NPCMCIA,pcmcia),
233 #else
234 cdev_notdef(),
235 #endif
236 cdev_joy_init(NJOY,joy),
237 cdev_spkr_init(NSPKR,spkr),
238 cdev_lkm_init(NLKM,lkm),
239 cdev_lkm_dummy(),
240 cdev_lkm_dummy(),
241 cdev_lkm_dummy(),
242 cdev_lkm_dummy(),
243 cdev_lkm_dummy(),
244 cdev_lkm_dummy(),
245 cdev_notdef(),
246 cdev_notdef(),
247 cdev_notdef(),
248 cdev_tty_init(NCY,cy),
249 cdev_disk_init(NMCD,mcd),
250 cdev_bpftun_init(NTUN,tun),
251 cdev_disk_init(NVND,vnd),
252 cdev_audio_init(NAUDIO,audio),
253 #ifdef COMPAT_SVR4
254 cdev_svr4_net_init(1,svr4_net),
255 #else
256 cdev_notdef(),
257 #endif
258 cdev_notdef(),
259 cdev_random_init(1,random),
260 cdev_ocis_init(NPCTR,pctr),
261 cdev_disk_init(NRD,rd),
262 cdev_ocis_init(NBIOS,bios),
263 cdev_bktr_init(NBKTR,bktr),
264 cdev_ksyms_init(NKSYMS,ksyms),
265 #ifdef XFS
266 cdev_xfs_init(NXFS,xfs_dev),
267 #else
268 cdev_notdef(),
269 #endif
270 cdev_midi_init(NMIDI,midi),
271 cdev_midi_init(NSEQUENCER,sequencer),
272 cdev_disk_init(NRAID,raid),
273 cdev_notdef(),
274
275 cdev_notdef(),
276 cdev_notdef(),
277 cdev_notdef(),
278 cdev_notdef(),
279 cdev_notdef(),
280
281 cdev_usb_init(NUSB,usb),
282 cdev_usbdev_init(NUHID,uhid),
283 cdev_usbdev_init(NUGEN,ugen),
284 cdev_ulpt_init(NULPT,ulpt),
285 cdev_urio_init(NURIO,urio),
286 cdev_tty_init(NUCOM,ucom),
287 cdev_mouse_init(NWSKBD, wskbd),
288 cdev_mouse_init(NWSMOUSE,
289 wsmouse),
290 cdev_mouse_init(NWSMUX, wsmux),
291 cdev_crypto_init(NCRYPTO,crypto),
292 cdev_tty_init(NCZ,cztty),
293 #ifdef USER_PCICONF
294 cdev_pci_init(NPCI,pci),
295 #else
296 cdev_notdef(),
297 #endif
298 cdev_pf_init(NPF,pf),
299 cdev_notdef(),
300 cdev_iop_init(NIOP,iop),
301 cdev_radio_init(NRADIO, radio),
302 cdev_usbdev_init(NUSCANNER,uscanner),
303 cdev_systrace_init(NSYSTRACE,systrace),
304 cdev_bio_init(NBIO,bio),
305 cdev_ch_init(NGPR,gpr),
306 cdev_ptm_init(NPTY,ptm),
307 cdev_hotplug_init(NHOTPLUG,hotplug),
308 cdev_gpio_init(NGPIO,gpio),
309 cdev_nvram_init(NNVRAM,nvram),
310 cdev_acpi_init(NACPI,acpi),
311 cdev_bthub_init(NBTHUB,bthub),
312 };
313 int nchrdev = sizeof(cdevsw) / sizeof(cdevsw[0]);
314
315 int mem_no = 2;
316
317
318
319
320
321
322
323
324
325
326 dev_t swapdev = makedev(1, 0);
327
328
329
330
331 int
332 iskmemdev(dev_t dev)
333 {
334 return (major(dev) == mem_no && (minor(dev) < 2 || minor(dev) == 14));
335 }
336
337
338
339
340 int
341 iszerodev(dev_t dev)
342 {
343 return (major(dev) == mem_no && minor(dev) == 12);
344 }
345
346 dev_t
347 getnulldev(void)
348 {
349 return makedev(mem_no, 2);
350 }
351
352 int chrtoblktbl[] = {
353
354
355 NODEV,
356 NODEV,
357 NODEV,
358 0,
359 NODEV,
360 NODEV,
361 NODEV,
362 NODEV,
363 NODEV,
364 2,
365 3,
366 15,
367 NODEV,
368 4,
369 5,
370 6,
371 NODEV,
372 NODEV,
373 16,
374 NODEV,
375 NODEV,
376 NODEV,
377 NODEV,
378 NODEV,
379 18,
380 NODEV,
381 NODEV,
382 NODEV,
383 NODEV,
384 NODEV,
385 NODEV,
386 NODEV,
387 NODEV,
388 NODEV,
389 NODEV,
390 NODEV,
391 NODEV,
392 NODEV,
393 NODEV,
394 7,
395 NODEV,
396 14,
397 NODEV,
398 NODEV,
399 NODEV,
400 NODEV,
401 NODEV,
402 17,
403 NODEV,
404 NODEV,
405 NODEV,
406 NODEV,
407 NODEV,
408 NODEV,
409 19,
410 };
411 int nchrtoblktbl = sizeof(chrtoblktbl) / sizeof(chrtoblktbl[0]);
412
413
414
415
416
417
418
419
420
421 int findblkmajor(struct device *dv);
422 dev_t dev_rawpart(struct device *);
423
424 dev_t
425 dev_rawpart(struct device *dv)
426 {
427 int majdev;
428
429 majdev = findblkmajor(dv);
430
431 switch (majdev) {
432
433 case 0:
434 case 4:
435 return (MAKEDISKDEV(majdev, dv->dv_unit, RAW_PART));
436 break;
437 default:
438 ;
439 }
440
441 return (NODEV);
442 }
443
444
445
446
447
448
449
450 #include <dev/cons.h>
451
452 cons_decl(com);
453 cons_decl(ws);
454
455 struct consdev constab[] = {
456 #if NWSDISPLAY > 0
457 cons_init(ws),
458 #endif
459 #if NCOM + NPCCOM > 0
460 cons_init(com),
461 #endif
462 { 0 },
463 };