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

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

?? hosts.h

?? <Linux1.0核心游記>電子書+書后源碼+Linux1.0源碼
?? H
字號:
/* *	hosts.h Copyright (C) 1992 Drew Eckhardt  *	mid to low-level SCSI driver interface header by	 *		Drew Eckhardt  * *	<drew@colorado.edu> * *       Modified by Eric Youngdale eric@tantalus.nrl.navy.mil to *       add scatter-gather, multiple outstanding request, and other *       enhancements. *  *	Further modified by Eric Youngdale to support multiple host adapters *	of the same type. */#ifndef _HOSTS_H	#define _HOSTS_H/*	$Header: /usr/src/linux/kernel/blk_drv/scsi/RCS/hosts.h,v 1.3 1993/09/24 12:21:00 drew Exp drew $*//* A jumpstart is often required when the reset() function is called -   many host adapters cannot do this cleanly, so they do nothing at all.   To get the command going again, these routines set this bit in the flags   so that a scsi_request_sense() is executed, and the command starts running   again */#define NEEDS_JUMPSTART 0x20#define SG_NONE 0#define SG_ALL 0xff/* The various choices mean:   NONE: Self evident.  Host adapter is not capable of scatter-gather.   ALL:  Means that the host adapter module can do scatter-gather,         and that there is no limit to the size of the table to which	 we scatter/gather data.  Anything else:  Indicates the maximum number of chains that can be        used in one scatter-gather request.*//*	The Scsi_Host_Template type has all that is needed to interface with a SCSI	host in a device independant matter.  There is one entry for each different	type of host adapter that is supported on the system.*/typedef struct     	{	/*		The name pointer is a pointer to the name of the SCSI		device detected.	*/	char *name;	/*		The detect function shall return non zero on detection,		indicating the number of host adapters of this particular		type were found.  It should also		initialize all data necessary for this particular		SCSI driver.  It is passed the host number, so this host		knows where the first entry is in the scsi_hosts[] array.		Note that the detect routine MUST not call any of the mid level		functions to queue commands because things are not guaranteed		to be set up yet.  The detect routine can send commands to		the host adapter as long as the program control will not be		passed to scsi.c in the processesing of the command.  Note		especially that scsi_malloc/scsi_free must not be called.	*/	int (* detect)(int); 	/*		The info function will return whatever useful		information the developer sees fit.              	*/        const char *(* info)(void);	/*		The command function takes a target, a command (this is a SCSI 		command formatted as per the SCSI spec, nothing strange), a 		data buffer pointer, and data buffer length pointer.  The return		is a status int, bit fielded as follows : 		Byte	What		0	SCSI status code		1	SCSI 1 byte message		2 	host error return.		3	mid level error return	*/	int (* command)(Scsi_Cmnd *);        /*                The QueueCommand function works in a similar manner                to the command function.  It takes an additional parameter,                void (* done)(int host, int code) which is passed the host 		# and exit result when the command is complete.  		Host number is the POSITION IN THE hosts array of THIS		host adapter.        */        int (* queuecommand)(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));	/*		Since the mid level driver handles time outs, etc, we want to 		be able to abort the current command.  Abort returns 0 if the 		abortion was successful.  If non-zero, the code passed to it 		will be used as the return code, otherwise 		DID_ABORT  should be returned.		Note that the scsi driver should "clean up" after itself, 		resetting the bus, etc.  if necessary. 	*/	int (* abort)(Scsi_Cmnd *, int);	/*		The reset function will reset the SCSI bus.  Any executing 		commands should fail with a DID_RESET in the host byte.		The Scsi_Cmnd  is passed so that the reset routine can figure		out which host adapter should be reset, and also which command		within the command block was responsible for the reset in		the first place.  Some hosts do not implement a reset function,		and these hosts must call scsi_request_sense(SCpnt) to keep		the command alive.	*/ 	int (* reset)(Scsi_Cmnd *);	/*		This function is used to select synchronous communications,		which will result in a higher data throughput.  Not implemented		yet.	*/ 	int (* slave_attach)(int, int);	/*		This function determines the bios parameters for a given		harddisk.  These tend to be numbers that are made up by		the host adapter.  Parameters:		size, device number, list (heads, sectors, cylinders)	*/ 	int (* bios_param)(int, int, int []);		/*		This determines if we will use a non-interrupt driven		or an interrupt driven scheme,  It is set to the maximum number		of simulataneous commands a given host adapter will accept.	*/	int can_queue;	/*		In many instances, especially where disconnect / reconnect are 		supported, our host also has an ID on the SCSI bus.  If this is 		the case, then it must be reserved.  Please set this_id to -1 if 		your settup is in single initiator mode, and the host lacks an 		ID.	*/		int this_id;	/*	        This determines the degree to which the host adapter is capable		of scatter-gather.	*/	short unsigned int sg_tablesize;	/*	  True if this host adapter can make good use of linked commands.	  This will allow more than one command to be queued to a given	  unit on a given host.  Set this to the maximum number of command	  blocks to be provided for each device.  Set this to 1 for one	  command block per lun, 2 for two, etc.  Do not set this to 0.	  You should make sure that the host adapter will do the right thing	  before you try setting this above 1.	 */	short cmd_per_lun;	/*		present contains counter indicating how many boards of this		type were found when we did the scan.	*/	unsigned char present;		/*	  true if this host adapter uses unchecked DMA onto an ISA bus.	*/	unsigned unchecked_isa_dma:1;	} Scsi_Host_Template;/*	The scsi_hosts array is	the array containing the data for all 	possible <supported> scsi hosts.   This is similar to the	Scsi_Host_Template, except that we have one entry for each	actual physical host adapter on the system, stored as a linked	list.  Note that if there are 2 aha1542 boards, then there will	be two Scsi_Host entries, but only 1 Scsi_Host_Template entries.*/struct Scsi_Host	{		struct Scsi_Host * next;		volatile unsigned char host_busy;		char host_no;  /* Used for IOCTL_GET_IDLUN */		int last_reset;		struct wait_queue *host_wait;		Scsi_Cmnd *host_queue; 		Scsi_Host_Template * hostt;		/* These parameters should be set by the detect routine */		unsigned char *base;		short unsigned int io_port;		unsigned char irq;		unsigned char dma_channel;		/*		  The rest can be copied from the template, or specifically		  initialized, as required.		  */				int this_id;		short unsigned int sg_tablesize;		unsigned unchecked_isa_dma:1;		int hostdata[0];  /* Used for storage of host specific stuff */	};extern struct Scsi_Host * scsi_hostlist;extern Scsi_Host_Template scsi_hosts[];/*	scsi_init initializes the scsi hosts.*/unsigned int scsi_init(unsigned long memory_start,unsigned long memory_end);extern struct Scsi_Host * scsi_register(int i, int j);extern void scsi_unregister(struct Scsi_Host * i, int j);#define BLANK_HOST {"", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人在线视频网址| 3d动漫精品啪啪一区二区竹菊| 成人a区在线观看| 欧美日韩情趣电影| 国产欧美一区二区精品久导航| 亚洲一区二区三区四区在线 | 亚洲素人一区二区| 精彩视频一区二区三区| 欧美午夜精品理论片a级按摩| 久久久亚洲高清| 九一九一国产精品| 欧美日韩精品一区二区三区四区| 国产精品久久午夜| 国产精品一区在线观看乱码| 欧美日韩一区久久| 一区二区三区精品久久久| 国产成人免费网站| 久久精品人人做人人综合| 人人超碰91尤物精品国产| 色系网站成人免费| 亚洲精品美腿丝袜| 97久久久精品综合88久久| 国产精品色在线观看| 国内精品伊人久久久久av影院| 69堂亚洲精品首页| 天天色天天爱天天射综合| 在线观看一区日韩| 亚洲人成7777| 色婷婷久久久亚洲一区二区三区 | 国产精品一线二线三线精华| 日韩欧美在线影院| 蜜桃传媒麻豆第一区在线观看| 欧美撒尿777hd撒尿| 亚洲国产视频一区二区| 欧美岛国在线观看| 麻豆精品视频在线| 欧美大片在线观看一区二区| 极品尤物av久久免费看| 久久久久久久久久久久久夜| 国产成人在线免费观看| 国产色综合一区| 大胆欧美人体老妇| 亚洲精品国产a久久久久久| 色激情天天射综合网| 一区2区3区在线看| 欧美高清www午色夜在线视频| 日韩1区2区3区| 欧美xingq一区二区| 国产一区二区三区四区五区美女 | 国产精品美女久久久久久久网站| 国产成人精品免费| 亚洲天堂福利av| 91 com成人网| 国产精品69毛片高清亚洲| 国产精品久久久久久久久搜平片 | 成人免费一区二区三区在线观看| 一本久久a久久免费精品不卡| 亚洲国产欧美日韩另类综合 | 国产综合色精品一区二区三区| 精品国产乱码久久久久久1区2区 | 日本韩国欧美在线| 免费高清在线一区| 欧美国产乱子伦| 欧美视频在线一区| 日本美女一区二区三区| 亚洲国产成人在线| 精品视频全国免费看| 另类调教123区 | 蜜臀久久久99精品久久久久久| 精品国产污污免费网站入口| 成人av在线播放网址| 午夜婷婷国产麻豆精品| 国产色91在线| 777奇米成人网| 国产不卡在线视频| 日韩专区中文字幕一区二区| 国产精品丝袜一区| 欧美日韩不卡在线| 99riav一区二区三区| 麻豆精品一区二区三区| 国产精品国产三级国产aⅴ原创| 56国语精品自产拍在线观看| 国产suv一区二区三区88区| 视频一区二区三区在线| 国产精品白丝在线| 亚洲精品在线免费播放| 欧美三级乱人伦电影| 色婷婷一区二区| 精品亚洲成a人| 亚洲3atv精品一区二区三区| 国产精品电影一区二区| xfplay精品久久| 欧美肥妇毛茸茸| 在线日韩一区二区| 成人av在线一区二区| 国产真实乱偷精品视频免| 日本一道高清亚洲日美韩| 伊人开心综合网| 中文字幕制服丝袜成人av | 久久成人免费网| 午夜精品久久久久| 亚洲小说欧美激情另类| 国产精品国产精品国产专区不片| 久久久久久免费网| 日韩一区二区麻豆国产| 欧美日韩日本视频| 欧美日韩三级视频| 777欧美精品| 日韩欧美在线一区二区三区| 欧美日韩国产三级| 精品视频资源站| 欧美日韩国产综合一区二区三区| 日本丰满少妇一区二区三区| 97超碰欧美中文字幕| 91在线云播放| 在线欧美日韩国产| 欧美日韩一区二区三区免费看| 91福利在线看| 欧美视频一区在线| 欧美日韩日本视频| 日韩一区二区三区在线观看| 91精品啪在线观看国产60岁| 日韩欧美一级二级三级久久久| 欧美成人video| 久久久欧美精品sm网站| 国产日韩欧美电影| 成人免费在线视频观看| 亚洲午夜在线电影| 奇米影视在线99精品| 激情五月婷婷综合| 成人激情小说网站| 91女神在线视频| 欧美性受xxxx黑人xyx性爽| 欧美日韩一区久久| 精品国内片67194| 国产片一区二区三区| 亚洲视频图片小说| 丝袜诱惑亚洲看片 | 亚洲高清视频在线| 久久精品免费看| 成人性视频免费网站| 欧美在线短视频| 久久久亚洲综合| 亚洲天堂免费看| 男女激情视频一区| 国产成人激情av| 欧美三区免费完整视频在线观看| 欧美一级一区二区| 国产精品沙发午睡系列990531| 一区二区三国产精华液| 久久国产麻豆精品| 色综合久久综合| 欧美变态口味重另类| 亚洲精品乱码久久久久久久久| 视频一区在线播放| 成人av免费观看| 日韩一区二区三区四区| 综合久久一区二区三区| 麻豆精品久久精品色综合| 99亚偷拍自图区亚洲| 日韩一二三区视频| 一区二区三区在线不卡| 激情综合色播五月| 欧美午夜片在线观看| 国产午夜精品福利| 日韩精品电影在线| 99精品国产99久久久久久白柏 | 欧美在线你懂的| 久久精品综合网| 日本视频免费一区| 91久久精品一区二区| 国产拍揄自揄精品视频麻豆| 人人超碰91尤物精品国产| 色屁屁一区二区| 国产精品久久久久一区二区三区| 美美哒免费高清在线观看视频一区二区| 不卡视频一二三四| 久久一区二区三区四区| 日韩国产精品久久久| 日本久久电影网| 亚洲免费视频成人| 国产精品99久久久久久久女警| 91精品国产欧美一区二区成人| 亚洲欧美视频在线观看| 成人av网站免费观看| 国产日韩欧美一区二区三区乱码 | 欧美一区二区人人喊爽| 亚洲国产精品综合小说图片区| 91看片淫黄大片一级在线观看| 国产亚洲一本大道中文在线| 久久精品99久久久| 91精品久久久久久久99蜜桃| 亚洲电影一区二区| 欧美在线啊v一区| 一区二区三区成人| 欧美午夜精品免费| 香蕉影视欧美成人| 91精品国产综合久久久久| 视频一区视频二区中文| 欧美一级欧美一级在线播放|