*** sys/dev/pci/if_de.c.orig	Sat Feb  3 14:56:53 2001
--- sys/dev/pci/if_de.c	Mon Jun 25 23:31:40 2001
***************
*** 190,199 ****
--- 190,202 ----
  static unsigned tulip_mii_readreg(tulip_softc_t * const sc, unsigned devaddr, unsigned regno);
  static void tulip_mii_writereg(tulip_softc_t * const sc, unsigned devaddr, unsigned regno, unsigned data);
  static int tulip_mii_map_abilities(tulip_softc_t * const sc, unsigned abilities);
  static tulip_media_t tulip_mii_phy_readspecific(tulip_softc_t * const sc);
  static int tulip_srom_decode(tulip_softc_t * const sc);
+ #ifdef VIRTUAL_PC
+ static void tulip_initring(tulip_softc_t * const sc, tulip_ringinfo_t * const ri, tulip_desc_t *descs, int ndescs);
+ #endif
  #if defined(IFM_ETHER)
  static int tulip_ifmedia_change(struct ifnet * const ifp);
  static void tulip_ifmedia_status(struct ifnet * const ifp, struct ifmediareq *req);
  #endif
  /* static void tulip_21140_map_media(tulip_softc_t *sc); */
***************
*** 3856,3865 ****
--- 3859,3875 ----
  		 */
  		sc->tulip_flags &= ~TULIP_RXIGNORE;
  		TULIP_CSR_WRITE(sc, csr_command, sc->tulip_cmdmode);
  	    }
  	}
+ #ifdef VIRTUAL_PC
+ 	if (csr & TULIP_STS_TXINTR)
+ 		tulip_tx_intr(sc);
+ 	/* VirtualPC seems to spuriously set this bit. */
+ 	if (csr & TULIP_STS_TXSTOPPED)
+ 		csr &= ~(TULIP_STS_TXSTOPPED | TULIP_STS_ABNRMLINTR);
+ #endif
  	if (csr & TULIP_STS_ABNRMLINTR) {
  	    u_int32_t tmp = csr & sc->tulip_intrmask
  		& ~(TULIP_STS_NORMALINTR|TULIP_STS_ABNRMLINTR);
  	    if (csr & TULIP_STS_TXUNDERFLOW) {
  #if defined(TULIP_DEBUG)
