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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? wd7000.h

?? LINUX1.0源代碼,代碼條理清晰
?? H
字號:
#ifndef _WD7000_H

/* $Id: $
 *
 * Header file for the WD-7000 driver for Linux
 *
 * $Log: $
 * Revision 1.1  1992/07/24  06:27:38  root
 * Initial revision
 *
 * Revision 1.1  1992/07/05  08:32:32  root
 * Initial revision
 *
 * Revision 1.1  1992/05/15  18:38:05  root
 * Initial revision
 *
 * Revision 1.1  1992/04/02  03:23:13  drew
 * Initial revision
 *
 * Revision 1.3  1992/01/27  14:46:29  tthorn
 * *** empty log message ***
 *
 */

#include <linux/types.h>

#undef STATMASK
#undef CONTROL

#define IO_BASE 	0x350
#define IRQ_LVL 	15
#define DMA_CH  	6
#define OGMB_CNT	8
#define ICMB_CNT	16

/* I/O Port interface 4.2 */
/* READ */
#define ASC_STAT IO_BASE
#define INT_IM	0x80		/* Interrupt Image Flag */
#define CMD_RDY	0x40		/* Command Port Ready */
#define CMD_REJ	0x20		/* Command Port Byte Rejected */
#define ASC_INI	0x10		/* ASC Initialized Flag */
#define STATMASK 0xf0		/* The lower 4 Bytes are reserved */

/* This register serves two purposes
 * Diagnostics error code
 * Interrupt Status
 */
#define INTR_STAT ASC_STAT+1
#define ANYINTR	0x80		/* Mailbox Service possible/required */
#define IMB	0x40		/* 1 Incoming / 0 Outgoing */
#define MBMASK 0x3f
/* if MSb is zero, the lower bits are diagnostic status *
 * Diagnostics:
 * 01	No diagnostic error occurred
 * 02	RAM failure
 * 03	FIFO R/W failed
 * 04   SBIC register read/write failed
 * 05   Initialization D-FF failed
 * 06   Host IRQ D-FF failed
 * 07   ROM checksum error
 * Interrupt status (bitwise):
 * 10NNNNNN   outgoing mailbox NNNNNN is free
 * 11NNNNNN   incoming mailbox NNNNNN needs service
 */

/* WRITE */
#define COMMAND ASC_STAT
/*
 *  COMMAND opcodes
 */
#define NO_OP             0
#define INITIALIZATION    1     /* initialization after reset (10 bytes) */
#define DISABLE_UNS_INTR  2     /* disable unsolicited interrupts */
#define ENABLE_UNS_INTR   3     /* enable unsolicited interrupts */
#define INTR_ON_FREE_OGMB 4     /* interrupt on free OGMB */
#define SCSI_SOFT_RESET   5     /* SCSI soft reset */
#define SCSI_HARD_RESET   6     /* SCSI hard reset acknowledge */
#define START_OGMB        0x80  /* start command in OGMB (n) */
#define SCAN_OGMBS        0xc0  /* start multiple commands, signature (n) */
                                /*    where (n) = lower 6 bits */
/*
 *  For INITIALIZATION:
 */
#define BUS_ON            48    /* x 125ns, 48 = 6000ns, BIOS uses 8000ns */
#define BUS_OFF           24    /* x 125ns, 24 = 3000ns, BIOS uses 1875ns */
 
#define INTR_ACK ASC_STAT+1


#define CONTROL ASC_STAT+2
#define INT_EN	0x08		/* Interrupt Enable	*/
#define DMA_EN	0x04		/* DMA Enable		*/
#define SCSI_RES	0x02	/* SCSI Reset		*/
#define ASC_RES	0x01		/* ASC Reset		*/

/* Mailbox Definition */

struct wd_mailbox{
	unchar status;
	unchar scbptr[3];
};


/* These belong in scsi.h also */
#undef any2scsi
#define any2scsi(up, p)			\
(up)[0] = (((long)(p)) >> 16);	\
(up)[1] = ((long)(p)) >> 8;		\
(up)[2] = ((long)(p));

#define scsi2int(up) ( (((long)*(up)) << 16) + (((long)(up)[1]) << 8) + ((long)(up)[2]) )

#define xany2scsi(up, p)	\
(up)[0] = ((long)(p)) >> 24;	\
(up)[1] = ((long)(p)) >> 16;	\
(up)[2] = ((long)(p)) >> 8;	\
(up)[3] = ((long)(p));

#define xscsi2int(up) ( (((long)(up)[0]) << 24) + (((long)(up)[1]) << 16) \
		      + (((long)(up)[2]) <<  8) +  ((long)(up)[3]) )

#define MAX_CDB 12
#define MAX_SENSE 14

