u8 up = inb(ioaddr + 13); 
u8 up = ioread8(ioaddr + 13); 
static void update_stats(long ioaddr, struct net_device *dev){	struct vortex_private *vp = netdev_priv(dev);	int old_window = inw(ioaddr + EL3_CMD);	if (old_window == 0xffff)	/* Chip suspended or ejected. */		return;	/* Unlike the 3c5x9 we need not turn off stats updates while reading. */	/* Switch to the stats window, and read everything. */	EL3WINDOW(6);	vp->stats.tx_carrier_errors		+= inb(ioaddr + 0);	vp->stats.tx_heartbeat_errors		+= inb(ioaddr + 1);	vp->stats.collisions			+= inb(ioaddr + 3);	vp->stats.tx_window_errors		+= inb(ioaddr + 4);	vp->stats.rx_fifo_errors		+= inb(ioaddr + 5);	vp->stats.tx_packets			+= inb(ioaddr + 6);	vp->stats.tx_packets			+= (inb(ioaddr + 9)&0x30) << 4;	/* Rx packets	*/			inb(ioaddr + 7);   /* Must read to clear */	/* Don't bother with register 9, an extension of registers 6&7.	   If we do use the 6&7 values the atomic update assumption above	   is invalid. */	vp->stats.rx_bytes 			+= inw(ioaddr + 10);	vp->stats.tx_bytes 			+= inw(ioaddr + 12);	/* Extra stats for get_ethtool_stats() */	vp->xstats.tx_multiple_collisions	+= inb(ioaddr + 2);	vp->xstats.tx_deferred			+= inb(ioaddr + 8);	EL3WINDOW(4);	vp->xstats.rx_bad_ssd			+= inb(ioaddr + 12);	{		u8 up = inb(ioaddr + 13);		vp->stats.rx_bytes += (up & 0x0f) << 16;		vp->stats.tx_bytes += (up & 0xf0) << 12;	}	EL3WINDOW(old_window >> 13);	return;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/62afe595de7aaac6c140103a34dc8c208afa34e7/3c59x.c/clean/drivers/net/3c59x.c