⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 conf.c

📁 早期freebsd实现
💻 C
字号:
/* * Copyright (c) 1988 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the University of *	California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * *	@(#)conf.c	7.9 (Berkeley) 5/8/91 */#include "sys/param.h"#include "sys/systm.h"#include "sys/buf.h"#include "sys/ioctl.h"#include "sys/tty.h"#include "sys/conf.h"int nullop(), enxio(), enodev(), rawread(), rawwrite(), swstrategy();#include "dk.h"#if NVD > 0int	vdopen(),vdclose(),vdstrategy(),vdioctl();int	vddump(),vdsize();#else#define	vdopen		enxio#define	vdclose		enxio#define	vdstrategy	enxio#define	vdioctl		enxio#define	vddump		enxio#define	vdsize		0#endif#include "hd.h"#if NHD > 0int	hdopen(),hdclose(),hdstrategy(),hdioctl();int	hddump(),hdsize();#else#define	hdopen		enxio#define	hdclose		enxio#define	hdstrategy	enxio#define	hdioctl		enxio#define	hddump		enxio#define	hdsize		0#endif#include "yc.h"#if NCY > 0int	cyopen(),cyclose(),cystrategy(),cydump();int	cyioctl(),cyreset();#else#define	cyopen		enxio#define	cyclose		enxio#define	cystrategy	enxio#define	cydump		enxio#define	cyioctl		enxio#define	cyreset		nullop#endifstruct bdevsw	bdevsw[] ={	{ enodev,	nullop,		enodev,		enodev,		/*0*/	  enodev,	0,		0 },	{ vdopen,	vdclose,	vdstrategy,	vdioctl,	/*1*/	  vddump,	vdsize,		0 },	{ hdopen,	hdclose,	hdstrategy,	hdioctl,	/*2*/	  hddump,	hdsize,		0 },	{ cyopen,	cyclose,	cystrategy,	cyioctl,	/*3*/	  cydump,	0,		B_TAPE },	{ enodev,	enodev,		swstrategy,	enodev,		/*4*/	  enodev,	0,		0 },};int	nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]);int	cnopen(),cnclose(),cnread(),cnwrite(),cnioctl();extern	struct tty cons;#include "vx.h"#if NVX == 0#define	vxopen	enxio#define	vxclose	enxio#define	vxread	enxio#define	vxwrite	enxio#define	vxioctl	enxio#define	vxstop	enxio#define	vxreset	nullop#define	vx_tty	0#elseint	vxopen(),vxclose(),vxread(),vxwrite(),vxioctl(),vxstop(),vxreset();struct	tty vx_tty[];#endifint	cttyopen(),cttyread(),cttywrite(),cttyioctl(),cttyselect();int 	mmrw();#define	mmselect	seltrue#include "pty.h"#if NPTY > 0int	ptsopen(),ptsclose(),ptsread(),ptswrite(),ptsstop();int	ptcopen(),ptcclose(),ptcread(),ptcwrite(),ptcselect();int	ptyioctl();struct	tty pt_tty[];#else#define ptsopen		enxio#define ptsclose	enxio#define ptsread		enxio#define ptswrite	enxio#define ptcopen		enxio#define ptcclose	enxio#define ptcread		enxio#define ptcwrite	enxio#define ptyioctl	enxio#define	pt_tty		0#define	ptcselect	enxio#define	ptsstop		nullop#endif#include "mp.h"#if NMP > 0int	mpopen(), mpclose(), mpread(), mpwrite(), mpioctl(), mpstop();int	mpdlopen(), mpdlclose(), mpdlwrite(), mpdlioctl();extern	struct tty mp_tty[];#else#define	mpopen		enxio#define	mpclose		enxio#define	mpread		enxio#define	mpwrite		enxio#define	mpioctl		enxio#define	mpstop		enxio#define	mpdlopen	enxio#define	mpdlclose	enxio#define	mpdlwrite	enxio#define	mpdlioctl	enxio#define	mp_tty		0#endif#if NII > 0int	iiioctl(), iiclose(), iiopen();#else#define	iiopen	enxio#define	iiclose	enxio#define	iiioctl	enxio#endif#include "enp.h"#if NENP > 0int	enpr_open(), enpr_close(), enpr_read(), enpr_write(), enpr_ioctl();#else#define enpr_open	enxio#define enpr_close	enxio#define enpr_read	enxio#define enpr_write	enxio#define enpr_ioctl	enxio#endif#include "dr.h"#if NDR > 0int     dropen(),drclose(),drread(),drwrite(),drioctl(),drreset();#else#define dropen enxio#define drclose enxio#define drread enxio#define drwrite enxio#define drioctl enxio#define drreset enxio#endif#include "ik.h"#if NIK > 0int     ikopen(),ikclose(),ikread(),ikwrite(),ikioctl();#else#define ikopen enxio#define ikclose enxio#define ikread enxio#define ikwrite enxio#define ikioctl enxio#endifint	logopen(),logclose(),logread(),logioctl(),logselect();int	fdopen();int	ttselect(), seltrue();struct cdevsw	cdevsw[] ={	{ cnopen,	cnclose,	cnread,		cnwrite,	/*0*/	  cnioctl,	nullop,		nullop,		&cons,	  ttselect,	enodev,		NULL },	{ vxopen,	vxclose,	vxread,		vxwrite,	/*1*/	  vxioctl,	vxstop,		vxreset,	vx_tty,	  ttselect,	enodev,		NULL },	{ cttyopen,	nullop,		cttyread,	cttywrite,	/*2*/	  cttyioctl,	nullop,		nullop,		NULL,	  cttyselect,	enodev,		NULL },	{ nullop,	nullop,		mmrw,		mmrw,		/*3*/	  enodev,	nullop,		nullop,		NULL,	  mmselect,	enodev,		NULL },	{ enodev,	nullop,		enodev,		enodev,		/*4*/	  enodev,	enodev,		nullop,		NULL,	  seltrue,	enodev,		NULL },	{ vdopen,	vdclose,	rawread,	rawwrite,	/*5*/	  vdioctl,	enodev,		nullop,		NULL,	  seltrue,	enodev,		vdstrategy },	{ hdopen,	hdclose,	rawread,	rawwrite,	/*6*/	  hdioctl,	enodev,		nullop,		NULL,	  seltrue,	enodev,		hdstrategy },	{ cyopen,	cyclose,	rawread,	rawwrite,	/*7*/	  cyioctl,	enodev,		cyreset,	NULL,	  seltrue,	enodev,		cystrategy },	{ nullop,	nullop,		rawread,	rawwrite,	/*8*/	  enodev,	enodev,		nullop,		NULL,	  enodev,	enodev,		swstrategy },	{ ptsopen,	ptsclose,	ptsread,	ptswrite,	/*9*/	  ptyioctl,	ptsstop,	enodev,		pt_tty,	  ttselect,	enodev,		NULL },	{ ptcopen,	ptcclose,	ptcread,	ptcwrite,	/*10*/	  ptyioctl,	nullop,		enodev,		pt_tty,	  ptcselect,	enodev,		NULL },	{ mpdlopen,	mpdlclose,	enodev,		mpdlwrite,	/*11*/	  mpdlioctl,	enodev,		nullop,		NULL,	  seltrue,	enodev,		NULL },	{ mpopen,	mpclose,	mpread,		mpwrite,	/*12*/	  mpioctl,	mpstop,		nullop,		mp_tty,	  ttselect,	enodev,		NULL },	{ enodev,	enodev,		enodev,		enodev,		/*13*/	  enodev,	enodev,		nullop,		NULL,	  enodev,	enodev,		NULL },	{ iiopen,	iiclose,	nullop,		nullop,		/*14*/	  iiioctl,	nullop,		nullop,		NULL,	  seltrue,	enodev,		NULL },	{ logopen,	logclose,	logread,	enodev,		/*15*/	  logioctl,	enodev,		nullop,		NULL,	  logselect,	enodev,		NULL },	{ enpr_open,	enpr_close,	enpr_read,	enpr_write,	/*16*/	  enpr_ioctl,	enodev,		nullop,		NULL,	  enodev,	enodev,		NULL },	{ enodev,	enodev,		enodev,		enodev,		/*17*/	  enodev,	enodev,		nullop,		NULL,	  enodev,	enodev,		NULL },	{ dropen,	drclose,	drread,		drwrite,	/*18*/	  drioctl,	enodev,		drreset,	NULL,	  enodev,	enodev,		NULL },	{ fdopen,	enodev,		enodev,		enodev,		/*19*/	  enodev,	enodev,		enodev,		NULL,	  enodev,	enodev,		NULL },/* 20-30 are reserved for local use */	{ ikopen,	ikclose,	ikread,		ikwrite,	/*20*/	  ikioctl,	enodev,		nullop,		NULL,	  enodev,	enodev,		NULL },	{ fdopen,	enodev,		enodev,		enodev,		/*21*/	  enodev,	enodev,		enodev,		NULL,	  enodev,	enodev,		NULL },};int	nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);int	mem_no = 3; 	/* major device number of memory special file *//* * Swapdev is a fake device implemented * in sw.c used only internally to get to swstrategy. * It cannot be provided to the users, because the * swstrategy routine munches the b_dev and b_blkno entries * before calling the appropriate driver.  This would horribly * confuse, e.g. the hashing routines. Instead, /dev/drum is * provided as a character (raw) device. */dev_t	swapdev = makedev(4, 0);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -