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

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

?? ncr810init.n

?? IXP425的BSP代碼
?? N
字號:
; ncr810init.n Script code for ncr810Lib Driver ;; Copyright 1989-1999 Wind River Systems, Inc.;;/*;Modification history;--------------------;01b,03dec98,ihw  Modified to support concatenated IDENTIFY/normal message;		  out during activation of a new thread.  See ncr810Lib.c.;		  Removed incorrect code at ncr810InitStart - used to;		  disable reselection!  Can't do this even temporarily;		  otherwise valid reselections may not be processed. (24089);01a,28jun95,jds  Created. Adapted from ncr710init.n ;;;INTERNAL;To be documented...;*/#define  NCR_COMPILE#include "drv/scsi/ncr810Script.h";/*****************************************************************************;*;* ncr810Wait - wait for re-selection by target, selection by initiator, or;*              new command from host;*/PROC ncr810Wait:call	REL(timeoutDisable)call	REL(mismatchATNIntrDisable)wait	reselect REL(checkNewCmd);; Have been re-selected by a SCSI target;reselected:clear	target					; required in case SIGP setmove	ssid to sfbr				; save target ID for ISRmove	sfbr to TARGET_BUS_ID;; Check and receive IDENTIFY message in (error if none or incorrect message);int	NCR810_NO_IDENTIFY, when not MSG_IN	; check correct phasemove	from OFFSET_IDENT_IN, when MSG_IN	; read messageint	NCR810_NO_IDENTIFY if not 0x80 and mask 0x7f	; check for IDENTIFYmove	FLAGS_IDENTIFY to HOST_FLAGSint	NCR810_RESELECTED			; all seems OK so far;; Have been selected as a target by another SCSI device.;selected:set	target					; required in case SIGP setmove	ssid to sfbr				; save initiator ID for ISRmove	sfbr to TARGET_BUS_ID;; Wait for SEL to be de-asserted (see NCR Device Errata Listing 135, item 2);selAsserted:move	sbcl & SBCL_SEL to sfbr			; get state of SCSI SEL linejump	REL(selAsserted) if not 0		; loop while SEL is asserted;; Test whether ATN is asserted during selection;move	sbcl & SBCL_ATN to sfbr			; get state of SCSI ATN linejump	REL(atnAsserted) if not 0;; Selection without ATN, and hence without an identification message;move	0 to HOST_FLAGSint	NCR810_SELECTED;; Selection with ATN - read IDENTIFY message in;atnAsserted:move	from OFFSET_IDENT_IN, with MSG_OUT	; read [sic] IDENTIFY messagemove	FLAGS_IDENTIFY to HOST_FLAGSint	NCR810_SELECTED;; May have a new host command to handle - check the SIGP bit;checkNewCmd:move	scntl1 & SCNTL1_CONNECTED to sfbr	; connected on SCSI bus ?jump	REL(ackCmd) if 0			; no: must be host command; Connected - must have been selected or re-selectedcheckCon:move	ctest2 & CTEST2_SIGNAL to sfbr		; clear SIGP bitwait	reselect REL(selected)			; if target -> selectedjump	REL(reselected)				; else      -> reselected;; Should have a new host command to handle;ackCmd:move	ctest2 & CTEST2_SIGNAL to sfbr		; test and clear SIGP bitint	NCR810_SPURIOUS_CMD if 0		; if clear, spurious commandint	NCR810_READY				; else,     ack host command;/*****************************************************************************;*;* ncr810InitStart - start new initiator thread, selecting target and;* continuing to transfer command, data, messages as requested.;*;* At this point the script requires some data in the scratch registers:;*;*	scratch 0:	host flags (halt after data in, disable SCSI timeout);*	scratch 1:	message out status (none, pending, or sent);*	scratch 2:	message in  status;*	scratch 3:	undefined;*;* When the script finishes, these registers are updated to contain:;*;*	scratch 0:	info transfer phase currently being serviced;*	scratch 1:	message out status (none, pending, or sent);*	scratch 2:	message in  status;*	scratch 3:	contents of LCRC reg (after a reselection);*/PROC ncr810InitStart:move	PHASE_NONE to CURRENT_PHASEcall	REL(timeoutEnable)call	REL(mismatchATNIntrDisable);; If required to identify, select w. ATN and try to transfer IDENTIFY message; (if this fails, continue silently).  Otherwise, select without ATN.;move	HOST_FLAGS & FLAGS_IDENTIFY to sfbrjump	REL(selNoAtn) if 0select	atn from OFFSET_DEVICE, REL(checkNewCmd); the following now transfers the IDENTIFY message plus any; other message concatenated to it.;; NB this code will not tolerate phase mismatches during the message out; transfer.  Therefore, things will go badly wrong if the target rejects; either the IDENTIFY or the following message (for example).move	from OFFSET_IDENT_OUT, when     MSG_OUT; if there was a normal message concatenated to the IDENTIFY; then we have now sent it.  Handle as per normal completion of MSG OUT phase.move    MSG_OUT_STATE to sfbr			; if (msg out == pending)jump    REL(doneSelect) if not M_OUT_PENDINGmove	M_OUT_SENT to sfbr			;     msg out = sentmove	sfbr       to MSG_OUT_STATEjump	REL(doneSelect)selNoAtn:move    0x6 to scratchb1select	from OFFSET_DEVICE, REL(checkNewCmd); Note: must wait for any info xfer phase to be requested before proceeding; to disable timeout.  Otherwise, the "select" appears to always hang up.jump	REL(doneSelect), when not MSG_OUT;; Interrupt host if requested, else continue to phase-sequencing code;doneSelect:call	REL(timeoutDisable)jump	REL(nextPhase);/*****************************************************************************;*;* ncr810InitContinue - resume an initiator thread;*;* At this point the script requires some data in the scratch registers:;*;*	scratch 0:	host flags (assert ATN on selection);*	scratch 1:	message out status (none, pending, or sent);*	scratch 2:	message in  status;*	scratch 3:	undefined;*;* When the script finishes, these registers are updated to contain:;*;*	scratch 0:	info transfer phase currently being serviced;*	scratch 1:	message out status (none, pending, or sent);*	scratch 2:	message in  status;*	scratch 3:	contents of LCRC reg (after a reselection);*/ PROC ncr810InitContinue:call	REL(timeoutDisable)nextPhase:call	REL(mismatchATNIntrEnable)move	MSG_OUT_STATE  to sfbr			; if (msg out == pending)call	REL(assertAtn) if M_OUT_PENDING		;     assert ATNclear	ack;; If a message out has just been sent, and the current phase is no longer; message out, the target has accepted the message.  Reset the message out; state to NONE, and interrupt the host to handle msg out post-processing.;; XXXjump	REL(phaseSwitch), when MSG_OUT		; if ((phase != msg out)move	MSG_OUT_STATE     to   sfbrjump	REL(phaseSwitch)  if not M_OUT_SENT	;  && (msg out == sent))move	M_OUT_NONE to sfbr			;     msg out = nonemove	sfbr       to MSG_OUT_STATEint	NCR810_MESSAGE_OUT_SENT;; Normal info transfer request processing;phaseSwitch:jump	REL(doDataOut), when DATA_OUTjump	REL(doDataIn)   if   DATA_INjump	REL(doCommand)  if   COMMANDjump	REL(doStatus)   if   STATUSjump	REL(doMsgOut)   if   MSG_OUTjump	REL(doMsgIn)    if   MSG_INint	NCR810_ILLEGAL_PHASE;/*****************************************************************************;*;* doDataOut - handle DATA OUT phase;*/ doDataOut:move	PHASE_DATA_OUT to CURRENT_PHASEmove	from OFFSET_DATA, when DATA_OUTjump	REL(nextPhase);/*****************************************************************************;*;* doDataIn - handle DATA IN phase;*/ doDataIn:move	PHASE_DATA_IN to CURRENT_PHASEmove	from OFFSET_DATA, when DATA_INjump	REL(nextPhase);/*****************************************************************************;*;* doCommand - handle COMMAND phase;*/ doCommand:move	PHASE_COMMAND to CURRENT_PHASEmove	from OFFSET_CMD, when CMDjump	REL(nextPhase);/*****************************************************************************;*;* doStatus - handle STATUS phase;*/ doStatus:move	PHASE_STATUS to CURRENT_PHASEmove	from OFFSET_STATUS, when STATUSjump	REL(nextPhase);/*****************************************************************************;*;* doMsgOut - handle MSG OUT phase;*/ doMsgOut:move	PHASE_MSG_OUT to CURRENT_PHASEmove	MSG_OUT_STATE     to sfbr		; if msg out == noneint	NCR810_NO_MSG_OUT if M_OUT_NONE		;     send NO-OP (host does it)call	REL(assertAtn) if M_OUT_SENT		; assert ATN for retriesmove	from OFFSET_MSG_OUT, when MSG_OUTmove	M_OUT_SENT to sfbrmove	sfbr       to MSG_OUT_STATE		; msg out = sentjump	REL(nextPhase);/*****************************************************************************;*;* doMsgIn - handle MSG IN phase;*;* Note: there is little point in having the '810 parse the message type;* unless it can save the host some work by doing so;  DISCONNECT and;* COMMAND COMPLETE are really the only cases in point.  Multi-byte messages;* are handled specially - see the comments below.;*/ doMsgIn:move	PHASE_MSG_IN to CURRENT_PHASEmove	MSG_IN_STATE to sfbrjump	REL(contExtMsg) if M_IN_EXT_MSG_DATAmove	from OFFSET_MSG_IN, when MSG_INjump	REL(twobyte)  if 0x20 and mask 0x0fjump	REL(disconn)  if M_DISCONNECTjump	REL(complete) if M_CMD_COMPLETEjump	REL(extended) if M_EXT_MSGint	NCR810_MESSAGE_IN_RECVD			; host handles all others;; Have received a DISCONNECT message;disconn:move    0x00 to scntl2 		; the SDU bit needs to be clearedclear	ackcall	REL(timeoutEnable)wait	disconnectint	NCR810_DISCONNECTED;; Have received a COMMAND COMPLETE message;complete:move    0x00 to scntl2 		; the SDU bit needs to be clearedclear	ackcall	REL(timeoutEnable)wait	disconnectint	NCR810_CMD_COMPLETE;; Have received the first byte of a two-byte message;; Read the second byte and then interrupt the host.;twobyte:clear	ackmove	from OFFSET_MSG_IN_SECOND, when MSG_INint	NCR810_MESSAGE_IN_RECVD;; Have received the first byte of an extended message;; Get the number of bytes in the message proper, then interrupt the host; so it can set up the MSG_IN_REST pointer/count accordingly.  (The 53C810; can not dynamically change this itself without having static data which; would then need to be relocated at runtime - what a loser !);; [ A "quick-and-dirty" alternative might be to set up the pointer for; reading the message length so that it puts the byte read into the count; field for reading the message itself.  This _should_ work, and would; avoid interrupting the host, but seems a bit flakey. ];extended:clear	ackmove	from OFFSET_MSG_IN_SECOND, when MSG_INmove	M_IN_EXT_MSG_DATA to sfbrmove	sfbr              to MSG_IN_STATEint	NCR810_EXT_MESSAGE_SIZEcontExtMsg:clear	ackmove	from OFFSET_MSG_IN_REST, when MSG_INmove	M_IN_NONE to sfbrmove	sfbr      to MSG_IN_STATEint	NCR810_MESSAGE_IN_RECVD			; at last !/******************************************************************************** ncr810TgtDisconnect - disconnect from SCSI bus**/PROC ncr810TgtDisconnect:call	REL(mismatchATNIntrDisable)set	targetdisconnectclear	targetint	NCR810_DISCONNECTED/******************************************************************************** miscellaneous useful subroutines - mainly to improve readability of the* main script.  Call/return overhead is not an issue (I think).*/;; assertAtn - assert the SCSI ATN signal;assertAtn:set	atnreturn;; timeoutEnable - enable the SCSI {inter-byte, select, disconnect} timeout;timeoutEnable:move	(STIME0_HTH_TIMEOUT | STIME0_SEL_TIMEOUT) to stime0return;; timeoutDisable - disable the SCSI {inter-byte, select, disconnect} timeout;timeoutDisable:;move	(~STIME0_HTH_MASK & stime0) to stime0 ; Disable HTH timeout;move	(~STIME0_SEL_MASK & stime0) to stime0 ; Disable SEL timeoutmove  	0x0 to sfbrmove 	sfbr to stime0return;; mismatchATNIntrEnable - enable the phase mismatch / ATN interrupt;mismatchATNIntrEnable:move	sien0 | SIEN0_MISMATCH_ATN to sfbrmove	sfbr to sien0return;; mismatchATNIntrDisable - disable the phase mismatch / ATN interrupt;mismatchATNIntrDisable:;move	sien0 & ~SIEN0_MISMATCH_ATN to sfbrmove	sien0 & 0x7f to sfbrmove	sfbr to sien0return; End of Script

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区三区老鸭窝| 国产精选一区二区三区| 色美美综合视频| 亚洲精品福利视频网站| 91丝袜高跟美女视频| 亚洲女爱视频在线| 欧美无砖专区一中文字| 日韩av一区二| 久久综合九色综合97婷婷| 国产乱国产乱300精品| 国产精品黄色在线观看| 色综合久久综合网| 蜜臀av一区二区| 国产欧美日韩亚州综合| 91在线观看高清| 日韩主播视频在线| 久久亚洲精品小早川怜子| jizz一区二区| 亚洲va欧美va国产va天堂影院| 日韩免费视频一区二区| 成人精品免费视频| 亚洲aⅴ怡春院| 国产丝袜美腿一区二区三区| 欧美性猛交xxxxxxxx| 狠狠色丁香婷综合久久| 亚洲伦理在线免费看| 这里只有精品免费| 成人av电影在线播放| 日韩黄色免费电影| 中文av一区特黄| 69堂国产成人免费视频| k8久久久一区二区三区 | 美国av一区二区| 国产精品久久久久久久裸模| 欧美精品电影在线播放| 大尺度一区二区| 免费精品视频在线| 亚洲精品免费在线| 久久精品日产第一区二区三区高清版 | 黄页视频在线91| 亚洲精品久久久蜜桃| 欧美成人一区二区| 欧美日韩在线观看一区二区| 国产不卡一区视频| 日韩av电影免费观看高清完整版 | 国产成人免费视| 亚洲国产综合人成综合网站| 亚洲国产高清aⅴ视频| 91精品在线免费观看| 91影视在线播放| 国产99久久久精品| 国模无码大尺度一区二区三区| 亚洲国产综合视频在线观看| 亚洲丝袜另类动漫二区| 国产午夜精品一区二区三区四区| 欧美精品久久久久久久多人混战| 91看片淫黄大片一级在线观看| 国产一区二区三区在线看麻豆| 午夜a成v人精品| 亚洲精品你懂的| 国产精品不卡在线观看| 日本一区二区综合亚洲| 精品美女在线播放| 欧美一二三四在线| 在线观看91精品国产麻豆| 欧美综合欧美视频| 欧洲日韩一区二区三区| 一本高清dvd不卡在线观看| 95精品视频在线| 91小视频在线| 97精品视频在线观看自产线路二| 成人免费毛片app| 国产成人在线免费观看| 国产精品资源网站| 国产乱一区二区| 国产成人精品免费| 国产成人综合在线观看| 国产福利一区二区三区在线视频| 久久99精品国产麻豆婷婷洗澡| 日本不卡免费在线视频| 久久99在线观看| 国产尤物一区二区| 国产精品77777| av电影在线观看完整版一区二区| 99麻豆久久久国产精品免费优播| 91麻豆免费视频| 在线观看视频一区二区欧美日韩| 在线观看日韩av先锋影音电影院| 欧美专区日韩专区| 欧美久久久久中文字幕| 日韩免费看的电影| 久久久天堂av| 国产精品美女视频| 亚洲最新视频在线播放| 日韩影院精彩在线| 国产又黄又大久久| 99久久精品国产毛片| 欧美性生活影院| 69久久99精品久久久久婷婷| 精品国产91久久久久久久妲己| 国产亚洲一区二区三区在线观看 | 偷拍自拍另类欧美| 国产一区视频网站| 91在线视频播放| 欧美欧美欧美欧美| 久久久精品2019中文字幕之3| 国产精品久久久久毛片软件| 亚洲成人一区在线| 国产福利一区在线| 欧美在线三级电影| 久久婷婷综合激情| 日韩美女视频一区二区 | 欧美伊人久久大香线蕉综合69| 91精品国产综合久久久久久久久久 | 欧美日韩在线观看一区二区| 精品国产区一区| 一级特黄大欧美久久久| 久久精品国产精品青草| 91小宝寻花一区二区三区| 日韩视频一区在线观看| 综合久久久久久| 国模冰冰炮一区二区| 欧美视频日韩视频在线观看| 久久品道一品道久久精品| 亚洲一区二区三区国产| 国产iv一区二区三区| 欧美精品在线观看播放| 亚洲天堂网中文字| 国产一区二区中文字幕| 欧美色老头old∨ideo| 中文一区在线播放| 久久99在线观看| 欧美嫩在线观看| 亚洲精品免费看| 福利一区二区在线| 欧美电影免费观看高清完整版在线观看 | 成人免费观看av| 日韩欧美一级二级三级久久久| 一区二区三区在线免费视频| 国产成人精品免费在线| 欧美成人aa大片| 香蕉成人伊视频在线观看| 日本道精品一区二区三区| 国产精品三级久久久久三级| 韩国毛片一区二区三区| 67194成人在线观看| 亚洲激情综合网| www.亚洲色图.com| 国产日韩综合av| 国产精品1024久久| 久久久青草青青国产亚洲免观| 伦理电影国产精品| 欧美一区二区成人6969| 偷拍日韩校园综合在线| 欧美日韩久久一区二区| 亚洲综合区在线| 一本一道久久a久久精品| 中文字幕av一区二区三区免费看 | 日韩精品福利网| 欧美日韩美少妇| 亚洲成人免费观看| 在线视频国内一区二区| 一区二区视频在线看| 91一区二区三区在线播放| 中文字幕在线不卡视频| 99久久免费视频.com| 亚洲欧洲日韩在线| 91视频xxxx| 亚洲愉拍自拍另类高清精品| 欧美专区日韩专区| 香港成人在线视频| 日韩小视频在线观看专区| 免费成人你懂的| 久久久国产精品麻豆| 国产成人在线观看| 中文字幕日韩av资源站| 色综合中文综合网| 亚洲国产精品一区二区久久恐怖片 | 成人免费毛片a| 国产精品二三区| 在线视频亚洲一区| 日韩电影免费在线观看网站| 日韩欧美亚洲另类制服综合在线 | 免费国产亚洲视频| 久久久蜜桃精品| eeuss鲁片一区二区三区| 亚洲一区二区三区中文字幕 | 国产一区 二区 三区一级| 国产日韩欧美麻豆| 色综合咪咪久久| 日韩电影免费在线| 欧美国产激情一区二区三区蜜月| 91碰在线视频| 蜜臀av性久久久久蜜臀av麻豆| 久久在线免费观看| 91福利资源站| 免费在线观看不卡| 国产精品看片你懂得| 欧美日韩中字一区| 国产精品中文有码|