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

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

?? wd7000.h

?? LINUX 1.0 內核c源代碼
?? 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一区二区三区免费野_久草精品视频
久久精品999| 蜜臀精品久久久久久蜜臀| 精品国产成人在线影院| 欧美一区二区三区四区在线观看 | 久久久久久久久久久99999| 欧美日韩一区二区三区不卡| 日本韩国欧美一区二区三区| 91天堂素人约啪| 日本丰满少妇一区二区三区| 在线看国产一区| 欧美精品粉嫩高潮一区二区| 欧美一级爆毛片| 精品三级av在线| 中文字幕乱码一区二区免费| 亚洲欧洲三级电影| 亚洲愉拍自拍另类高清精品| 亚洲欧美国产三级| 亚洲成人精品在线观看| 麻豆国产精品777777在线| 极品少妇一区二区| 成人免费看的视频| 91福利视频网站| 日韩一区二区精品在线观看| 国产日韩三级在线| 亚洲影视资源网| 久久99精品久久久久久国产越南| 国模冰冰炮一区二区| av在线一区二区三区| 欧美精品黑人性xxxx| 国产欧美日韩一区二区三区在线观看| 1000精品久久久久久久久| 午夜视频一区在线观看| 国产精品99久久久| 91麻豆视频网站| 精品欧美乱码久久久久久| 亚洲欧美一区二区三区极速播放| 日韩精品电影一区亚洲| 波多野结衣亚洲一区| 日韩视频一区二区在线观看| 亚洲视频香蕉人妖| 美女mm1313爽爽久久久蜜臀| 91一区二区在线观看| 日韩欧美国产小视频| 一区二区三区欧美日韩| 国产麻豆视频一区| 欧美精品丝袜久久久中文字幕| 久久九九久久九九| 蜜臀a∨国产成人精品| 99国产一区二区三精品乱码| 日韩免费一区二区| 日韩精品电影在线| 91高清视频在线| 日韩一区中文字幕| 韩国中文字幕2020精品| 欧美日韩国产在线播放网站| 成人欧美一区二区三区视频网页| 国产一级精品在线| 欧美老肥妇做.爰bbww| 亚洲人成网站色在线观看| 国产乱码精品一区二区三区五月婷| 欧美天天综合网| 一区二区三区小说| 成人av网站免费观看| 久久综合久久综合亚洲| 另类综合日韩欧美亚洲| 91精品国产aⅴ一区二区| 亚洲一区二区三区四区五区中文| www.欧美日韩国产在线| 国产欧美精品日韩区二区麻豆天美| 麻豆精品一区二区综合av| 欧美日韩国产精品成人| 亚洲地区一二三色| 欧美亚洲精品一区| 亚洲一级不卡视频| 欧美日韩国产综合久久| 三级欧美韩日大片在线看| 欧美精品在线一区二区三区| 日韩主播视频在线| 欧美一区二区三区日韩| 麻豆国产精品官网| 国产欧美精品一区二区三区四区 | 欧美大片一区二区三区| 日精品一区二区三区| 欧美一区二区大片| 狠狠久久亚洲欧美| 国产精品美日韩| 91老师片黄在线观看| 亚洲风情在线资源站| 欧美酷刑日本凌虐凌虐| 久久91精品国产91久久小草| 久久久久国产精品厨房| aaa国产一区| 亚洲综合偷拍欧美一区色| 欧美日韩亚洲国产综合| 精品一区二区三区在线观看 | 亚洲欧洲精品一区二区精品久久久| 成人在线综合网| 亚洲愉拍自拍另类高清精品| 91超碰这里只有精品国产| 激情图区综合网| 自拍av一区二区三区| 欧美一区二区三区喷汁尤物| 国产91精品一区二区麻豆网站 | 一二三四区精品视频| 欧美日韩视频在线第一区| 久久机这里只有精品| 欧美激情资源网| 欧美日本视频在线| 国产一区二区三区久久久| 亚洲欧美日韩小说| 日韩视频免费观看高清完整版 | 韩国精品在线观看| 亚洲欧洲成人精品av97| 91精品在线麻豆| 99免费精品视频| 奇米在线7777在线精品| 中文字幕制服丝袜一区二区三区 | 成人福利视频网站| 日韩在线卡一卡二| 亚洲欧洲www| 亚洲精品在线三区| 欧美中文一区二区三区| 国产九九视频一区二区三区| 午夜欧美电影在线观看| 国产亚洲成av人在线观看导航| 欧美专区在线观看一区| 不卡视频一二三四| 国内成+人亚洲+欧美+综合在线 | 蜜臀av一区二区在线免费观看 | 一区二区三区鲁丝不卡| 久久精品免视看| 91精品国产一区二区| 色偷偷久久人人79超碰人人澡| 精品在线亚洲视频| 午夜av区久久| 亚洲高清视频中文字幕| 亚洲欧美偷拍卡通变态| 国产精品美女久久久久久2018| 日韩免费观看2025年上映的电影| 欧美在线视频全部完| 99精品视频在线播放观看| 国产精品小仙女| 久久99久久99小草精品免视看| 亚洲综合视频在线观看| 亚洲精品免费在线观看| 国产精品第一页第二页第三页| 久久伊人中文字幕| 欧美va日韩va| 久久精品视频在线免费观看| 欧美v日韩v国产v| 久久综合色一综合色88| 久久综合色婷婷| 欧美激情一区二区三区| 亚洲欧洲日韩av| 亚洲免费观看高清完整版在线| 中文字幕亚洲视频| 亚洲精品菠萝久久久久久久| 亚洲黄色录像片| 亚洲成人免费电影| 秋霞午夜鲁丝一区二区老狼| 日本特黄久久久高潮| 韩国三级电影一区二区| 国产麻豆精品一区二区| 成人精品国产福利| 91麻豆视频网站| 欧美日韩精品电影| 精品国产伦一区二区三区观看体验| 欧美一级免费观看| 精品电影一区二区三区 | 欧美丰满少妇xxxxx高潮对白 | 国产精品久久久久7777按摩| 国产精品久久久久久久蜜臀| 亚洲乱码国产乱码精品精的特点| 亚洲国产日韩精品| 久久99精品一区二区三区三区| 久久99国产精品久久99| 成人黄色网址在线观看| 欧美三级资源在线| 久久免费看少妇高潮| 综合婷婷亚洲小说| 免费观看91视频大全| 国产a级毛片一区| 欧美日韩成人在线| 久久精品一区二区三区av| 一区二区三区精密机械公司| 蜜桃精品在线观看| 91在线视频播放地址| 欧美日韩一区二区三区在线| 国产亚洲美州欧州综合国| 亚洲自拍偷拍av| 国产凹凸在线观看一区二区| 色婷婷综合久久久久中文一区二区| 制服丝袜亚洲网站| 亚洲欧洲三级电影| 99久久久国产精品免费蜜臀| 欧美日韩另类国产亚洲欧美一级| 久久久久久久网| 日韩精品视频网站| 91蜜桃视频在线| 久久久久青草大香线综合精品|