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

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

?? fdomain.c

?? linux 1.0 源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
   return 1;}void my_done( int error ){   if (in_command) {      in_command = 0;      outb( 0x00, Interrupt_Cntl_port );      fdomain_make_bus_idle();      current_SC->result = error;      if (current_SC->scsi_done)	    current_SC->scsi_done( current_SC );      else panic( "Future Domain: current_SC->scsi_done() == NULL" );   } else {      panic( "Future Domain: my_done() called outside of command\n" );   }#if DEBUG_RACE   in_interrupt_flag = 0;#endif}void fdomain_16x0_intr( int unused ){   int      status;   int      done = 0;   unsigned data_count;   sti();      outb( 0x00, Interrupt_Cntl_port );   /* We usually have one spurious interrupt after each command.  Ignore it. */   if (!in_command || !current_SC) {	/* Spurious interrupt */#if EVERY_ACCESS      printk( "Spurious interrupt, in_command = %d, current_SC = %x\n",	      in_command, current_SC );#endif      return;   }   /* Abort calls my_done, so we do nothing here. */   if (current_SC->SCp.phase & aborted) {#if DEBUG_ABORT      printk( "Interrupt after abort, ignoring\n" );#endif      /*      return; */   }#if DEBUG_RACE   ++in_interrupt_flag;#endif   if (current_SC->SCp.phase & in_arbitration) {      status = inb( TMC_Status_port );        /* Read adapter status */      if (!(status & 0x02)) {#if EVERY_ACCESS	 printk( " AFAIL " );#endif	 my_done( DID_BUS_BUSY << 16 );	 return;      }      current_SC->SCp.phase = in_selection;            outb( 0x40 | FIFO_COUNT, Interrupt_Cntl_port );      outb( 0x82, SCSI_Cntl_port ); /* Bus Enable + Select */      outb( adapter_mask | (1 << current_SC->target), SCSI_Data_NoACK_port );            /* Stop arbitration and enable parity */      outb( 0x10 | PARITY_MASK, TMC_Cntl_port );#if DEBUG_RACE      in_interrupt_flag = 0;#endif      return;   } else if (current_SC->SCp.phase & in_selection) {      status = inb( SCSI_Status_port );      if (!(status & 0x01)) {	 /* Try again, for slow devices */	 if (fdomain_select( current_SC->target )) {#if EVERY_ACCESS	    printk( " SFAIL " );#endif	    my_done( DID_NO_CONNECT << 16 );	    return;	 } else {#if EVERY_ACCESS	    printk( " AltSel " );#endif	    /* Stop arbitration and enable parity */	    outb( 0x10 | PARITY_MASK, TMC_Cntl_port );	 }      }      current_SC->SCp.phase = in_other;      outb( 0x90 | FIFO_COUNT, Interrupt_Cntl_port );      outb( 0x80, SCSI_Cntl_port );#if DEBUG_RACE      in_interrupt_flag = 0;#endif      return;   }      /* current_SC->SCp.phase == in_other: this is the body of the routine */      status = inb( SCSI_Status_port );      if (status & 0x10) {	/* REQ */            switch (status & 0x0e) {             case 0x08:		/* COMMAND OUT */	 outb( current_SC->cmnd[current_SC->SCp.sent_command++],	       Write_SCSI_Data_port );#if EVERY_ACCESS	 printk( "CMD = %x,",		 current_SC->cmnd[ current_SC->SCp.sent_command - 1] );#endif	 break;      case 0x00:		/* DATA OUT -- tmc18c50 only */	 if (chip != tmc1800 && !current_SC->SCp.have_data_in) {	    current_SC->SCp.have_data_in = -1;	    outb( 0xd0 | PARITY_MASK, TMC_Cntl_port );	 }	 break;      case 0x04:		/* DATA IN -- tmc18c50 only */	 if (chip != tmc1800 && !current_SC->SCp.have_data_in) {	    current_SC->SCp.have_data_in = 1;	    outb( 0x90 | PARITY_MASK, TMC_Cntl_port );	 }	 break;      case 0x0c:		/* STATUS IN */	 current_SC->SCp.Status = inb( Read_SCSI_Data_port );#if EVERY_ACCESS	 printk( "Status = %x, ", current_SC->SCp.Status );#endif#if ERRORS_ONLY	 if (current_SC->SCp.Status && current_SC->SCp.Status != 2) {	    printk( "Future Domain: target = %d, command = %x, "		    "Status = %x\n",		    current_SC->target, current_SC->cmnd[0],		    current_SC->SCp.Status );	 }#endif	       break;      case 0x0a:		/* MESSAGE OUT */	 outb( MESSAGE_REJECT, Write_SCSI_Data_port ); /* Reject */	 break;      case 0x0e:		/* MESSAGE IN */	 current_SC->SCp.Message = inb( Read_SCSI_Data_port );#if EVERY_ACCESS	 printk( "Message = %x, ", current_SC->SCp.Message );#endif	 if (!current_SC->SCp.Message) ++done;#if DEBUG_MESSAGES || EVERY_ACCESS	 if (current_SC->SCp.Message) {	    printk( "Future Domain: Message = %x\n",		    current_SC->SCp.Message );	 }#endif	 break;      }   }   if (chip == tmc1800       && !current_SC->SCp.have_data_in       && (current_SC->SCp.sent_command	   >= COMMAND_SIZE( current_SC->cmnd[ 0 ] ))) {				/* We have to get the FIFO direction				   correct, so I've made a table based				   on the SCSI Standard of which commands				   appear to require a DATA OUT phase.				 */      /*	p. 94: Command for all device types	CHANGE DEFINITION            40 DATA OUT	COMPARE                      39 DATA OUT	COPY                         18 DATA OUT	COPY AND VERIFY              3a DATA OUT	INQUIRY                      12 	LOG SELECT                   4c DATA OUT	LOG SENSE                    4d	MODE SELECT (6)              15 DATA OUT	MODE SELECT (10)             55 DATA OUT	MODE SENSE (6)               1a	MODE SENSE (10)              5a	READ BUFFER                  3c	RECEIVE DIAGNOSTIC RESULTS   1c	REQUEST SENSE                03	SEND DIAGNOSTIC              1d DATA OUT	TEST UNIT READY              00	WRITE BUFFER                 3b DATA OUT	p.178: Commands for direct-access devices (not listed on p. 94)	FORMAT UNIT                  04 DATA OUT	LOCK-UNLOCK CACHE            36	PRE-FETCH                    34	PREVENT-ALLOW MEDIUM REMOVAL 1e	READ (6)/RECEIVE             08	READ (10)                    3c	READ CAPACITY                25	READ DEFECT DATA (10)        37	READ LONG                    3e	REASSIGN BLOCKS              07 DATA OUT	RELEASE                      17	RESERVE                      16 DATA OUT	REZERO UNIT/REWIND           01	SEARCH DATA EQUAL (10)       31 DATA OUT	SEARCH DATA HIGH (10)        30 DATA OUT	SEARCH DATA LOW (10)         32 DATA OUT	SEEK (6)                     0b	SEEK (10)                    2b	SET LIMITS (10)              33	START STOP UNIT              1b	SYNCHRONIZE CACHE            35	VERIFY (10)                  2f	WRITE (6)/PRINT/SEND         0a DATA OUT	WRITE (10)/SEND              2a DATA OUT	WRITE AND VERIFY (10)        2e DATA OUT	WRITE LONG                   3f DATA OUT	WRITE SAME                   41 DATA OUT ?	p. 261: Commands for sequential-access devices (not previously listed)	ERASE                        19	LOAD UNLOAD                  1b	LOCATE                       2b	READ BLOCK LIMITS            05	READ POSITION                34	READ REVERSE                 0f	RECOVER BUFFERED DATA        14	SPACE                        11	WRITE FILEMARKS              10 ?	p. 298: Commands for printer devices (not previously listed)	****** NOT SUPPORTED BY THIS DRIVER, since 0b is SEEK (6) *****	SLEW AND PRINT               0b DATA OUT  -- same as seek	STOP PRINT                   1b	SYNCHRONIZE BUFFER           10	p. 315: Commands for processor devices (not previously listed)		p. 321: Commands for write-once devices (not previously listed)	MEDIUM SCAN                  38	READ (12)                    a8	SEARCH DATA EQUAL (12)       b1 DATA OUT	SEARCH DATA HIGH (12)        b0 DATA OUT	SEARCH DATA LOW (12)         b2 DATA OUT	SET LIMITS (12)              b3	VERIFY (12)                  af	WRITE (12)                   aa DATA OUT	WRITE AND VERIFY (12)        ae DATA OUT	p. 332: Commands for CD-ROM devices (not previously listed)	PAUSE/RESUME                 4b	PLAY AUDIO (10)              45	PLAY AUDIO (12)              a5	PLAY AUDIO MSF               47	PLAY TRACK RELATIVE (10)     49	PLAY TRACK RELATIVE (12)     a9	READ HEADER                  44	READ SUB-CHANNEL             42	READ TOC                     43	p. 370: Commands for scanner devices (not previously listed)	GET DATA BUFFER STATUS       34	GET WINDOW                   25	OBJECT POSITION              31	SCAN                         1b	SET WINDOW                   24 DATA OUT	p. 391: Commands for optical memory devices (not listed)	ERASE (10)                   2c	ERASE (12)                   ac	MEDIUM SCAN                  38 DATA OUT	READ DEFECT DATA (12)        b7	READ GENERATION              29	READ UPDATED BLOCK           2d	UPDATE BLOCK                 3d DATA OUT	p. 419: Commands for medium changer devices (not listed)	EXCHANGE MEDIUM              46	INITIALIZE ELEMENT STATUS    07	MOVE MEDIUM                  a5	POSITION TO ELEMENT          2b	READ ELEMENT STATUS          b8	REQUEST VOL. ELEMENT ADDRESS b5	SEND VOLUME TAG              b6 DATA OUT	p. 454: Commands for communications devices (not listed previously)	GET MESSAGE (6)              08	GET MESSAGE (10)             28	GET MESSAGE (12)             a8      */	      switch (current_SC->cmnd[0]) {      case CHANGE_DEFINITION: case COMPARE:         case COPY:      case COPY_VERIFY:       case LOG_SELECT:      case MODE_SELECT:      case MODE_SELECT_10:    case SEND_DIAGNOSTIC: case WRITE_BUFFER:      case FORMAT_UNIT:       case REASSIGN_BLOCKS: case RESERVE:      case SEARCH_EQUAL:      case SEARCH_HIGH:     case SEARCH_LOW:      case WRITE_6:           case WRITE_10:        case WRITE_VERIFY:      case 0x3f:              case 0x41:      case 0xb1:              case 0xb0:            case 0xb2:      case 0xaa:              case 0xae:      case 0x24:      case 0x38:              case 0x3d:      case 0xb6:	       case 0xea:		/* alternate number for WRITE LONG */	 	 current_SC->SCp.have_data_in = -1;	 outb( 0xd0 | PARITY_MASK, TMC_Cntl_port );	 break;      case 0x00:      default:	 	 current_SC->SCp.have_data_in = 1;	 outb( 0x90 | PARITY_MASK, TMC_Cntl_port );	 break;      }   }   if (current_SC->SCp.have_data_in == -1) { /* DATA OUT */      while ( (data_count = 0x2000 - inw( FIFO_Data_Count_port )) > 512 ) {#if EVERY_ACCESS	 printk( "DC=%d, ", data_count ) ;#endif	 if (data_count > current_SC->SCp.this_residual)	       data_count = current_SC->SCp.this_residual;	 if (data_count > 0) {#if EVERY_ACCESS	    printk( "%d OUT, ", data_count );#endif	    if (data_count == 1) {	       outb( *current_SC->SCp.ptr++, Write_FIFO_port );	       --current_SC->SCp.this_residual;	    } else {	       data_count >>= 1;	       outsw( Write_FIFO_port, current_SC->SCp.ptr, data_count );	       current_SC->SCp.ptr += 2 * data_count;	       current_SC->SCp.this_residual -= 2 * data_count;	    }	 }	 if (!current_SC->SCp.this_residual) {	    if (current_SC->SCp.buffers_residual) {	       --current_SC->SCp.buffers_residual;	       ++current_SC->SCp.buffer;	       current_SC->SCp.ptr = current_SC->SCp.buffer->address;	       current_SC->SCp.this_residual = current_SC->SCp.buffer->length;	    } else		  break;	 }      }   }      if (current_SC->SCp.have_data_in == 1) { /* DATA IN */      while ((data_count = inw( FIFO_Data_Count_port )) > 0) {#if EVERY_ACCESS	 printk( "DC=%d, ", data_count );#endif	 if (data_count > current_SC->SCp.this_residual)	       data_count = current_SC->SCp.this_residual;	 if (data_count) {#if EVERY_ACCESS	    printk( "%d IN, ", data_count );#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产91久久久久久久妲己| 91女厕偷拍女厕偷拍高清| 亚洲男人天堂av| 亚洲天堂中文字幕| 亚洲色图视频网| 亚洲免费伊人电影| 亚洲色图视频网| 午夜电影网亚洲视频| 热久久免费视频| 国产乱码精品一区二区三| 国产精品综合一区二区| 成人激情午夜影院| 欧美亚洲图片小说| 日韩免费高清视频| 国产精品欧美综合在线| 最新热久久免费视频| 亚洲综合久久av| 久久激情五月婷婷| caoporen国产精品视频| 色老汉一区二区三区| 欧美亚洲高清一区| 日韩你懂的在线播放| 国产欧美精品国产国产专区| 亚洲免费观看高清完整版在线观看熊 | 欧美亚洲国产怡红院影院| 欧美午夜不卡在线观看免费| 欧美一区二区三区在| 欧美精品一区二区三区蜜桃视频| 国产精品久久福利| 视频一区国产视频| 成人免费看视频| 欧美精品第1页| 中文字幕在线观看不卡| 天堂精品中文字幕在线| 成人三级伦理片| 欧美精品日韩一区| 国产精品乱人伦一区二区| 婷婷六月综合网| 大胆欧美人体老妇| 欧美一区二区观看视频| 国产精品美女久久福利网站| 午夜影院在线观看欧美| 99精品偷自拍| 精品久久一二三区| 亚洲成人先锋电影| 93久久精品日日躁夜夜躁欧美| 日韩精品一区二区三区蜜臀| 亚洲一区在线视频| aaa欧美大片| 久久久久久一二三区| 日韩av中文字幕一区二区| 色噜噜偷拍精品综合在线| 国产性色一区二区| 久久精品国产77777蜜臀| 色哟哟欧美精品| 国产精品国产三级国产aⅴ中文| 日韩专区欧美专区| 欧美系列日韩一区| 亚洲男人的天堂av| 色综合久久久久久久久久久| 国产精品网站在线观看| 国产中文一区二区三区| 日韩欧美高清一区| 美女一区二区久久| 日韩一区二区三区在线| 日韩电影在线免费观看| 欧美日韩一区久久| 亚洲一区视频在线| 欧美日韩中文国产| 五月综合激情网| 欧美丝袜自拍制服另类| 亚洲精品写真福利| 在线一区二区观看| 亚洲国产精品欧美一二99| 在线看不卡av| 亚洲 欧美综合在线网络| 欧美日韩aaa| 美脚の诱脚舐め脚责91| 精品国产三级a在线观看| 麻豆成人综合网| 久久亚区不卡日本| 成人手机电影网| 亚洲欧美另类小说视频| 91日韩在线专区| 亚州成人在线电影| 日韩三级视频在线观看| 国产综合久久久久久久久久久久| 欧美精品一区二区久久久| 国产精品一区二区不卡| 国产精品福利一区二区| 一本一道波多野结衣一区二区| 亚洲综合一区二区| 日韩欧美国产一区二区在线播放| 韩日欧美一区二区三区| 国产精品三级视频| 在线观看视频一区| 捆绑调教美女网站视频一区| 久久精品夜夜夜夜久久| 99精品欧美一区二区三区综合在线| 一级特黄大欧美久久久| 日韩欧美中文一区| 成人午夜视频在线观看| 亚洲一区二区视频| 精品久久人人做人人爽| 91视频www| 看电视剧不卡顿的网站| 综合欧美亚洲日本| 精品久久99ma| 色伊人久久综合中文字幕| 久久99久久精品| 一区二区三区资源| 久久久噜噜噜久噜久久综合| 欧美三级蜜桃2在线观看| 激情av综合网| 亚洲免费在线视频一区 二区| 日韩女优视频免费观看| 欧美优质美女网站| 99久久久无码国产精品| 美女视频黄a大片欧美| 亚洲品质自拍视频| 久久精子c满五个校花| 欧美日韩视频专区在线播放| 成人久久视频在线观看| 日本麻豆一区二区三区视频| 亚洲日本免费电影| 久久精品亚洲精品国产欧美| 欧美网站大全在线观看| www.日韩在线| 国产精品2024| 久久成人免费日本黄色| 亚洲一区二区三区自拍| 亚洲天堂av一区| 国产女主播一区| 久久精品日产第一区二区三区高清版 | 成人aaaa免费全部观看| 久久99久国产精品黄毛片色诱| 亚洲国产人成综合网站| 国产精品国产精品国产专区不蜜| 精品国产乱码久久久久久蜜臀 | 91精品国产91久久久久久一区二区| 成人精品电影在线观看| 国产精品一卡二| 精品一区免费av| 蜜臀久久99精品久久久久久9| 午夜精品一区二区三区电影天堂 | 国产成都精品91一区二区三| 麻豆国产精品一区二区三区| 午夜精品久久一牛影视| 亚洲国产精品一区二区www| 一区二区三区精品在线观看| 亚洲欧美日本韩国| 一区二区三区在线免费视频| 亚洲自拍偷拍综合| 亚洲小少妇裸体bbw| 亚洲国产美女搞黄色| 天天色综合成人网| 日本欧美加勒比视频| 久久精品噜噜噜成人88aⅴ| 狂野欧美性猛交blacked| 国内不卡的二区三区中文字幕| 国产自产2019最新不卡| 国产精品自拍一区| 91最新地址在线播放| 欧美性受极品xxxx喷水| 欧美猛男超大videosgay| 欧美一区二区三区视频在线观看| 69堂国产成人免费视频| 日韩精品专区在线影院观看| 久久久久久久网| 日韩理论片在线| 午夜精品在线看| 激情综合五月天| aaa亚洲精品| 欧美夫妻性生活| 欧美成人女星排名| 国产精品麻豆欧美日韩ww| 亚洲免费观看高清| 午夜精品福利在线| 免费在线看成人av| 国产激情精品久久久第一区二区| 99re6这里只有精品视频在线观看| 色一情一乱一乱一91av| 日韩精品影音先锋| 亚洲手机成人高清视频| 美女www一区二区| 色综合天天天天做夜夜夜夜做| 欧美亚洲一区三区| 国产日韩欧美电影| 亚洲成人av一区| 成人污污视频在线观看| 欧美剧在线免费观看网站| 久久亚洲私人国产精品va媚药| 亚洲日本青草视频在线怡红院| 日韩精品乱码av一区二区| av不卡在线播放| 日韩精品一区二区三区在线观看| 亚洲免费色视频| 成人综合婷婷国产精品久久免费| 欧美日韩一级黄| 国产精品久久久爽爽爽麻豆色哟哟|