xref: /original-bsd/sys/i386/i386/conf.c (revision 4b05c5c5)
1 /*-
2  * Copyright (c) 1990 The Regents of the University of California.
3  * All rights reserved.
4  *
5  * This code is derived from software contributed to Berkeley by
6  * William Jolitz.
7  *
8  * %sccs.include.386.c%
9  *
10  *	@(#)conf.c	5.2 (Berkeley) 06/23/90
11  */
12 
13 /*	conf.c	1.9	87/03/28	*/
14 
15 #include "param.h"
16 #include "systm.h"
17 #include "buf.h"
18 #include "ioctl.h"
19 #include "tty.h"
20 #include "conf.h"
21 
22 int	nulldev();
23 int	nodev();
24 
25 #include "wd.h"
26 #if NWD > 0
27 int	wdopen(),wdclose(),wdstrategy(),wdread(),wdwrite(),wdioctl();
28 int	wddump(),wdsize();
29 #else
30 #define	wdopen		nodev
31 #define	wdclose		nodev
32 #define	wdstrategy	nodev
33 #define	wdread		nodev
34 #define	wdwrite		nodev
35 #define	wdioctl		nodev
36 #define	wddump		nodev
37 #define	wdsize		0
38 #endif
39 
40 int fdstrategy(),fdopen(),fdclose(),fdread(),fdwrite();
41 
42 
43 int	swstrategy(),swread(),swwrite();
44 
45 struct bdevsw	bdevsw[] =
46 {
47 	{ wdopen,	wdclose,	wdstrategy,	wdioctl,	/*0*/
48 	  wddump,	wdsize,		0 },
49 	{ nodev,	nodev,		swstrategy,	nodev,		/*1*/
50 	  nodev,	nodev,		0 },
51 	{ fdopen,	fdclose,	fdstrategy,	nulldev,	/*2*/
52 	  nodev,	nodev,		0 },
53 };
54 int	nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]);
55 
56 int	cnopen(),cnclose(),cnread(),cnwrite(),cnioctl();
57 extern	struct tty cons;
58 
59 int	syopen(),syread(),sywrite(),syioctl(),syselect();
60 
61 int 	mmread(),mmwrite();
62 #define	mmselect	seltrue
63 
64 #include "pty.h"
65 #if NPTY > 0
66 int	ptsopen(),ptsclose(),ptsread(),ptswrite(),ptsstop();
67 int	ptcopen(),ptcclose(),ptcread(),ptcwrite(),ptcselect();
68 int	ptyioctl();
69 struct	tty pt_tty[];
70 #else
71 #define ptsopen		nodev
72 #define ptsclose	nodev
73 #define ptsread		nodev
74 #define ptswrite	nodev
75 #define ptcopen		nodev
76 #define ptcclose	nodev
77 #define ptcread		nodev
78 #define ptcwrite	nodev
79 #define ptyioctl	nodev
80 #define	pt_tty		0
81 #define	ptcselect	nodev
82 #define	ptsstop		nulldev
83 #endif
84 
85 int	logopen(),logclose(),logread(),logioctl(),logselect();
86 
87 int	ttselect(), seltrue();
88 
89 int	comopen(),comclose(),comread(),comwrite(),comioctl();
90 int	comreset();
91 extern	struct tty com_tty[];
92 
93 struct cdevsw	cdevsw[] =
94 {
95 	cnopen,		cnclose,	cnread,		cnwrite,	/*0*/
96 	cnioctl,	nulldev,	nulldev,	&cons,
97 	ttselect,	nodev,
98 	syopen,		nulldev,	syread,		sywrite,	/*1*/
99 	syioctl,	nulldev,	nulldev,	0,
100 	syselect,	nodev,
101 	nulldev,	nulldev,	mmread,		mmwrite,	/*2*/
102 	nodev,		nulldev,	nulldev,	0,
103 	mmselect,	nodev,
104 	wdopen,		wdclose,	wdread,		wdwrite,	/*3*/
105 	wdioctl,	nodev,		nulldev,	0,
106 	seltrue,	nodev,
107 	nulldev,	nulldev,	swread,		swwrite,	/*4*/
108 	nodev,		nodev,		nulldev,	0,
109 	nodev,		nodev,
110 	ptsopen,	ptsclose,	ptsread,	ptswrite,	/*5*/
111 	ptyioctl,	ptsstop,	nodev,		pt_tty,
112 	ttselect,	nodev,
113 	ptcopen,	ptcclose,	ptcread,	ptcwrite,	/*6*/
114 	ptyioctl,	nulldev,	nodev,		pt_tty,
115 	ptcselect,	nodev,
116 	logopen,	logclose,	logread,	nodev,		/*7*/
117 	logioctl,	nodev,		nulldev,	0,
118 	logselect,	nodev,
119 	comopen,	comclose,	comread,	comwrite,	/*8*/
120 	comioctl,	nodev,		comreset,	com_tty,
121 	ttselect,	nodev,
122 	fdopen,		nulldev,	fdread,		fdwrite,	/*9*/
123 	nulldev,	nodev,		nulldev,	0,
124 	seltrue,	nodev,
125 };
126 int	nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
127 
128 int	mem_no = 2; 	/* major device number of memory special file */
129 
130 /*
131  * Swapdev is a fake device implemented
132  * in sw.c used only internally to get to swstrategy.
133  * It cannot be provided to the users, because the
134  * swstrategy routine munches the b_dev and b_blkno entries
135  * before calling the appropriate driver.  This would horribly
136  * confuse, e.g. the hashing routines. Instead, /dev/drum is
137  * provided as a character (raw) device.
138  */
139 dev_t	swapdev = makedev(1, 0);
140