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

📄 conf.c

📁 早期freebsd实现
💻 C
字号:
/* * Copyright (c) 1992 OMRON Corporation. * Copyright (c) 1992, 1993 *	The Regents of the University of California.  All rights reserved. * * This code is derived from software contributed to Berkeley by * OMRON Corporation. * * 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	8.1 (Berkeley) 6/10/93 */#include <luna68k/stand/saio.h>devread(io)	register struct iob *io;{	int cc;	io->i_flgs |= F_RDDATA;	io->i_error = 0;	cc = (*devsw[io->i_dev].dv_strategy)(io, READ);	io->i_flgs &= ~F_TYPEMASK;	return (cc);}devwrite(io)	register struct iob *io;{	int cc;	io->i_flgs |= F_WRDATA;	io->i_error = 0;	cc = (*devsw[io->i_dev].dv_strategy)(io, WRITE);	io->i_flgs &= ~F_TYPEMASK;	return (cc);}devopen(io)	register struct iob *io;{	(*devsw[io->i_dev].dv_open)(io);}devclose(io)	register struct iob *io;{	(*devsw[io->i_dev].dv_close)(io);}devioctl(io, cmd, arg)	register struct iob *io;	int cmd;	caddr_t arg;{	return ((*devsw[io->i_dev].dv_ioctl)(io, cmd, arg));}/*ARGSUSED*/nullsys(io)	struct iob *io;{	;}/*ARGSUSED*/nullioctl(io, cmd, arg)	struct iob *io;	int cmd;	caddr_t arg;{	return (ECMD);}int	nullsys(), nullioctl();int	sdstrategy(), sdopen(), sdioctl();struct devsw devsw[] = {	{ "sd",	sdstrategy,	sdopen,		nullsys,	nullioctl },	{ 0, 0, 0, 0, 0 },};dev_tmake_device(str)	char *str;{	char *cp;	struct devsw *dp;	int major, unit, part;	/*	 * parse path strings	 */							/* find end of dev type name */	for (cp = str; *cp && *cp != '('; cp++)			;	if (*cp != '(') {		return (-1);	}							/* compare dev type name */	*cp = '\0';	for (dp = devsw; dp->dv_name; dp++)		if (!strcmp(str, dp->dv_name))			break;	*cp++ = '(';	if (dp->dv_name == NULL) {		return (-1);	}	major = dp - devsw;							/* get unit number */	unit = *cp++ - '0';	if (*cp >= '0' && *cp <= '9')		unit = unit * 10 + *cp++ - '0';	if (unit < 0 || unit > 63) {		return (-1);	}							/* get partition offset */	if (*cp++ != ',') {		return (-1);	}	part = *cp - '0';							/* check out end of dev spec */	for (;;) {		if (*cp == ')')			break;		if (*cp++)			continue;		return (-1);	}	return(major << 8 | unit << 3 | part);}

⌨️ 快捷键说明

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