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

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

?? hosts.c

?? <Linux1.0核心游記>電子書+書后源碼+Linux1.0源碼
?? C
字號(hào):
/* *	hosts.c Copyright (C) 1992 Drew Eckhardt  *	mid to lowlevel SCSI driver interface by *		Drew Eckhardt  * *	<drew@colorado.edu> *//* *	This file contains the medium level SCSI *	host interface initialization, as well as the scsi_hosts array of SCSI *	hosts currently present in the system.  */#include <linux/config.h>#include "../block/blk.h"#include <linux/kernel.h>#include <linux/string.h>#include "scsi.h"#ifndef NULL #define NULL 0L#endif#define HOSTS_C#include "hosts.h"#ifdef CONFIG_SCSI_AHA152X#include "aha152x.h"#endif#ifdef CONFIG_SCSI_AHA1542#include "aha1542.h"#endif#ifdef CONFIG_SCSI_AHA1740#include "aha1740.h"#endif#ifdef CONFIG_SCSI_FUTURE_DOMAIN#include "fdomain.h"#endif#ifdef CONFIG_SCSI_GENERIC_NCR5380#include "g_NCR5380.h"#endif#ifdef CONFIG_SCSI_PAS16#include "pas16.h"#endif#ifdef CONFIG_SCSI_SEAGATE#include "seagate.h"#endif#ifdef CONFIG_SCSI_T128#include "t128.h"#endif#ifdef CONFIG_SCSI_ULTRASTOR#include "ultrastor.h"#endif#ifdef CONFIG_SCSI_7000FASST#include "wd7000.h"#endif#ifdef CONFIG_SCSI_DEBUG#include "scsi_debug.h"#endif/*static const char RCSid[] = "$Header: /usr/src/linux/kernel/blk_drv/scsi/RCS/hosts.c,v 1.3 1993/09/24 12:21:00 drew Exp drew $";*//* *	The scsi host entries should be in the order you wish the  *	cards to be detected.  A driver may appear more than once IFF *	it can deal with being detected (and therefore initialized)  *	with more than one simulatenous host number, can handle being *	rentrant, etc. * *	They may appear in any order, as each SCSI host  is told which host number it is *	during detection. *//* This is a placeholder for controllers that are not configured into   the system - we do this to ensure that the controller numbering is   always consistent, no matter how the kernel is configured. */#define NO_CONTROLLER {NULL, NULL, NULL, NULL, NULL, NULL, NULL, \	        NULL, NULL, 0, 0, 0, 0, 0, 0}/* *	When figure is run, we don't want to link to any object code.  Since  *	the macro for each host will contain function pointers, we cannot  *	use it and instead must use a "blank" that does no such  *	idiocy. */Scsi_Host_Template scsi_hosts[] =	{#ifdef CONFIG_SCSI_AHA152X	AHA152X,#endif#ifdef CONFIG_SCSI_AHA1542	AHA1542,#endif#ifdef CONFIG_SCSI_AHA1740	AHA1740,#endif#ifdef CONFIG_SCSI_FUTURE_DOMAIN	FDOMAIN_16X0,#endif#ifdef CONFIG_SCSI_GENERIC_NCR5380        GENERIC_NCR5380,#endif#ifdef CONFIG_SCSI_PAS16	MV_PAS16,#endif#ifdef CONFIG_SCSI_SEAGATE	SEAGATE_ST0X,#endif#ifdef CONFIG_SCSI_T128        TRANTOR_T128,#endif#ifdef CONFIG_SCSI_ULTRASTOR	ULTRASTOR_14F,#endif#ifdef CONFIG_SCSI_7000FASST	WD7000,#endif#ifdef CONFIG_SCSI_DEBUG	SCSI_DEBUG,#endif	};#define MAX_SCSI_HOSTS (sizeof(scsi_hosts) / sizeof(Scsi_Host_Template))/* *	Our semaphores and timeout counters, where size depends on MAX_SCSI_HOSTS here.  */struct Scsi_Host * scsi_hostlist = NULL;static int scsi_init_memory_start = 0;int max_scsi_hosts = 0;static int next_host = 0;voidscsi_unregister(struct Scsi_Host * sh, int j){	struct Scsi_Host * shpnt;	if(((unsigned int) sh) + sizeof(struct Scsi_Host) + j != scsi_init_memory_start)		panic("Unable to unregister scsi host");	if(scsi_hostlist == sh)		scsi_hostlist = NULL;	else {		shpnt = scsi_hostlist;		while(shpnt->next != sh) shpnt = shpnt->next;		shpnt->next = shpnt->next->next;	};	next_host--;	scsi_init_memory_start = (unsigned int) sh;}/* We call this when we come across a new host adapter. We only do this   once we are 100% sure that we want to use this host adapter -  it is a   pain to reverse this, so we try and avoid it */struct Scsi_Host * scsi_register(int i, int j){	struct Scsi_Host * retval, *shpnt;	retval = (struct Scsi_Host*) scsi_init_memory_start;	scsi_init_memory_start += sizeof(struct Scsi_Host) + j;	retval->host_busy = 0;	retval->host_no = next_host++;	retval->host_queue = NULL;		retval->host_wait = NULL;		retval->last_reset = 0;		retval->hostt = &scsi_hosts[i];		retval->next = NULL;#ifdef DEBUG	printk("Register %x %x: %d %d\n", retval, retval->hostt, i, j);#endif	/* The next three are the default values which can be overridden	   if need be */	retval->this_id = scsi_hosts[i].this_id;	retval->sg_tablesize = scsi_hosts[i].sg_tablesize;	retval->unchecked_isa_dma = scsi_hosts[i].unchecked_isa_dma;	if(!scsi_hostlist)		scsi_hostlist = retval;	else	{		shpnt = scsi_hostlist;		while(shpnt->next) shpnt = shpnt->next;		shpnt->next = retval;	}	return retval;}unsigned intscsi_init(unsigned long memory_start,unsigned long memory_end){	static int called = 0;	int i, j, count, pcount;	count = 0;	if(called) return memory_start;	scsi_init_memory_start = memory_start;	called = 1;		for (i = 0; i < MAX_SCSI_HOSTS; ++i)	{		/*		 * Initialize our semaphores.  -1 is interpreted to mean 		 * "inactive" - where as 0 will indicate a time out condition.		 */ 				pcount = next_host;		if ((scsi_hosts[i].detect) && 		    (scsi_hosts[i].present = 		     scsi_hosts[i].detect(i)))		{					/* The only time this should come up is when people use			   some kind of patched driver of some kind or another. */			if(pcount == next_host) {				if(scsi_hosts[i].present > 1)					panic("Failure to register low-level scsi driver");				/* The low-level driver failed to register a driver.  We				   can do this now. */				scsi_register(i,0);			};			for(j = 0; j < scsi_hosts[i].present; j++)				printk ("scsi%d : %s\n",					count++, scsi_hosts[i].name);		}	}	printk ("scsi : %d hosts.\n", count);		max_scsi_hosts = count;	return scsi_init_memory_start;}#ifndef CONFIG_BLK_DEV_SDunsigned long sd_init(unsigned long memory_start, unsigned long memory_end){  return memory_start;};unsigned long sd_init1(unsigned long memory_start, unsigned long memory_end){  return memory_start;};void sd_attach(Scsi_Device * SDp){};int NR_SD=-1;int MAX_SD=0;#endif#ifndef CONFIG_BLK_DEV_SRunsigned long sr_init(unsigned long memory_start, unsigned long memory_end){  return memory_start;};unsigned long sr_init1(unsigned long memory_start, unsigned long memory_end){  return memory_start;};void sr_attach(Scsi_Device * SDp){};int NR_SR=-1;int MAX_SR=0;#endif#ifndef CONFIG_CHR_DEV_STunsigned long st_init(unsigned long memory_start, unsigned long memory_end){  return memory_start;};unsigned long st_init1(unsigned long memory_start, unsigned long memory_end){  return memory_start;};void st_attach(Scsi_Device * SDp){};int NR_ST=-1;int MAX_ST=0;#endif#ifndef CONFIG_CHR_DEV_SGunsigned long sg_init(unsigned long memory_start, unsigned long memory_end){  return memory_start;};unsigned long sg_init1(unsigned long memory_start, unsigned long memory_end){  return memory_start;};void sg_attach(Scsi_Device * SDp){};int NR_SG=-1;int MAX_SG=0;#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天堂在线亚洲视频| 亚洲成人精品影院| 91麻豆精品国产自产在线| 国产91精品一区二区麻豆亚洲| 亚洲一区二区美女| 国产精品美女视频| 2020国产精品| 欧美精选一区二区| 色偷偷88欧美精品久久久| 国产成人亚洲综合a∨婷婷| 奇米综合一区二区三区精品视频 | 91精品国产免费久久综合| 成人av一区二区三区| 九九国产精品视频| 视频一区二区国产| 亚洲成人免费视| 一区二区国产盗摄色噜噜| 国产精品久久网站| 国产亚洲精品超碰| 精品国产乱码久久久久久久| 555夜色666亚洲国产免| 欧美三级电影在线观看| 色婷婷久久久亚洲一区二区三区| 丁香桃色午夜亚洲一区二区三区| 蜜臀a∨国产成人精品| 午夜av一区二区| 亚洲一区成人在线| 亚洲大片在线观看| 亚洲一卡二卡三卡四卡五卡| 一区二区三区在线免费视频| 亚洲视频1区2区| 中文字幕一区二区三区在线播放 | 亚洲女同ⅹxx女同tv| 亚洲国产精品t66y| 国产精品美女久久久久久久久| 久久久久亚洲蜜桃| 国产欧美日韩综合精品一区二区| 欧美精品一区男女天堂| 26uuu精品一区二区在线观看| 精品乱人伦小说| 日韩一区二区三区在线视频| 欧美电影免费观看高清完整版在 | 国产日韩精品一区二区三区在线| 久久亚洲一级片| 久久综合色鬼综合色| 久久精品亚洲精品国产欧美kt∨| 国产无遮挡一区二区三区毛片日本| 久久久精品国产免费观看同学| 国产亚洲欧美色| 亚洲国产精品激情在线观看| 国产精品进线69影院| 亚洲三级在线免费观看| 亚洲图片有声小说| 美女一区二区三区| 国产精品系列在线播放| 成人app在线观看| 日本精品一级二级| 欧美剧情电影在线观看完整版免费励志电影| 欧美午夜精品免费| 欧美一区二区黄色| 久久蜜桃香蕉精品一区二区三区| 中文字幕乱码日本亚洲一区二区| 日韩美女久久久| 天使萌一区二区三区免费观看| 免播放器亚洲一区| 成人午夜私人影院| 欧美日韩不卡在线| 久久久久久久国产精品影院| 亚洲婷婷综合色高清在线| 亚洲第一激情av| 国模娜娜一区二区三区| 99re热视频这里只精品| 欧美男同性恋视频网站| 国产欧美日韩在线观看| 亚洲图片有声小说| 国产精品一区二区果冻传媒| 91免费视频网| 欧美一级久久久久久久大片| 国产精品久久网站| 日本aⅴ精品一区二区三区| 成人美女在线观看| 在线电影院国产精品| 亚洲国产精品成人综合色在线婷婷 | 欧美国产精品劲爆| 午夜影院在线观看欧美| 国产大陆精品国产| 91麻豆精品国产91久久久久久久久 | 蜜桃精品视频在线观看| 99re免费视频精品全部| 日韩精品专区在线| 亚洲综合免费观看高清在线观看| 久久爱www久久做| 在线观看免费成人| 中文字幕国产一区二区| 热久久国产精品| 91成人免费在线视频| 久久久久久日产精品| 午夜在线电影亚洲一区| 99国产欧美久久久精品| 精品成人在线观看| 亚洲第一狼人社区| 色综合久久88色综合天天免费| 精品理论电影在线观看| 亚洲国产精品久久不卡毛片| 成人一级片网址| 精品福利一二区| 日本美女视频一区二区| 91福利社在线观看| 国产精品电影一区二区三区| 激情图片小说一区| 678五月天丁香亚洲综合网| 一级女性全黄久久生活片免费| 顶级嫩模精品视频在线看| 欧美电影免费观看高清完整版在 | 激情综合亚洲精品| 欧美一二三四在线| 日韩成人午夜精品| 欧美精品v日韩精品v韩国精品v| 亚洲精品国产高清久久伦理二区| fc2成人免费人成在线观看播放| 精品久久免费看| 久久精品久久99精品久久| 欧美一区二区成人| 日韩vs国产vs欧美| 精品视频在线看| 亚洲国产一区二区视频| 色狠狠综合天天综合综合| 亚洲欧美一区二区三区极速播放 | 免费成人在线影院| 日韩一区和二区| 免费成人av在线| 日韩欧美国产一区二区三区| 日本欧美一区二区在线观看| 日韩一级完整毛片| 久久精品久久精品| 精品国产免费人成在线观看| 久久精品理论片| 久久久久久亚洲综合影院红桃| 国产精品99久久久| 欧美国产精品专区| 色综合视频在线观看| 一级中文字幕一区二区| 欧美老年两性高潮| 久久av中文字幕片| 欧美精品一区二区三区高清aⅴ| 国产精品中文字幕一区二区三区| 国产亚洲精品资源在线26u| 不卡区在线中文字幕| 亚洲欧美日韩精品久久久久| 欧美中文字幕久久| 日精品一区二区| 欧美不卡在线视频| 国产很黄免费观看久久| 亚洲色图制服丝袜| 欧美性色综合网| 麻豆91在线播放| 中文字幕欧美日韩一区| 一本一本久久a久久精品综合麻豆| 亚洲蜜臀av乱码久久精品蜜桃| 欧美日韩一二三| 九九热在线视频观看这里只有精品| 国产性色一区二区| 91蜜桃免费观看视频| 午夜精品免费在线| 久久毛片高清国产| 日本乱人伦一区| 久久er精品视频| 成人欧美一区二区三区在线播放| 欧美日韩在线播放三区四区| 美女视频一区二区三区| 国产精品无遮挡| 欧美日韩一区不卡| 国产精品亚洲一区二区三区在线| 亚洲女人的天堂| 精品国产乱码久久久久久久| 97国产精品videossex| 五月婷婷综合在线| 中文字幕av免费专区久久| 欧美日韩在线播放| 国产成人精品aa毛片| 亚洲高清在线视频| 亚洲国产精品传媒在线观看| 在线成人av影院| hitomi一区二区三区精品| 免费日韩伦理电影| 亚洲精品大片www| 久久香蕉国产线看观看99| 欧美色综合网站| 国产成人在线免费观看| 日韩激情av在线| 国产精品电影一区二区| 欧美电影精品一区二区| 在线观看一区二区视频| 国产99久久久国产精品潘金 | 亚洲激情自拍视频| 久久久久亚洲蜜桃| 91.com在线观看| 色先锋aa成人| 不卡一区二区三区四区| 国产麻豆一精品一av一免费 |