print_msg(msg); 
scsi_print_msg(msg); 
void acornscsi_sendmessage(AS_Host *host){    unsigned int message_length = msgqueue_msglength(&host->scsi.msgs);    unsigned int msgnr;    struct message *msg;#if (DEBUG & DEBUG_MESSAGES)    printk("scsi%d.%c: sending message ",	    host->host->host_no, acornscsi_target(host));#endif    switch (message_length) {    case 0:	acornscsi_sbic_issuecmd(host, CMND_XFERINFO | CMND_SBT);	acornscsi_sbic_wait(host, ASR_DBR, ASR_DBR, 1000, "sending message 1");	sbic_arm_write(host->scsi.io_port, SBIC_DATA, NOP);	host->scsi.last_message = NOP;#if (DEBUG & DEBUG_MESSAGES)	printk("NOP");#endif	break;    case 1:	acornscsi_sbic_issuecmd(host, CMND_XFERINFO | CMND_SBT);	msg = msgqueue_getmsg(&host->scsi.msgs, 0);	acornscsi_sbic_wait(host, ASR_DBR, ASR_DBR, 1000, "sending message 2");	sbic_arm_write(host->scsi.io_port, SBIC_DATA, msg->msg[0]);	host->scsi.last_message = msg->msg[0];#if (DEBUG & DEBUG_MESSAGES)	print_msg(msg->msg);#endif	break;    default:	/*	 * ANSI standard says: (SCSI-2 Rev 10c Sect 5.6.14)	 * 'When a target sends this (MESSAGE_REJECT) message, it	 *  shall change to MESSAGE IN phase and send this message	 *  prior to requesting additional message bytes from the	 *  initiator.  This provides an interlock so that the	 *  initiator can determine which message byte is rejected.	 */	sbic_arm_write(host->scsi.io_port, SBIC_TRANSCNTH, 0);	sbic_arm_writenext(host->scsi.io_port, 0);	sbic_arm_writenext(host->scsi.io_port, message_length);	acornscsi_sbic_issuecmd(host, CMND_XFERINFO);	msgnr = 0;	while ((msg = msgqueue_getmsg(&host->scsi.msgs, msgnr++)) != NULL) {	    unsigned int i;#if (DEBUG & DEBUG_MESSAGES)	    print_msg(msg);#endif	    i = 0;	    if (acornscsi_write_pio(host, msg->msg, &i, msg->length, 1000000))		printk("scsi%d: timeout while sending message\n", host->host->host_no);	    host->scsi.last_message = msg->msg[0];	    if (msg->msg[0] == EXTENDED_MESSAGE)		host->scsi.last_message |= msg->msg[2] << 8;	    if (i != msg->length)		break;	}	break;    }#if (DEBUG & DEBUG_MESSAGES)    printk("\n");#endif}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/db9dff366ba78085d0323364fadbf09bec0e77ee/acornscsi.c/buggy/drivers/scsi/arm/acornscsi.c