typedef struct scb {		/* Command Control Block 5.4.1 */
  unchar op;			/* Command Control Block Operation Code */
  unchar idlun;			/* op=0,2:Target Id, op=1:Initiator Id */
				/* Outbound data transfer, length is checked*/
				/* Inbound data transfer, length is checked */
				/* Logical Unit Number */
  unchar cdb[12];		/* SCSI Command Block */
  unchar status;		/* SCSI Return Status */
  unchar vue;			/* Vendor Unique Error Code */
  unchar maxlen[3];		/* Maximum Data Transfer Length */
  unchar dataptr[3];		/* SCSI Data Block Pointer */
  unchar linkptr[3];		/* Next Command Link Pointer */
  unchar direc;			/* Transfer Direction */
  unchar reserved2[6];		/* SCSI Command Descriptor Block */
                                /* end of hardware SCB */
  Scsi_Cmnd *SCpnt;             /* Scsi_Cmnd using this SCB */
  struct scb *next;             /* for lists of scbs */
} Scb;

/*
 *  WD7000-specific scatter/gather element structure
 */
typedef struct sgb {
    unchar len[3];
    unchar ptr[3];
} Sgb;

/*
 *  Note:  MAX_SCBS _must_ be defined large enough to keep ahead of the
 *  demand for SCBs, which will be at most WD7000_Q * WD7000_SG.  1 is
 *  added to each because they can be 0.
 */
#define MAX_SCBS  ((WD7000_Q+1) * (WD7000_SG+1))

/*
 *  The driver is written to allow host-only commands to be executed.  These
 *  use a 16-byte block called an ICB.
 *
 *  (Currently, only wd7000_info uses this, to get the firmware rev. level.)
 */
#define ICB_STATUS  16          /* set to icmb status by wd7000_intr_handle */
#define ICB_PHASE   17          /* set to 0 by wd7000_intr_handle */
#define ICB_LEN     18          /* actually 16; this includes the above */

