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

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

?? aic7xxx_osm.h

?? linux和2410結(jié)合開發(fā) 用他可以生成2410所需的zImage文件
?? H
?? 第 1 頁 / 共 3 頁
字號:
	uint8_t version1[2];	uint8_t version2[2];	uint8_t version3[2];	uint8_t version4[2];	uint8_t version5[2];	uint8_t version6[2];	uint8_t version7[2];	uint8_t version8[2];	uint8_t reserved3[22];#define	SID_VENDOR_SPECIFIC_1_SIZE	160	uint8_t vendor_specific1[SID_VENDOR_SPECIFIC_1_SIZE];};/********************************** Includes **********************************//* Host template and function declarations referenced by the template. */#include "aic7xxx_linux_host.h"/* Core driver definitions */#include "aic7xxx.h"/* SMP support */#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,17)#include <linux/spinlock.h>#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,1,93)#include <linux/smp.h>#endif#define AIC7XXX_DRIVER_VERSION  "6.2.4"/**************************** Front End Queues ********************************//* * Data structure used to cast the Linux struct scsi_cmnd to something * that allows us to use the queue macros.  The linux structure has * plenty of space to hold the links fields as required by the queue * macros, but the queue macors require them to have the correct type. */struct ahc_cmd_internal {	/* Area owned by the Linux scsi layer. */	uint8_t	private[offsetof(struct scsi_cmnd, SCp.Status)];	union {		STAILQ_ENTRY(ahc_cmd)	ste;		LIST_ENTRY(ahc_cmd)	le;		TAILQ_ENTRY(ahc_cmd)	tqe;	} links;	uint32_t			end;};struct ahc_cmd {	union {		struct ahc_cmd_internal	icmd;		struct scsi_cmnd	scsi_cmd;	} un;};#define acmd_icmd(cmd) ((cmd)->un.icmd)#define acmd_scsi_cmd(cmd) ((cmd)->un.scsi_cmd)#define acmd_links un.icmd.links/*************************** Device Data Structures ***************************//* * A per probed device structure used to deal with some error recovery * scenarios that the Linux mid-layer code just doesn't know how to * handle.  The structure allocated for a device only becomes persistant * after a successfully completed inquiry command to the target when * that inquiry data indicates a lun is present. */TAILQ_HEAD(ahc_busyq, ahc_cmd);typedef enum {	AHC_DEV_UNCONFIGURED	 = 0x01,	AHC_DEV_FREEZE_TIL_EMPTY = 0x02, /* Freeze queue until active == 0 */	AHC_DEV_TIMER_ACTIVE	 = 0x04, /* Our timer is active */	AHC_DEV_ON_RUN_LIST	 = 0x08, /* Queued to be run later */	AHC_DEV_Q_BASIC		 = 0x10, /* Allow basic device queuing */	AHC_DEV_Q_TAGGED	 = 0x20, /* Allow full SCSI2 command queueing */	AHC_DEV_PERIODIC_OTAG	 = 0x40	 /* Send OTAG to prevent starvation */} ahc_dev_flags;struct ahc_linux_target;struct ahc_linux_device {	TAILQ_ENTRY(ahc_linux_device) links;	struct		ahc_busyq busyq;	/*	 * The number of transactions currently	 * queued to the device.	 */	int		active;	/*	 * The currently allowed number of 	 * transactions that can be queued to	 * the device.  Must be signed for	 * conversion from tagged to untagged	 * mode where the device may have more	 * than one outstanding active transaction.	 */	int		openings;	/*	 * A positive count indicates that this	 * device's queue is halted.	 */	u_int		qfrozen;		/*	 * Cumulative command counter.	 */	u_long		commands_issued;	/*	 * The number of tagged transactions when	 * running at our current opening level	 * that have been successfully received by	 * this device since the last QUEUE FULL.	 */	u_int		tag_success_count;#define AHC_TAG_SUCCESS_INTERVAL 50	ahc_dev_flags	flags;	/*	 * The high limit for the tags variable.	 */	u_int		maxtags;	/*	 * The computed number of tags outstanding	 * at the time of the last QUEUE FULL event.	 */	u_int		tags_on_last_queuefull;	/*	 * How many times we have seen a queue full	 * with the same number of tags.  This is used	 * to stop our adaptive queue depth algorithm	 * on devices with a fixed number of tags.	 */	u_int		last_queuefull_same_count;#define AHC_LOCK_TAGS_COUNT 50	/*	 * How many transactions have been queued	 * without the device going idle.  We use	 * this statistic to determine when to issue	 * an ordered tag to prevent transaction	 * starvation.  This statistic is only updated	 * if the AHC_DEV_PERIODIC_OTAG flag is set	 * on this device.	 */	u_int		commands_since_idle_or_otag;#define AHC_OTAG_THRESH	500	int		lun;	struct		ahc_linux_target *target;};struct ahc_linux_target {	struct	ahc_linux_device *devices[AHC_NUM_LUNS];	int	channel;	int	target;	int	refcount;	struct	ahc_transinfo last_tinfo;};/********************* Definitions Required by the Core ***********************//* * Number of SG segments we require.  So long as the S/G segments for * a particular transaction are allocated in a physically contiguous * manner and are allocated below 4GB, the number of S/G segments is * unrestricted. */#define        AHC_NSEG 128/* * Per-SCB OSM storage. */struct scb_platform_data {	struct ahc_linux_device	*dev;	uint32_t		 xfer_len;#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,0)	uint32_t		 resid;		/* Transfer residual */#endif};/* * Define a structure used for each host adapter.  All members are * aligned on a boundary >= the size of the member to honor the * alignment restrictions of the various platforms supported by * this driver. */TAILQ_HEAD(ahc_completeq, ahc_cmd);struct ahc_platform_data {	/*	 * Fields accessed from interrupt context.	 */	struct ahc_linux_target *targets[AHC_NUM_TARGETS]; 	TAILQ_HEAD(, ahc_linux_device) device_runq;	struct ahc_completeq	 completeq;#if LINUX_VERSION_CODE > KERNEL_VERSION(2,1,0)	spinlock_t		 spin_lock;#endif	u_int			 qfrozen;	struct timer_list	 reset_timer;	struct semaphore	 eh_sem;	struct Scsi_Host        *host;		/* pointer to scsi host */	uint32_t		 irq;		/* IRQ for this adapter */	uint32_t		 bios_address;	uint32_t		 mem_busaddr;	/* Mem Base Addr */	bus_addr_t		 hw_dma_mask;};/************************** OS Utility Wrappers *******************************/#define printf printk#define M_NOWAIT GFP_ATOMIC#define M_WAITOK 0#define malloc(size, type, flags) kmalloc(size, flags)#define free(ptr, type) kfree(ptr)static __inline void ahc_delay(long);static __inline voidahc_delay(long usec){	/*	 * udelay on Linux can have problems for	 * multi-millisecond waits.  Wait at most	 * 1024us per call.	 */	while (usec > 0) {		udelay(usec % 1024);		usec -= 1024;	}}/***************************** Low Level I/O **********************************/#if defined(__powerpc__) || defined(__i386__) || defined(__ia64__)#define MMAPIO#endifstatic __inline uint8_t ahc_inb(struct ahc_softc * ahc, long port);static __inline void ahc_outb(struct ahc_softc * ahc, long port, uint8_t val);static __inline void ahc_outsb(struct ahc_softc * ahc, long port,			       uint8_t *, int count);static __inline void ahc_insb(struct ahc_softc * ahc, long port,			       uint8_t *, int count);static __inline uint8_tahc_inb(struct ahc_softc * ahc, long port){	uint8_t x;#ifdef MMAPIO	if (ahc->tag == BUS_SPACE_MEMIO) {		x = readb(ahc->bsh.maddr + port);	} else {		x = inb(ahc->bsh.ioport + port);	}#else	x = inb(ahc->bsh.ioport + port);#endif	mb();	return (x);}static __inline voidahc_outb(struct ahc_softc * ahc, long port, uint8_t val){#ifdef MMAPIO	if (ahc->tag == BUS_SPACE_MEMIO) {		writeb(val, ahc->bsh.maddr + port);	} else {		outb(val, ahc->bsh.ioport + port);	}#else	outb(val, ahc->bsh.ioport + port);#endif	mb();}static __inline voidahc_outsb(struct ahc_softc * ahc, long port, uint8_t *array, int count){	int i;	/*	 * There is probably a more efficient way to do this on Linux	 * but we don't use this for anything speed critical and this	 * should work.	 */	for (i = 0; i < count; i++)		ahc_outb(ahc, port, *array++);}static __inline voidahc_insb(struct ahc_softc * ahc, long port, uint8_t *array, int count){	int i;	/*	 * There is probably a more efficient way to do this on Linux	 * but we don't use this for anything speed critical and this	 * should work.	 */	for (i = 0; i < count; i++)		*array++ = ahc_inb(ahc, port);}/**************************** Initialization **********************************/int		ahc_linux_register_host(struct ahc_softc *,					Scsi_Host_Template *);uint64_t	ahc_linux_get_memsize(void);/*************************** Pretty Printing **********************************/struct info_str {	char *buffer;	int length;	off_t offset;	int pos;};void	ahc_format_transinfo(struct info_str *info,			     struct ahc_transinfo *tinfo);/******************************** Locking *************************************//* Lock protecting internal data structures */static __inline void ahc_lockinit(struct ahc_softc *);static __inline void ahc_lock(struct ahc_softc *, unsigned long *flags);static __inline void ahc_unlock(struct ahc_softc *, unsigned long *flags);/* Lock held during command compeletion to the upper layer */static __inline void ahc_done_lockinit(struct ahc_softc *);static __inline void ahc_done_lock(struct ahc_softc *, unsigned long *flags);static __inline void ahc_done_unlock(struct ahc_softc *, unsigned long *flags);#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,1,93)static __inline voidahc_lockinit(struct ahc_softc *ahc){	spin_lock_init(&ahc->platform_data->spin_lock);}static __inline voidahc_lock(struct ahc_softc *ahc, unsigned long *flags){	*flags = 0;	spin_lock_irqsave(&ahc->platform_data->spin_lock, *flags);}static __inline voidahc_unlock(struct ahc_softc *ahc, unsigned long *flags){	spin_unlock_irqrestore(&ahc->platform_data->spin_lock, *flags);}static __inline voidahc_done_lockinit(struct ahc_softc *ahc){	/* We don't own the iorequest lock, so we don't initialize it. */}static __inline voidahc_done_lock(struct ahc_softc *ahc, unsigned long *flags){	*flags = 0;	spin_lock_irqsave(&io_request_lock, *flags);}static __inline voidahc_done_unlock(struct ahc_softc *ahc, unsigned long *flags){	spin_unlock_irqrestore(&io_request_lock, *flags);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜精品一区二区三区四区| 奇米在线7777在线精品| 中文字幕中文在线不卡住| 久久婷婷国产综合精品青草 | 久久99国产精品久久99| 精品卡一卡二卡三卡四在线| 欧美精品久久天天躁| 欧美色区777第一页| 欧美三级欧美一级| 欧美喷水一区二区| 日韩一区二区在线观看视频播放| 日韩一区二区三免费高清| 日韩一区二区三区免费看 | 亚洲欧美日韩在线| 亚洲欧洲综合另类在线| 亚洲综合色丁香婷婷六月图片| 亚洲综合自拍偷拍| 亚洲第四色夜色| 免费成人在线播放| 国产乱码精品一区二区三区五月婷| 国产精品中文字幕日韩精品| 国产精品996| 一本色道久久综合亚洲精品按摩| 欧美写真视频网站| 欧美三级韩国三级日本一级| 91精品国产综合久久精品| 欧美成人精品二区三区99精品| 久久久久久久久久久黄色| 欧美国产在线观看| 亚洲丝袜自拍清纯另类| 亚洲动漫第一页| 日韩国产精品91| 国产成人综合在线| 在线视频国产一区| 欧美一区二区网站| 国产欧美日产一区| 亚洲在线视频免费观看| 免费高清在线视频一区·| 成人夜色视频网站在线观看| 91香蕉视频在线| 日韩一级免费观看| 国产精品久久久久9999吃药| 亚洲午夜羞羞片| 国产酒店精品激情| 欧美在线观看一区二区| 欧美精品一区二区三区蜜桃 | 国产一区二区三区在线观看免费视频| 不卡大黄网站免费看| 欧美日韩成人一区二区| 久久久午夜精品| 亚洲一区二区黄色| 国产成人夜色高潮福利影视| 欧美伊人精品成人久久综合97| 欧美高清你懂得| 国产精品婷婷午夜在线观看| 午夜影院久久久| 成人精品小蝌蚪| 日韩美女主播在线视频一区二区三区| 国产欧美一区二区三区在线老狼 | 色综合天天做天天爱| 欧美成人女星排名| 一区二区三区在线观看国产| 国产一区在线视频| 欧美日韩一区视频| 国产精品国产成人国产三级| 美女视频黄a大片欧美| 99re这里都是精品| 久久综合色之久久综合| 亚洲一二三四区不卡| 夫妻av一区二区| 欧美tickling网站挠脚心| 亚洲综合色自拍一区| 国产 欧美在线| 欧美一区二区三区免费在线看| 成人欧美一区二区三区小说| 精品一区二区在线看| 欧美丝袜丝交足nylons图片| 国产精品白丝在线| 国产传媒一区在线| 精品国产免费一区二区三区香蕉 | hitomi一区二区三区精品| 26uuu国产日韩综合| 日本三级韩国三级欧美三级| 欧美三日本三级三级在线播放| 国产精品国产三级国产三级人妇| 国产呦萝稀缺另类资源| 日韩精品最新网址| 日韩中文字幕1| 欧美日韩国产在线播放网站| 樱花草国产18久久久久| 99久久婷婷国产| 亚洲国产精品精华液ab| 国产成人午夜视频| 久久亚洲精品小早川怜子| 奇米777欧美一区二区| 欧美巨大另类极品videosbest | 欧美色偷偷大香| 亚洲一区中文在线| 91国内精品野花午夜精品 | 99视频国产精品| 国产欧美精品一区aⅴ影院 | 精品国产乱码久久| 久久99九九99精品| 精品国内二区三区| 国产精品综合在线视频| 久久这里只有精品视频网| 久久精品999| 精品少妇一区二区三区免费观看| 日韩高清欧美激情| 日韩女优av电影在线观看| 久久 天天综合| 久久久99精品久久| 成人精品免费看| 亚洲欧洲99久久| 91免费视频观看| 亚洲电影中文字幕在线观看| 欧美日韩你懂的| 美女mm1313爽爽久久久蜜臀| 精品日韩成人av| 国产成人免费视| 亚洲天堂成人在线观看| 欧美三级视频在线| 麻豆中文一区二区| 国产嫩草影院久久久久| 99re这里只有精品视频首页| 亚洲午夜精品一区二区三区他趣| 欧美日韩你懂得| 精品一区二区三区视频| 亚洲国产成人自拍| 在线观看一区日韩| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲精品一区二区三区精华液 | 国产91精品欧美| 亚洲精品欧美综合四区| 欧美日韩国产成人在线免费| 美国十次综合导航| 国产精品免费看片| 在线观看三级视频欧美| 亚洲激情图片一区| 久久精品国产网站| 久久久精品国产免费观看同学| 成人av高清在线| 亚洲成人动漫精品| 337p日本欧洲亚洲大胆色噜噜| 丁香桃色午夜亚洲一区二区三区| 亚洲色图制服诱惑 | 一本色道久久综合亚洲91| 精品处破学生在线二十三| 亚洲6080在线| 91美女在线看| 中文字幕一区二区三区蜜月| 国产一区二区三区| 欧美zozozo| 日韩高清一级片| 欧美日韩国产免费一区二区| 亚洲日本电影在线| 成人av手机在线观看| 国产欧美一区二区三区鸳鸯浴| 蜜臀av一区二区在线免费观看 | 欧美成人一级视频| 免费人成黄页网站在线一区二区| 欧美日韩高清一区二区不卡| 一区二区三区欧美久久| 色婷婷av一区二区三区之一色屋| 国产精品的网站| 99久久99久久免费精品蜜臀| 国产欧美精品一区二区三区四区| 国产精品资源站在线| 久久久久久久久久电影| 国产成人精品1024| 国产精品午夜春色av| 99精品在线免费| 亚洲另类春色国产| 欧美日韩中文字幕一区| 午夜久久久久久久久| 欧美一二区视频| 久久丁香综合五月国产三级网站 | 欧美性猛交一区二区三区精品| 一区二区三区在线免费观看| 欧美亚男人的天堂| 日韩影院在线观看| 欧美电视剧在线看免费| 国产精品911| 国产精品美日韩| 色婷婷综合久久| 亚洲高清不卡在线| 欧美成人a∨高清免费观看| 国产激情视频一区二区三区欧美 | 日韩一区二区免费视频| 久久成人精品无人区| 久久精品欧美日韩精品 | 欧美在线观看一区二区| 日韩精品免费专区| 久久丝袜美腿综合| 成人精品视频一区| 视频一区二区中文字幕| 国产午夜精品美女毛片视频| 99久久免费精品高清特色大片| 亚欧色一区w666天堂| 26uuu成人网一区二区三区|