亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? ispvar.h

?? 這個(gè)linux源代碼是很全面的~基本完整了~使用c編譯的~由于時(shí)間問(wèn)題我沒(méi)有親自測(cè)試~但就算用來(lái)做參考資料也是非常好的
?? H
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/* @(#)ispvar.h 1.37 *//* * Soft Definitions for for Qlogic ISP SCSI adapters. * * Copyright (c) 1997, 1998, 1999, 2000 by Matthew Jacob * 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 immediately at the beginning of the file, without modification, *    this list of conditions, and the following disclaimer. * 2. 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 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 AUTHOR 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. * */#ifndef	_ISPVAR_H#define	_ISPVAR_H#if defined(__NetBSD__) || defined(__OpenBSD__)#include <dev/ic/ispmbox.h>#ifdef	ISP_TARGET_MODE#include <dev/ic/isp_target.h>#include <dev/ic/isp_tpublic.h>#endif#endif#ifdef	__FreeBSD__#include <dev/isp/ispmbox.h>#ifdef	ISP_TARGET_MODE#include <dev/isp/isp_target.h>#include <dev/isp/isp_tpublic.h>#endif#endif#ifdef	__linux__#include "ispmbox.h"#ifdef	ISP_TARGET_MODE#include "isp_target.h"#include "isp_tpublic.h"#endif#endif#define	ISP_CORE_VERSION_MAJOR	2#define	ISP_CORE_VERSION_MINOR	6/* * Vector for bus specific code to provide specific services. */struct ispsoftc;struct ispmdvec {	int		(*dv_rd_isr)	    (struct ispsoftc *, u_int16_t *, u_int16_t *, u_int16_t *);	u_int16_t	(*dv_rd_reg) (struct ispsoftc *, int);	void		(*dv_wr_reg) (struct ispsoftc *, int, u_int16_t);	int		(*dv_mbxdma) (struct ispsoftc *);	int		(*dv_dmaset) (struct ispsoftc *,	    XS_T *, ispreq_t *, u_int16_t *, u_int16_t);	void		(*dv_dmaclr)	    (struct ispsoftc *, XS_T *, u_int16_t);	void		(*dv_reset0) (struct ispsoftc *);	void		(*dv_reset1) (struct ispsoftc *);	void		(*dv_dregs) (struct ispsoftc *, const char *);	u_int16_t	*dv_ispfw;	/* ptr to f/w */	u_int16_t	dv_conf1;	u_int16_t	dv_clock;	/* clock frequency */};/* * Overall parameters */#define	MAX_TARGETS		16#define	MAX_FC_TARG		256#define	ISP_MAX_TARGETS(isp)	(IS_FC(isp)? MAX_FC_TARG : MAX_TARGETS)#define	ISP_MAX_LUNS(isp)	(isp)->isp_maxluns/* * 'Types' */#ifndef	ISP_DMA_ADDR_T#define	ISP_DMA_ADDR_T	u_int32_t#endif/* * Macros to access ISP registers through bus specific layers- * mostly wrappers to vector through the mdvec structure. */#define	ISP_READ_ISR(isp, isrp, semap, mbox0p)	\	(*(isp)->isp_mdvec->dv_rd_isr)(isp, isrp, semap, mbox0p)#define	ISP_READ(isp, reg)	\	(*(isp)->isp_mdvec->dv_rd_reg)((isp), (reg))#define	ISP_WRITE(isp, reg, val)	\	(*(isp)->isp_mdvec->dv_wr_reg)((isp), (reg), (val))#define	ISP_MBOXDMASETUP(isp)	\	(*(isp)->isp_mdvec->dv_mbxdma)((isp))#define	ISP_DMASETUP(isp, xs, req, iptrp, optr)	\	(*(isp)->isp_mdvec->dv_dmaset)((isp), (xs), (req), (iptrp), (optr))#define	ISP_DMAFREE(isp, xs, hndl)	\	if ((isp)->isp_mdvec->dv_dmaclr) \	    (*(isp)->isp_mdvec->dv_dmaclr)((isp), (xs), (hndl))#define	ISP_RESET0(isp)	\	if ((isp)->isp_mdvec->dv_reset0) (*(isp)->isp_mdvec->dv_reset0)((isp))#define	ISP_RESET1(isp)	\	if ((isp)->isp_mdvec->dv_reset1) (*(isp)->isp_mdvec->dv_reset1)((isp))#define	ISP_DUMPREGS(isp, m)	\	if ((isp)->isp_mdvec->dv_dregs) (*(isp)->isp_mdvec->dv_dregs)((isp),(m))#define	ISP_SETBITS(isp, reg, val)	\ (*(isp)->isp_mdvec->dv_wr_reg)((isp), (reg), ISP_READ((isp), (reg)) | (val))#define	ISP_CLRBITS(isp, reg, val)	\ (*(isp)->isp_mdvec->dv_wr_reg)((isp), (reg), ISP_READ((isp), (reg)) & ~(val))/* * The MEMORYBARRIER macro is defined per platform (to provide synchronization * on Request and Response Queues, Scratch DMA areas, and Registers) * * Defined Memory Barrier Synchronization Types */#define	SYNC_REQUEST	0	/* request queue synchronization */#define	SYNC_RESULT	1	/* result queue synchronization */#define	SYNC_SFORDEV	2	/* scratch, sync for ISP */#define	SYNC_SFORCPU	3	/* scratch, sync for CPU */#define	SYNC_REG	4	/* for registers *//* * Request/Response Queue defines and macros. * The maximum is defined per platform (and can be based on board type). *//* This is the size of a queue entry (request and response) */#define	QENTRY_LEN			64/* Both request and result queue length must be a power of two */#define	RQUEST_QUEUE_LEN(x)		MAXISPREQUEST(x)#ifdef	ISP_TARGET_MODE#define	RESULT_QUEUE_LEN(x)		MAXISPREQUEST(x)#else#define	RESULT_QUEUE_LEN(x)		\	(((MAXISPREQUEST(x) >> 2) < 64)? 64 : MAXISPREQUEST(x) >> 2)#endif#define	ISP_QUEUE_ENTRY(q, idx)		((q) + ((idx) * QENTRY_LEN))#define	ISP_QUEUE_SIZE(n)		((n) * QENTRY_LEN)#define	ISP_NXT_QENTRY(idx, qlen)	(((idx) + 1) & ((qlen)-1))#define	ISP_QFREE(in, out, qlen)	\	((in == out)? (qlen - 1) : ((in > out)? \	((qlen - 1) - (in - out)) : (out - in - 1)))#define	ISP_QAVAIL(isp)	\	ISP_QFREE(isp->isp_reqidx, isp->isp_reqodx, RQUEST_QUEUE_LEN(isp))#define	ISP_ADD_REQUEST(isp, nxti)					\	MEMORYBARRIER(isp, SYNC_REQUEST, isp->isp_reqidx, QENTRY_LEN);	\	WRITE_REQUEST_QUEUE_IN_POINTER(isp, nxti);			\	isp->isp_reqidx = nxti/* * SCSI Specific Host Adapter Parameters- per bus, per target */typedef struct {	u_int		isp_gotdparms		: 1,			isp_req_ack_active_neg	: 1,			isp_data_line_active_neg: 1,			isp_cmd_dma_burst_enable: 1,			isp_data_dma_burst_enabl: 1,			isp_fifo_threshold	: 3,			isp_ultramode		: 1,			isp_diffmode		: 1,			isp_lvdmode		: 1,			isp_fast_mttr		: 1,	/* fast sram */			isp_initiator_id	: 4,			isp_async_data_setup	: 4;	u_int16_t	isp_selection_timeout;	u_int16_t	isp_max_queue_depth;	u_int8_t	isp_tag_aging;	u_int8_t	isp_bus_reset_delay;	u_int8_t	isp_retry_count;	u_int8_t	isp_retry_delay;	struct {		u_int32_t				exc_throttle	:	8,					:	1,			dev_enable	:	1,	/* ignored */			dev_update	:	1,			dev_refresh	:	1,			actv_offset	:	4,			goal_offset	:	4,			nvrm_offset	:	4;		u_int8_t	actv_period;	/* current sync period */		u_int8_t	goal_period;	/* goal sync period */		u_int8_t	nvrm_period;	/* nvram sync period */		u_int16_t	actv_flags;	/* current device flags */		u_int16_t	goal_flags;	/* goal device flags */		u_int16_t	nvrm_flags;	/* nvram device flags */	} isp_devparam[MAX_TARGETS];} sdparam;/* * Device Flags */#define	DPARM_DISC	0x8000#define	DPARM_PARITY	0x4000#define	DPARM_WIDE	0x2000#define	DPARM_SYNC	0x1000#define	DPARM_TQING	0x0800#define	DPARM_ARQ	0x0400#define	DPARM_QFRZ	0x0200#define	DPARM_RENEG	0x0100#define	DPARM_NARROW	0x0080#define	DPARM_ASYNC	0x0040#define	DPARM_PPR	0x0020#define	DPARM_DEFAULT	(0xFF00 & ~DPARM_QFRZ)#define	DPARM_SAFE_DFLT	(DPARM_DEFAULT & ~(DPARM_WIDE|DPARM_SYNC|DPARM_TQING))/* technically, not really correct, as they need to be rated based upon clock */#define	ISP_80M_SYNCPARMS	0x0c09#define	ISP_40M_SYNCPARMS	0x0c0a#define	ISP_20M_SYNCPARMS	0x0c0c#define	ISP_20M_SYNCPARMS_1040	0x080c#define	ISP_10M_SYNCPARMS	0x0c19#define	ISP_08M_SYNCPARMS	0x0c25#define	ISP_05M_SYNCPARMS	0x0c32#define	ISP_04M_SYNCPARMS	0x0c41/* * Fibre Channel Specifics */#define	FL_PORT_ID		0x7e	/* FL_Port Special ID */#define	FC_PORT_ID		0x7f	/* Fabric Controller Special ID */#define	FC_SNS_ID		0x80	/* SNS Server Special ID *//* #define	ISP_USE_GA_NXT	1 */	/* Use GA_NXT with switches */#ifndef	GA_NXT_MAX#define	GA_NXT_MAX	256#endiftypedef struct {	u_int32_t		isp_fwoptions	: 16,				isp_gbspeed	: 2,				isp_iid_set	: 1,				loop_seen_once	: 1,				isp_loopstate	: 4,	/* Current Loop State */				isp_fwstate	: 3,	/* ISP F/W state */				isp_gotdparms	: 1,				isp_topo	: 3,				isp_onfabric	: 1;	u_int8_t		isp_iid;	/* 'initiator' id */	u_int8_t		isp_loopid;	/* hard loop id */	u_int8_t		isp_alpa;	/* ALPA */	u_int32_t		isp_portid;	volatile u_int16_t	isp_lipseq;	/* LIP sequence # */	u_int16_t		isp_fwattr;	/* firmware attributes */	u_int8_t		isp_execthrottle;	u_int8_t		isp_retry_delay;	u_int8_t		isp_retry_count;	u_int8_t		isp_reserved;	u_int16_t		isp_maxalloc;	u_int16_t		isp_maxfrmlen;	u_int64_t		isp_nodewwn;	u_int64_t		isp_portwwn;	/*	 * Port Data Base. This is indexed by 'target', which is invariate.	 * However, elements within can move around due to loop changes,	 * so the actual loop ID passed to the F/W is in this structure.	 * The first time the loop is seen up, loopid will match the index	 * (except for fabric nodes which are above mapped above FC_SNS_ID	 * and are completely virtual), but subsequent LIPs can cause things	 * to move around.	 */	struct lportdb {		u_int32_t					port_type	: 8,							: 4,					fc4_type	: 4,					loopid		: 8,					last_fabric_dev	: 1,					force_logout	: 1,					was_fabric_dev	: 1,

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品电影一区二区三区| 三级久久三级久久久| 国产免费成人在线视频| 2021久久国产精品不只是精品 | 国产亚洲欧美激情| 国产亚洲一区二区三区在线观看| 2017欧美狠狠色| 久久麻豆一区二区| 国产精品色噜噜| 亚洲欧洲av色图| 一区二区三区在线观看动漫| 一区二区三区中文在线| 午夜精品福利在线| 秋霞电影网一区二区| 精油按摩中文字幕久久| 国产成人精品影院| 93久久精品日日躁夜夜躁欧美| 在线免费观看一区| 在线电影院国产精品| 精品福利一二区| 国产精品国模大尺度视频| 亚洲精品成人a在线观看| 亚洲成人第一页| 毛片av中文字幕一区二区| 国产精品一区二区视频| 成人动漫视频在线| 欧美亚洲综合另类| 精品国产一区二区在线观看| 亚洲国产高清不卡| 亚洲444eee在线观看| 久久精品99久久久| www.亚洲免费av| 精品视频在线免费看| 精品国产乱码久久久久久闺蜜 | 麻豆成人免费电影| 成人午夜免费视频| 欧美片在线播放| 国产日韩高清在线| 亚洲一区二区av在线| 欧美aaaaa成人免费观看视频| 国产精选一区二区三区| 欧美影片第一页| 精品国产91乱码一区二区三区| 日韩理论片在线| 蜜桃视频在线观看一区| 91亚洲精华国产精华精华液| 欧美一区二区三区影视| 国产精品国产a| 喷水一区二区三区| 一本在线高清不卡dvd| 精品免费视频一区二区| 99久久久精品免费观看国产蜜| 欧美猛男男办公室激情| 国产欧美日韩综合精品一区二区| 亚洲高清在线精品| 成人一级片网址| 日韩一区二区三区视频在线观看| 亚洲欧洲另类国产综合| 久久成人久久鬼色| 精品视频1区2区| 国产精品免费看片| 久久精品噜噜噜成人88aⅴ| 色偷偷成人一区二区三区91| 久久中文字幕电影| 日本亚洲免费观看| 欧美在线综合视频| 亚洲欧洲综合另类在线| 国产另类ts人妖一区二区| 欧美电影影音先锋| 亚洲一区二区成人在线观看| av在线这里只有精品| 久久久亚洲精品石原莉奈| 日韩中文字幕麻豆| 色婷婷一区二区| 国产精品国产三级国产普通话99 | 五月天一区二区三区| 99vv1com这只有精品| 国产视频一区二区在线观看| 久久丁香综合五月国产三级网站| 欧美丰满一区二区免费视频| 一二三区精品福利视频| 99精品一区二区三区| 国产精品天干天干在观线| 国产美女娇喘av呻吟久久| 日韩一区二区三区视频在线观看| 一区二区日韩av| 色偷偷一区二区三区| 亚洲欧美日韩国产一区二区三区| 国产一区二区三区国产| 精品国产电影一区二区| 美国十次综合导航| 欧美大度的电影原声| 日韩av电影一区| 欧美久久免费观看| 日日噜噜夜夜狠狠视频欧美人| 欧美性感一区二区三区| 亚洲精品免费在线播放| 91蜜桃免费观看视频| 综合色天天鬼久久鬼色| 色综合天天综合在线视频| 国产精品情趣视频| 国产不卡一区视频| 国产精品视频第一区| av在线不卡观看免费观看| 国产精品久久三| 99久久精品国产一区| 中文字幕一区日韩精品欧美| 激情图区综合网| 亚洲视频小说图片| 欧美日韩免费在线视频| 综合久久久久久| 色婷婷久久一区二区三区麻豆| 亚洲第一激情av| 日韩一区精品字幕| 成人午夜激情片| 国产精品乱码妇女bbbb| 成人一区二区三区视频在线观看| 国产精品妹子av| 色妹子一区二区| 五月综合激情日本mⅴ| 欧美一卡2卡3卡4卡| 韩国女主播一区| 国产精品午夜在线观看| 色天天综合色天天久久| 亚洲mv在线观看| 日韩精品中文字幕在线一区| 国产福利一区二区| 一区二区三区四区在线| 欧美精品在线视频| 国产在线国偷精品免费看| 国产精品久久久99| 欧美日韩精品高清| 国产真实乱子伦精品视频| 亚洲欧洲精品天堂一级| 欧美日韩在线播放| 黄色日韩网站视频| 亚洲视频狠狠干| 欧美一区二区播放| 国产.欧美.日韩| 香蕉成人伊视频在线观看| 久久综合狠狠综合久久综合88| av不卡免费在线观看| 视频在线观看一区| 日本一区二区成人| 精品视频一区二区三区免费| 国产一区二区美女诱惑| 亚洲综合一二区| 精品裸体舞一区二区三区| 色婷婷亚洲一区二区三区| 毛片av一区二区三区| 亚洲精品一卡二卡| 337p日本欧洲亚洲大胆色噜噜| 色综合久久99| 国产福利一区二区三区视频在线 | 视频一区二区中文字幕| 久久九九全国免费| 欧美日本精品一区二区三区| 成人午夜激情在线| 老司机精品视频一区二区三区| 亚洲欧洲日产国产综合网| 精品美女在线播放| 欧美日韩精品一区二区天天拍小说 | 日韩精品成人一区二区在线| 国产精品免费aⅴ片在线观看| 91精品国产色综合久久不卡电影| 白白色 亚洲乱淫| 国模一区二区三区白浆| 天天色图综合网| 亚洲另类在线视频| 国产日产欧美精品一区二区三区| 欧美电影一区二区| 91国在线观看| 99久久国产综合精品麻豆 | 日韩女同互慰一区二区| 欧美性受极品xxxx喷水| 成人app网站| 国产剧情一区二区| 麻豆精品视频在线观看视频| 亚洲v日本v欧美v久久精品| 亚洲精品免费在线观看| 国产精品你懂的在线| 久久在线免费观看| 日韩你懂的电影在线观看| 欧美人牲a欧美精品| 欧美系列在线观看| 在线观看视频一区二区欧美日韩| 国产精品自拍一区| 国产在线国偷精品产拍免费yy| 免费成人你懂的| 偷拍一区二区三区| 亚洲成a人片在线不卡一二三区| 1024国产精品| 中文字幕一区二区三区乱码在线| 国产欧美一区二区三区在线看蜜臀| 精品国产成人系列| 日韩美女一区二区三区四区| 欧美老女人第四色| 欧美久久久久久蜜桃| 欧美日韩成人高清| 在线电影国产精品|