((caddr_t)cur_rx->sis_ptr - sc->sc_listkva),
((caddr_t)cur_rx - sc->sc_listkva),
void sis_rxeof(sc)	struct sis_softc	*sc;{	struct mbuf		*m;	struct ifnet		*ifp;	struct sis_desc		*cur_rx;	int			i, total_len = 0;	u_int32_t		rxstat;	ifp = &sc->arpcom.ac_if;	i = sc->sis_cdata.sis_rx_prod;	while(SIS_OWNDESC(&sc->sis_ldata->sis_rx_list[i])) {		cur_rx = &sc->sis_ldata->sis_rx_list[i];		rxstat = cur_rx->sis_rxstat;		m = cur_rx->sis_mbuf;		cur_rx->sis_mbuf = NULL;		total_len = SIS_RXBYTES(cur_rx);		SIS_INC(i, SIS_RX_LIST_CNT);		bus_dmamap_sync(sc->sc_dmat, sc->sc_listmap,		    ((caddr_t)cur_rx->sis_ptr - sc->sc_listkva),		    sizeof(struct sis_desc),		    BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE);		/*		 * If an error occurs, update stats, clear the		 * status word and leave the mbuf cluster in place:		 * it should simply get re-used next time this descriptor	 	 * comes up in the ring.		 */		if (!(rxstat & SIS_CMDSTS_PKT_OK)) {			ifp->if_ierrors++;			if (rxstat & SIS_RXSTAT_COLL)				ifp->if_collisions++;			sis_newbuf(sc, cur_rx, m);			continue;		}		/* No errors; receive the packet. */			bus_dmamap_sync(sc->sc_dmat, cur_rx->map, 0,		    cur_rx->map->dm_mapsize, BUS_DMASYNC_POSTREAD);#ifndef __STRICT_ALIGNMENT		/*		 * On some architectures, we do not have alignment problems,		 * so try to allocate a new buffer for the receive ring, and		 * pass up the one where the packet is already, saving the		 * expensive copy done in m_devget().		 * If we are on an architecture with alignment problems, or		 * if the allocation fails, then use m_devget and leave the		 * existing buffer in the receive ring.		 */		if (sis_newbuf(sc, cur_rx, NULL) == 0) {			m->m_pkthdr.rcvif = ifp;			m->m_pkthdr.len = m->m_len = total_len;		} else#endif		{			struct mbuf *m0;			m0 = m_devget(mtod(m, char *) - ETHER_ALIGN,			    total_len + ETHER_ALIGN, 0, ifp, NULL);			sis_newbuf(sc, cur_rx, m);			if (m0 == NULL) {				ifp->if_ierrors++;				continue;			}			m_adj(m0, ETHER_ALIGN);			m = m0;		}		ifp->if_ipackets++;#if NBPFILTER > 0		if (ifp->if_bpf)			bpf_mtap(ifp->if_bpf, m);#endif		/* pass it on. */		ether_input_mbuf(ifp, m);	}	sc->sis_cdata.sis_rx_prod = i;	return;}