isadma_copyfrombuf((caddr_t)ccb, CCB_PHYS_SIZE, 1, ccb->ccb_phys); xs = ccb->xs; sc_link = xs->sc_link; sc = sc_link->adapter_softc;
aha_timeout(arg)	void *arg;{	struct aha_ccb *ccb = arg;	struct scsi_xfer *xs = ccb->xs;	struct scsi_link *sc_link = xs->sc_link;	struct aha_softc *sc = sc_link->adapter_softc;	int s;	sc_print_addr(sc_link);	printf("timed out");	s = splbio();#ifdef AHADIAG	/*	 * If The ccb's mbx is not free, then the board has gone south?	 */	aha_collect_mbo(sc);	if (ccb->flags & CCB_SENDING) {		printf("%s: not taking commands!\n", sc->sc_dev.dv_xname);		Debugger();	}#endif	/*	 * If it has been through before, then	 * a previous abort has failed, don't	 * try abort again	 */	if (ccb->flags & CCB_ABORT) {		/* abort timed out */		printf(" AGAIN\n");		/* XXX Must reset! */	} else {		/* abort the operation that has timed out */		printf("\n");		ccb->xs->error = XS_TIMEOUT;		ccb->timeout = AHA_ABORT_TIMEOUT;		ccb->flags |= CCB_ABORT;		aha_queue_ccb(sc, ccb);	}	splx(s);}