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

📄 bsif.h

📁 freebsd v4.4内核源码
💻 H
字号:
/*	$NecBSD: bsif.h,v 1.5 1997/10/23 20:52:34 honda Exp $	*//* * Copyright (c) HONDA Naofumi, KATO Takenori, 1996.  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 as *    the first lines of this file unmodified. * 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. * The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. *//*************************************************** * misc device header in bs_softc ***************************************************/#ifdef __NetBSD__#define	OS_DEPEND_DEVICE_HEADER			\	struct device sc_dev;			\	void *sc_ih;#define OS_DEPEND_SCSI_HEADER			\	struct scsi_link sc_link;#define	OS_DEPEND_MISC_HEADER			\	pisa_device_handle_t sc_dh;		\	bus_space_tag_t sc_iot;			\	bus_space_tag_t sc_memt;		\	bus_space_handle_t sc_ioh;		\	bus_space_handle_t sc_delaybah;		\	bus_space_handle_t sc_memh;		\	bus_dma_tag_t sc_dmat;		#endif	/* __NetBSD__ */#ifdef __FreeBSD__#define OS_DEPEND_DEVICE_HEADER			\	int unit;#define OS_DEPEND_SCSI_HEADER			\	struct scsi_link sc_link;#define	OS_DEPEND_MISC_HEADER#endif	/* __FreeBSD__ */#if	defined(__NetBSD__)#define BSHW_NBPG	NBPG#endif#if	defined(__FreeBSD__)#define BSHW_NBPG	PAGE_SIZE#endif/*************************************************** * include ***************************************************//* (I) common include */#include <sys/param.h>#include <sys/systm.h>#include <sys/kernel.h>#include <sys/disklabel.h>#include <sys/buf.h>#include <sys/queue.h>#include <sys/malloc.h>#include <sys/errno.h>#include <vm/vm.h>/* (II) os depend include */#ifdef	__NetBSD__#include <sys/device.h>#include <dev/isa/isareg.h>#include <dev/isa/isavar.h>#include <dev/isa/pisaif.h>#include <dev/isa/isadmavar.h>#include <dev/isa/isadmareg.h>#include <dev/cons.h>#include <machine/cpufunc.h>#include <machine/bus.h>#include <machine/intr.h>#include <machine/dvcfg.h>#include <scsi/scsi_all.h>#include <scsi/scsiconf.h>#include <scsi/scsi_disk.h>#endif	/* __NetBSD__ */#ifdef __FreeBSD__#include <sys/conf.h>#include <sys/device.h>#include <vm/vm_extern.h>#include <vm/vm_kern.h>#include <vm/pmap.h>#include <machine/clock.h>#include <machine/cpu.h>#include <machine/md_var.h>#include <machine/vmparam.h>#include <machine/dvcfg.h>#include <scsi/scsi_all.h>#include <scsi/scsiconf.h>#include <scsi/scsi_disk.h>#include <pc98/pc98/pc98.h>#include <i386/isa/isa_device.h>#include <i386/isa/icu.h>#endif	/* __FreeBSD__ *//*************************************************** * BUS IO MAPPINGS & BS specific inclusion ***************************************************/#ifdef	__NetBSD__#define	BUS_IO_DELAY ((void) bus_space_read_1(bsc->sc_iot, bsc->sc_delaybah, 0))#define	BUS_IO_WEIGHT (bus_space_write_1(bsc->sc_iot, bsc->sc_delaybah, 0, 0))#define	BUS_IOR(offs) (bus_space_read_1(bsc->sc_iot, bsc->sc_ioh, (offs)))#define	BUS_IOW(offs, val) (bus_space_write_1(bsc->sc_iot, bsc->sc_ioh, (offs), (val)))#include <dev/ic/wd33c93reg.h>#include <dev/isa/ccbque.h>#include <i386/Cbus/dev/scsi_dvcfg.h>#include <i386/Cbus/dev/bs/bsvar.h>#include <i386/Cbus/dev/bs/bshw.h>#include <i386/Cbus/dev/bs/bsfunc.h>#endif	/* __NetBSD__ */#ifdef	__FreeBSD__#define	BUS_IO_DELAY ((void) inb(0x5f))#define	BUS_IO_WEIGHT (outb(0x5f, 0))#define	BUS_IOR(offs) (BUS_IO_DELAY, inb(bsc->sc_iobase + (offs)))#define	BUS_IOW(offs, val) (BUS_IO_DELAY, outb(bsc->sc_iobase + (offs), (val)))#include <i386/isa/ic/wd33c93.h>#include <i386/isa/ccbque.h>#include <i386/isa/scsi_dvcfg.h>#include <i386/isa/bs/bsvar.h>#include <i386/isa/bs/bshw.h>#include <i386/isa/bs/bsfunc.h>#endif	/* __FreeBSD__ *//*************************************************** * XS return type ***************************************************/#ifdef	__NetBSD__#define	XSBS_INT32T	int#endif	/* __NetBSD__ */#ifdef	__FreeBSD__#define	XSBS_INT32T	int32_t#endif	/* __FreeBSD__ *//*************************************************** * xs flags's abstraction (all currently used) ***************************************************/#define	XSBS_ITSDONE	ITSDONE#define	XSBS_SCSI_NOSLEEP	SCSI_NOSLEEP#ifdef __NetBSD__#define XSBS_SCSI_POLL	SCSI_POLL#endif	/* __NetBSD__ */#ifdef __FreeBSD__#define XSBS_SCSI_POLL	SCSI_NOMASK#endif	/* __FreeBSD__ *//*************************************************** * Special operations ***************************************************/#ifdef __FreeBSD__#define	BS_ADDRESS_CHECK#endif	/* __FreeBSD__ *//*************************************************** * declare ***************************************************//* (I) common declare */void bs_alloc_buf __P((struct targ_info *));XSBS_INT32T bs_target_open __P((struct scsi_link *, struct cfdata *));XSBS_INT32T bs_scsi_cmd __P((struct scsi_xfer *));extern int delaycount;/* (II) os depend declare */#ifdef __NetBSD__int bsintr __P((void *));int bsprint __P((void *, const char *));#endif	/* __NetBSD__ */#ifdef __FreeBSD__static BS_INLINE void memcopy __P((void *from, void *to, register size_t len));u_int32_t bs_adapter_info __P((int));#define delay(y) DELAY(y)extern int dma_init_flag;#define softintr(y) ipending |= (1 << y)static BS_INLINE voidmemcopy(from, to, len)	void *from, *to;	register size_t len;{	len >>= 2;	__asm __volatile("cld\n\trep\n\tmovsl" : :			 "S" (from), "D" (to), "c" (len) :			 "%esi", "%edi", "%ecx");}#endif	/* __FreeBSD__ */

⌨️ 快捷键说明

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