int wd7000_detect(int);
int wd7000_command(Scsi_Cmnd *);
int wd7000_queuecommand(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
int wd7000_abort(Scsi_Cmnd *, int);
const char *wd7000_info(void);
int wd7000_reset(Scsi_Cmnd *);
int wd7000_biosparam(int, int, int*);

#ifndef NULL
	#define NULL 0
#endif

/*
 *  Define WD7000_SG to be the number of Sgbs that will fit in a block of
 *  size WD7000_SCRIBBLE.  WD7000_SCRIBBLE must be 512, 1024, 2048, or 4096.
 *
 *  The sg_tablesize value will default to SG_NONE for older boards (before
 *  rev 7.0), but will be changed to WD7000_SG when a newer board is
 *  detected.
 */
#define WD7000_SCRIBBLE  512

#define WD7000_Q    OGMB_CNT
#define WD7000_SG   (WD7000_SCRIBBLE / sizeof(Sgb))

#define WD7000 {\
	"Western Digital WD-7000",      \
	wd7000_detect,                  \
	wd7000_info, wd7000_command,	\
	wd7000_queuecommand,	        \
	wd7000_abort,			\
	wd7000_reset,			\
	NULL,                           \
	wd7000_biosparam,               \
	WD7000_Q, 7, SG_NONE, 1, 0, 1}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩激情视频在线观看| 欧美日韩一区在线观看| 国产资源在线一区| 日本成人在线一区| 免费观看一级特黄欧美大片| 丝袜美腿高跟呻吟高潮一区| 天天综合天天综合色| 日本在线不卡视频一二三区| 日本亚洲一区二区| 久久国产尿小便嘘嘘尿| 黄页视频在线91| 国产成人免费在线视频| 成人免费毛片片v| 91在线码无精品| 91久久精品一区二区| 色婷婷一区二区| 欧美日韩免费电影| 在线不卡的av| 久久综合狠狠综合久久综合88| 精品国产凹凸成av人导航| 久久久精品一品道一区| 综合亚洲深深色噜噜狠狠网站| 亚洲精品美腿丝袜| 轻轻草成人在线| 国产成人亚洲综合a∨婷婷| 99久久伊人精品| 精品视频在线视频| 精品福利视频一区二区三区| 日本一区二区三区久久久久久久久不| 中文字幕一区在线| 亚洲高清免费在线| 国产自产v一区二区三区c| 99精品国产热久久91蜜凸| 欧美日韩国产成人在线免费| 精品成人私密视频| 综合色中文字幕| 蜜臀久久99精品久久久画质超高清| 激情欧美日韩一区二区| 91女神在线视频| 日韩欧美中文字幕精品| 国产精品久久久久婷婷| 午夜精品一区二区三区电影天堂| 国产综合久久久久久鬼色| 色综合咪咪久久| 欧美大片一区二区三区| 国产精品久久夜| 日韩激情中文字幕| 成人aaaa免费全部观看| 制服丝袜av成人在线看| 欧美韩日一区二区三区| 日韩福利电影在线观看| 成人激情开心网| 日韩写真欧美这视频| 亚洲欧洲av色图| 久久精品99国产国产精| 在线视频一区二区三区| 久久久不卡网国产精品一区| 亚洲自拍偷拍欧美| 国产伦精品一区二区三区免费迷| 欧美亚洲自拍偷拍| 国产无一区二区| 蜜桃av一区二区| 欧美无乱码久久久免费午夜一区| 亚洲国产精品高清| 美国十次综合导航| 欧美三级日韩三级| 亚洲欧洲另类国产综合| 免费成人在线视频观看| 欧洲亚洲精品在线| 欧美国产视频在线| 精品一区二区三区日韩| 欧美日韩一区 二区 三区 久久精品 | 国内精品国产成人国产三级粉色| 色天天综合久久久久综合片| 欧美经典一区二区三区| 免费不卡在线视频| 欧美电影影音先锋| 亚洲精品一卡二卡| 成人av在线看| 亚洲国产高清aⅴ视频| 精品一二三四区| 日韩欧美电影在线| 日韩高清不卡在线| 欧美日韩午夜精品| 亚洲综合一区二区三区| 色网综合在线观看| 中文字幕亚洲视频| 不卡视频在线看| 国产精品乱码人人做人人爱 | 欧美一区二区三区免费大片| 亚洲六月丁香色婷婷综合久久 | 欧美人妇做爰xxxⅹ性高电影| 亚洲视频小说图片| 成人aaaa免费全部观看| 中文字幕不卡在线| 东方aⅴ免费观看久久av| 久久久久97国产精华液好用吗| 狠狠久久亚洲欧美| 久久综合精品国产一区二区三区| 国内外成人在线| 精品国产91亚洲一区二区三区婷婷 | 亚洲h在线观看| 欧美日韩日本视频| 午夜精品一区二区三区三上悠亚| 欧美日韩精品一区二区天天拍小说| 亚洲成人av免费| 7777精品久久久大香线蕉| 天堂蜜桃一区二区三区| 日韩欧美美女一区二区三区| 青青草国产精品亚洲专区无| 日韩一区二区影院| 极品美女销魂一区二区三区免费| 亚洲精品在线观| 国产成人啪免费观看软件| 国产精品国产三级国产三级人妇 | 国产一区二区久久| 国产日本欧洲亚洲| 99久久精品免费| 亚洲一级二级在线| 制服.丝袜.亚洲.另类.中文 | 欧美成人r级一区二区三区| 久久精品国产秦先生| 久久综合av免费| www.在线欧美| 亚洲bt欧美bt精品777| 精品日本一线二线三线不卡| 国产激情91久久精品导航| 亚洲欧美自拍偷拍色图| 欧美色网一区二区| 久久成人麻豆午夜电影| 中文字幕不卡三区| 日本高清免费不卡视频| 美女看a上一区| 国产精品每日更新| 欧美剧在线免费观看网站| 国产麻豆视频一区二区| 日韩美女啊v在线免费观看| 欧美狂野另类xxxxoooo| 国产福利视频一区二区三区| 亚洲综合色在线| 亚洲精品在线观| 91福利国产精品| 激情成人综合网| 一区二区欧美国产| 亚洲精品一线二线三线无人区| 99久精品国产| 免费在线欧美视频| 中文字幕综合网| 日韩欧美第一区| 日本丰满少妇一区二区三区| 久久99在线观看| 亚洲永久免费视频| 国产丝袜欧美中文另类| 欧美日韩亚洲高清一区二区| 国产91丝袜在线18| 日韩成人av影视| 亚洲色欲色欲www在线观看| 欧美成人精精品一区二区频| 91丨九色丨黑人外教| 国产在线观看免费一区| 亚洲一区二区三区在线看| 久久精品一区二区三区四区| 欧美亚洲综合一区| 成人激情综合网站| 麻豆精品在线看| 亚洲综合小说图片| 国产精品久久久久一区| 亚洲精品一区二区三区99 | 亚洲色图清纯唯美| 欧美精品一区二区三区蜜桃视频| 日本丰满少妇一区二区三区| 国产高清不卡一区| 美女一区二区久久| 午夜精品久久久久影视| 综合久久久久综合| 亚洲国产精品激情在线观看| 精品国产a毛片| 欧美一级在线观看| 欧美色区777第一页| 99国产麻豆精品| 成人综合在线观看| 国产美女一区二区| 看片的网站亚洲| 日韩精品亚洲专区| 亚洲国产成人av| 一区二区三区av电影 | 天天影视涩香欲综合网| 亚洲欧美日韩中文字幕一区二区三区| 久久久久久久性| 欧美大胆一级视频| 91精品国产免费| 欧美群妇大交群中文字幕| 91久久精品一区二区三区| 97精品国产露脸对白| 成人av网站免费| 成人免费高清在线| 粉嫩av亚洲一区二区图片| 国产成人在线视频网址| 国产精品夜夜嗨| 国产91精品一区二区|