print_msg(&MSGI(0)); 
scsi_print_msg(&MSGI(0)); 
static void msgi_run(struct Scsi_Host *shpnt){	for(;;) {		int sstat1 = GETPORT(SSTAT1);		if(sstat1 & (PHASECHG|PHASEMIS|BUSFREE) || !(sstat1 & REQINIT))			return;		if(TESTLO(SSTAT0,SPIORDY)) {			DPRINTK(debug_msgi, DEBUG_LEAD "!SPIORDY\n", CMDINFO(CURRENT_SC));			return;		}			ADDMSGI(GETPORT(SCSIDAT));#if defined(AHA152X_DEBUG)		if (HOSTDATA(shpnt)->debug & debug_msgi) {			printk(INFO_LEAD "inbound message %02x ", CMDINFO(CURRENT_SC), MSGI(0));			print_msg(&MSGI(0));			printk("\n");		}#endif		if(!CURRENT_SC) {			if(LASTSTATE!=seldi) {				printk(KERN_ERR "aha152x%d: message in w/o current command not after reselection\n", HOSTNO);			}			/*	 	 	 * Handle reselection	 		 */			if(!(MSGI(0) & IDENTIFY_BASE)) {				printk(KERN_ERR "aha152x%d: target didn't identify after reselection\n", HOSTNO);				continue;			}			CURRENT_SC = remove_lun_SC(&DISCONNECTED_SC, RECONN_TARGET, MSGI(0) & 0x3f);			if (!CURRENT_SC) {				show_queues(shpnt);				printk(KERN_ERR "aha152x%d: no disconnected command for target %d/%d\n", HOSTNO, RECONN_TARGET, MSGI(0) & 0x3f);				continue;			}			DPRINTK(debug_msgi, DEBUG_LEAD "target reconnected\n", CMDINFO(CURRENT_SC));			CURRENT_SC->SCp.Message = MSGI(0);			CURRENT_SC->SCp.phase &= ~disconnected;			MSGILEN=0;			/* next message if any */			continue;		} 		CURRENT_SC->SCp.Message = MSGI(0);		switch (MSGI(0)) {		case DISCONNECT:			if (!RECONNECT)				printk(WARN_LEAD "target was not allowed to disconnect\n", CMDINFO(CURRENT_SC));			CURRENT_SC->SCp.phase |= disconnected;			break;		case COMMAND_COMPLETE:			if(CURRENT_SC->SCp.phase & completed)				DPRINTK(debug_msgi, DEBUG_LEAD "again COMMAND COMPLETE\n", CMDINFO(CURRENT_SC));			CURRENT_SC->SCp.phase |= completed;			break;		case MESSAGE_REJECT:			if (SYNCNEG==1) {				printk(INFO_LEAD "Synchronous Data Transfer Request was rejected\n", CMDINFO(CURRENT_SC));				SYNCNEG=2;	/* negotiation completed */			} else				printk(INFO_LEAD "inbound message (MESSAGE REJECT)\n", CMDINFO(CURRENT_SC));			break;		case SAVE_POINTERS:			break;		case RESTORE_POINTERS:			break;		case EXTENDED_MESSAGE:			if(MSGILEN<2 || MSGILEN<MSGI(1)+2) {				/* not yet completed */				continue;			}			switch (MSGI(2)) {			case EXTENDED_SDTR:				{					long ticks;					if (MSGI(1) != 3) {						printk(ERR_LEAD "SDTR message length!=3\n", CMDINFO(CURRENT_SC));						break;					}					if (!HOSTDATA(shpnt)->synchronous)						break;					printk(INFO_LEAD, CMDINFO(CURRENT_SC));					print_msg(&MSGI(0));					printk("\n");					ticks = (MSGI(3) * 4 + 49) / 50;					if (syncneg) {						/* negotiation in progress */						if (ticks > 9 || MSGI(4) < 1 || MSGI(4) > 8) {							ADDMSGO(MESSAGE_REJECT);							printk(INFO_LEAD "received Synchronous Data Transfer Request invalid - rejected\n", CMDINFO(CURRENT_SC));							break;						}												SYNCRATE |= ((ticks - 2) << 4) + MSGI(4);					} else if (ticks <= 9 && MSGI(4) >= 1) {						ADDMSGO(EXTENDED_MESSAGE);						ADDMSGO(3);						ADDMSGO(EXTENDED_SDTR);						if (ticks < 4) {							ticks = 4;							ADDMSGO(50);						} else							ADDMSGO(MSGI(3));						if (MSGI(4) > 8)							MSGI(4) = 8;						ADDMSGO(MSGI(4));						SYNCRATE |= ((ticks - 2) << 4) + MSGI(4);					} else {						/* requested SDTR is too slow, do it asynchronously */						printk(INFO_LEAD "Synchronous Data Transfer Request too slow - Rejecting\n", CMDINFO(CURRENT_SC));						ADDMSGO(MESSAGE_REJECT);					}					SYNCNEG=2;		/* negotiation completed */					SETRATE(SYNCRATE);				}				break;			case BUS_DEVICE_RESET:				{					int i;					for(i=0; i<8; i++) {						HOSTDATA(shpnt)->syncrate[i]=0;						HOSTDATA(shpnt)->syncneg[i]=0;					}				}				break;			case EXTENDED_MODIFY_DATA_POINTER:			case EXTENDED_EXTENDED_IDENTIFY:			case EXTENDED_WDTR:			default:				ADDMSGO(MESSAGE_REJECT);				break;			}			break;		}		MSGILEN=0;	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/1409277c4aad2e87ad27b2b8a6901ce78eaf8081/aha152x.c/clean/drivers/scsi/aha152x.c