xref: /csrg-svn/sys/tahoe/tahoe/conf.c (revision 34407)
1*34407Skarels /*
2*34407Skarels  * Copyright (c) 1988 Regents of the University of California.
3*34407Skarels  * All rights reserved.
4*34407Skarels  *
5*34407Skarels  * Redistribution and use in source and binary forms are permitted
6*34407Skarels  * provided that this notice is preserved and that due credit is given
7*34407Skarels  * to the University of California at Berkeley. The name of the University
8*34407Skarels  * may not be used to endorse or promote products derived from this
9*34407Skarels  * software without specific prior written permission. This software
10*34407Skarels  * is provided ``as is'' without express or implied warranty.
11*34407Skarels  *
12*34407Skarels  *	@(#)conf.c	7.1 (Berkeley) 05/21/88
13*34407Skarels  */
1424042Ssam 
1525678Ssam #include "param.h"
1625678Ssam #include "systm.h"
1725678Ssam #include "buf.h"
1825678Ssam #include "ioctl.h"
1925678Ssam #include "tty.h"
2025678Ssam #include "conf.h"
2124042Ssam 
2234291Skarels int nulldev(), nodev(), rawread(), rawwrite(), swstrategy();
2324042Ssam 
2429557Ssam #include "dk.h"
2524042Ssam #if NVD > 0
2630675Skarels int	vdopen(),vdclose(),vdstrategy(),vdread(),vdwrite(),vdioctl();
2730675Skarels int	vddump(),vdsize();
2824042Ssam #else
2924042Ssam #define	vdopen		nodev
3030675Skarels #define	vdclose		nodev
3124042Ssam #define	vdstrategy	nodev
3224042Ssam #define	vdread		nodev
3324042Ssam #define	vdwrite		nodev
3430529Skarels #define	vdioctl		nodev
3524042Ssam #define	vddump		nodev
3624042Ssam #define	vdsize		0
3724042Ssam #endif
3824042Ssam 
3925981Ssam #include "yc.h"
4024042Ssam #if NCY > 0
4134291Skarels int	cyopen(),cyclose(),cystrategy(),cyread(),cywrite(),cydump();
4234291Skarels int	cyioctl(),cyreset();
4324042Ssam #else
4424042Ssam #define	cyopen		nodev
4524042Ssam #define	cyclose		nodev
4624042Ssam #define	cystrategy	nodev
4724042Ssam #define	cyread		nodev
4824042Ssam #define	cywrite		nodev
4924042Ssam #define	cydump		nodev
5024042Ssam #define	cyioctl		nodev
5124042Ssam #define	cyreset		nulldev
5224042Ssam #endif
5324042Ssam 
5424042Ssam struct bdevsw	bdevsw[] =
5524042Ssam {
5629557Ssam 	{ nodev,	nulldev,	nodev,		nodev,		/*0*/
5730675Skarels 	  nodev,	0,		0 },
5830675Skarels 	{ vdopen,	vdclose,	vdstrategy,	vdioctl,	/*1*/
5930675Skarels 	  vddump,	vdsize,		0 },
6029557Ssam 	{ nodev,	nulldev,	nodev,		nodev,		/*2*/
6130675Skarels 	  nodev,	0,		0 },
6230675Skarels 	{ cyopen,	cyclose,	cystrategy,	cyioctl,	/*3*/
6330675Skarels 	  cydump,	0,		B_TAPE },
6424042Ssam 	{ nodev,	nodev,		swstrategy,	nodev,		/*4*/
6530675Skarels 	  nodev,	0,		0 },
6624042Ssam };
6724042Ssam int	nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]);
6824042Ssam 
6924042Ssam int	cnopen(),cnclose(),cnread(),cnwrite(),cnioctl();
7025678Ssam extern	struct tty cons;
7124042Ssam 
7224042Ssam #include "vx.h"
7324042Ssam #if NVX == 0
7424042Ssam #define	vxopen	nodev
7524042Ssam #define	vxclose	nodev
7624042Ssam #define	vxread	nodev
7724042Ssam #define	vxwrite	nodev
7824042Ssam #define	vxioctl	nodev
7924042Ssam #define	vxstop	nodev
8024042Ssam #define	vxreset	nulldev
8124042Ssam #define	vx_tty	0
8224042Ssam #else
8324042Ssam int	vxopen(),vxclose(),vxread(),vxwrite(),vxioctl(),vxstop(),vxreset();
8424042Ssam struct	tty vx_tty[];
8524042Ssam #endif
8624042Ssam 
8724042Ssam int	syopen(),syread(),sywrite(),syioctl(),syselect();
8824042Ssam 
8924042Ssam int 	mmread(),mmwrite();
9024042Ssam #define	mmselect	seltrue
9124042Ssam 
9224042Ssam #include "pty.h"
9324042Ssam #if NPTY > 0
9424042Ssam int	ptsopen(),ptsclose(),ptsread(),ptswrite(),ptsstop();
9524042Ssam int	ptcopen(),ptcclose(),ptcread(),ptcwrite(),ptcselect();
9624042Ssam int	ptyioctl();
9724042Ssam struct	tty pt_tty[];
9824042Ssam #else
9924042Ssam #define ptsopen		nodev
10024042Ssam #define ptsclose	nodev
10124042Ssam #define ptsread		nodev
10224042Ssam #define ptswrite	nodev
10324042Ssam #define ptcopen		nodev
10424042Ssam #define ptcclose	nodev
10524042Ssam #define ptcread		nodev
10624042Ssam #define ptcwrite	nodev
10724042Ssam #define ptyioctl	nodev
10824042Ssam #define	pt_tty		0
10924042Ssam #define	ptcselect	nodev
11024042Ssam #define	ptsstop		nulldev
11124042Ssam #endif
11224042Ssam 
11332634Ssam #if NMP > 0
11432634Ssam int	mpopen(), mpclose(), mpread(), mpwrite(), mpioctl(), mpstop();
11532634Ssam int	mpdlopen(), mpdlclose(), mpdlwrite(), mpdlioctl();
11632634Ssam extern	struct tty mp_tty[];
11724042Ssam #else
11832634Ssam #define	mpopen		nodev
11932634Ssam #define	mpclose		nodev
12032634Ssam #define	mpread		nodev
12132634Ssam #define	mpwrite		nodev
12232634Ssam #define	mpioctl		nodev
12332634Ssam #define	mpstop		nodev
12432634Ssam #define	mpdlopen	nodev
12532634Ssam #define	mpdlclose	nodev
12632634Ssam #define	mpdlwrite	nodev
12732634Ssam #define	mpdlioctl	nodev
12832634Ssam #define	mp_tty		0
12924042Ssam #endif
13024042Ssam 
13124042Ssam #if NII > 0
13224042Ssam int	iiioctl(), iiclose(), iiopen();
13324042Ssam #else
13424042Ssam #define	iiopen	nodev
13524042Ssam #define	iiclose	nodev
13624042Ssam #define	iiioctl	nodev
13724042Ssam #endif
13824042Ssam 
13930173Ssam #include "enp.h"
14030173Ssam #if NENP > 0
14130173Ssam int	enpr_open(), enpr_close(), enpr_read(), enpr_write(), enpr_ioctl();
14230173Ssam #else
14330173Ssam #define enpr_open	nodev
14430173Ssam #define enpr_close	nodev
14530173Ssam #define enpr_read	nodev
14630173Ssam #define enpr_write	nodev
14730173Ssam #define enpr_ioctl	nodev
14830173Ssam #endif
14930173Ssam 
15030173Ssam #include "dr.h"
15130173Ssam #if NDR > 0
15230173Ssam int     dropen(),drclose(),drread(),drwrite(),drioctl(),drreset();
15330173Ssam #else
15430173Ssam #define dropen nodev
15530173Ssam #define drclose nodev
15630173Ssam #define drread nodev
15730173Ssam #define drwrite nodev
15830173Ssam #define drioctl nodev
15930173Ssam #define drreset nodev
16030173Ssam #endif
16130173Ssam 
16230173Ssam #include "ik.h"
16330173Ssam #if NIK > 0
16430173Ssam int     ikopen(),ikclose(),ikread(),ikwrite(),ikioctl();
16530173Ssam #else
16630173Ssam #define ikopen nodev
16730173Ssam #define ikclose nodev
16830173Ssam #define ikread nodev
16930173Ssam #define ikwrite nodev
17030173Ssam #define ikioctl nodev
17130173Ssam #endif
17230173Ssam 
17325678Ssam int	logopen(),logclose(),logread(),logioctl(),logselect();
17425678Ssam 
17524042Ssam int	ttselect(), seltrue();
17624042Ssam 
17724042Ssam struct cdevsw	cdevsw[] =
17824042Ssam {
17924042Ssam 	cnopen,		cnclose,	cnread,		cnwrite,	/*0*/
18025678Ssam 	cnioctl,	nulldev,	nulldev,	&cons,
18134291Skarels 	ttselect,	nodev,		NULL,
18224042Ssam 	vxopen,		vxclose,	vxread,		vxwrite,	/*1*/
18324042Ssam 	vxioctl,	vxstop,		vxreset,	vx_tty,
18434291Skarels 	ttselect,	nodev,		NULL,
18524042Ssam 	syopen,		nulldev,	syread,		sywrite,	/*2*/
18634291Skarels 	syioctl,	nulldev,	nulldev,	NULL,
18734291Skarels 	syselect,	nodev,		NULL,
18824042Ssam 	nulldev,	nulldev,	mmread,		mmwrite,	/*3*/
18934291Skarels 	nodev,		nulldev,	nulldev,	NULL,
19034291Skarels 	mmselect,	nodev,		NULL,
19129557Ssam 	nodev,		nulldev,	nodev,		nodev,		/*4*/
19234291Skarels 	nodev,		nodev,		nulldev,	NULL,
19334291Skarels 	seltrue,	nodev,		NULL,
19434291Skarels 	vdopen,		vdclose,	rawread,	rawwrite,	/*5*/
19534291Skarels 	vdioctl,	nodev,		nulldev,	NULL,
19634291Skarels 	seltrue,	nodev,		vdstrategy,
19729557Ssam 	nodev,		nulldev,	nodev,		nodev,		/*6*/
19834291Skarels 	nodev,		nodev,		nulldev,	NULL,
19934291Skarels 	seltrue,	nodev,		NULL,
20024042Ssam 	cyopen,		cyclose,	cyread,		cywrite,	/*7*/
20134291Skarels 	cyioctl,	nodev,		cyreset,	NULL,
20234291Skarels 	seltrue,	nodev,		NULL,
20334291Skarels 	nulldev,	nulldev,	rawread,	rawwrite,	/*8*/
20434291Skarels 	nodev,		nodev,		nulldev,	NULL,
20534291Skarels 	nodev,		nodev,		swstrategy,
20624042Ssam 	ptsopen,	ptsclose,	ptsread,	ptswrite,	/*9*/
20724042Ssam 	ptyioctl,	ptsstop,	nodev,		pt_tty,
20834291Skarels 	ttselect,	nodev,		NULL,
20924042Ssam 	ptcopen,	ptcclose,	ptcread,	ptcwrite,	/*10*/
21024042Ssam 	ptyioctl,	nulldev,	nodev,		pt_tty,
21134291Skarels 	ptcselect,	nodev,		NULL,
21232634Ssam 	mpdlopen,	mpdlclose,	nodev,		mpdlwrite,	/*11*/
21334291Skarels 	mpdlioctl,	nodev,		nulldev,	NULL,
21434291Skarels 	seltrue,	nodev,		NULL,
21532634Ssam 	mpopen,		mpclose,	mpread,		mpwrite,	/*12*/
21632634Ssam 	mpioctl,	mpstop,		nulldev,	mp_tty,
21734291Skarels 	ttselect,	nodev,		NULL,
21832634Ssam 	nodev,		nodev,		nodev,		nodev,		/*13*/
21934291Skarels 	nodev,		nodev,		nulldev,	NULL,
22034291Skarels 	nodev,		nodev,		NULL,
22124042Ssam 	iiopen,		iiclose,	nulldev,	nulldev,	/*14*/
22234291Skarels 	iiioctl,	nulldev,	nulldev,	NULL,
22334291Skarels 	seltrue,	nodev,		NULL,
22425678Ssam 	logopen,	logclose,	logread,	nodev,		/*15*/
22534291Skarels 	logioctl,	nodev,		nulldev,	NULL,
22634291Skarels 	logselect,	nodev,		NULL,
22730173Ssam 	enpr_open,	enpr_close,	enpr_read,	enpr_write,	/*16*/
22834291Skarels 	enpr_ioctl,	nodev,		nulldev,	NULL,
22934291Skarels 	nodev,		nodev,		NULL,
23030173Ssam 	nodev,		nodev,		nodev,		nodev,		/*17*/
23134291Skarels 	nodev,		nodev,		nulldev,	NULL,
23234291Skarels 	nodev,		nodev,		NULL,
23330173Ssam 	dropen,		drclose,	drread,		drwrite,	/*18*/
23434291Skarels 	drioctl,	nodev,		drreset,	NULL,
23534291Skarels 	nodev,		nodev,		NULL,
23630173Ssam 	nodev,		nodev,		nodev,		nodev,		/*19*/
23734291Skarels 	nodev,		nodev,		nulldev,	NULL,
23834291Skarels 	nodev,		nodev,		NULL,
23930173Ssam /* 20-30 are reserved for local use */
24030173Ssam 	ikopen,		ikclose,	ikread,		ikwrite,	/*20*/
24134291Skarels 	ikioctl,	nodev,		nulldev,	NULL,
24234291Skarels 	nodev,		nodev,		NULL,
24324042Ssam };
24424042Ssam int	nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
24524042Ssam 
24624042Ssam int	mem_no = 3; 	/* major device number of memory special file */
24724042Ssam 
24824042Ssam /*
24924042Ssam  * Swapdev is a fake device implemented
25024042Ssam  * in sw.c used only internally to get to swstrategy.
25124042Ssam  * It cannot be provided to the users, because the
25224042Ssam  * swstrategy routine munches the b_dev and b_blkno entries
25324042Ssam  * before calling the appropriate driver.  This would horribly
25424042Ssam  * confuse, e.g. the hashing routines. Instead, /dev/drum is
25524042Ssam  * provided as a character (raw) device.
25624042Ssam  */
25724042Ssam dev_t	swapdev = makedev(4, 0);
258