pScb->SCB_Flags	|= FLAG_SG; bzero(pScb->SCB_SGList, sizeof(pScb->SCB_SGList));
iha_setup_sg_list(sc, pScb)	struct iha_softc *sc;	struct iha_scsi_req_q *pScb;{	bus_dma_segment_t *segs = pScb->SCB_DataDma->dm_segs;	int i, error, nseg = pScb->SCB_DataDma->dm_nsegs;	if (nseg > 1) {		pScb->SCB_Flags	|= FLAG_SG;		bzero(pScb->SCB_SGList, sizeof(pScb->SCB_SGList));		error = bus_dmamap_load(sc->sc_dmat, pScb->SCB_SGDma,				pScb->SCB_SGList, sizeof(pScb->SCB_SGList), NULL,				(pScb->SCB_Flags & SCSI_NOSLEEP) ?					BUS_DMA_NOWAIT : BUS_DMA_WAITOK);		if (error) {			sc_print_addr(pScb->SCB_Xs->sc_link);			printf("error %d loading SG list dma map\n", error);			return (error);		}		pScb->SCB_SGIdx	  = 0;		pScb->SCB_SGCount = nseg;		for (i=0; i < nseg; i++) {			pScb->SCB_SGList[i].SG_Len  = segs[i].ds_len;			pScb->SCB_SGList[i].SG_Addr = segs[i].ds_addr;		}		bus_dmamap_sync(sc->sc_dmat, pScb->SCB_SGDma, 			0, sizeof(pScb->SCB_SGList), BUS_DMASYNC_PREWRITE);	}	return (0);}