final int csr3 = io.getCSR(3);
io.getCSR(3);
	public void handleInterrupt(int irq) {		while ((io.getCSR(0) & CSR0_INTR) != 0) {			final int csr0 = io.getCSR(0);			final int csr3 = io.getCSR(3);			final int csr4 = io.getCSR(4);			final int csr5 = io.getCSR(5);			io.setCSR(0, csr0);			io.setCSR(4, csr4);			io.setCSR(5, csr5);			// check if interrupt is due to Initialization Done			if ((csr0 & CSR0_IDON) != 0) {				log.info(flags.getChipName() + " Initialization Complete");				// Now enable RX/TX				io.setCSR(15, 0);				// assert the Start and clear Initialization Done (IDON) flag				// Note: there are reported errors due to setting IDON here but I have not seen any				io.setCSR(0, CSR0_STRT | CSR0_IENA | CSR0_IDON);			}			// check if interrupt is due to Transmition Interrupt					if ((csr0 & CSR0_TINT) != 0) {				//log.debug("Transmition Interrupt");			}			// check if interrupt is due to Receive Interrupt					if ((csr0 & CSR0_RINT) != 0) {				//log.debug("Receive Interrupt");				rxProcess();			}			// check if interrupt is due an error				if ((csr0 & CSR0_ERR) != 0) {				log.debug("Error Interrupt");				// check if interrupt is due to Memory Error						if ((csr0 & CSR0_MERR) != 0) {					log.debug("Memory Error");				}				// check if interrupt is due to Missed Frame						if ((csr0 & CSR0_MISS) != 0) {					log.debug("Missed Frame");				}				// check if interrupt is due to Collision Error						if ((csr0 & CSR0_CERR) != 0) {					log.debug("Collision Error");				}				// check if interrupt is due to a Bable transmitter time-out					if ((csr0 & CSR0_BABL) != 0) {					log.debug("Bable transmitter time-out");				}			}			// check if interrupt is due to a Missed Frame Counter Overflow			if ((csr4 & CSR4_MFCO) == CSR4_MFCO) {				log.debug("Missed Frame Counter Overflow");			}			// check if interrupt is due to a User Interrupt			if ((csr4 & CSR4_UINT) == CSR4_UINT) {				log.debug("User Interrupt");			}			// check if interrupt is due to a Receive Collision Counter Overflow			if ((csr4 & CSR4_RCVCCO) == CSR4_RCVCCO) {				log.debug("Receive Collision Counter Overflow");			}			// check if interrupt is due to a Transmit Start			if ((csr4 & CSR4_TXSTRT) == CSR4_TXSTRT) {				log.debug("Transmit Start");			}			// check if interrupt is due to a Jabber Error			if ((csr4 & CSR4_JAB) == CSR4_JAB) {				log.debug("Jabber Error");			}			// check if interrupt is due to a Jabber Error			if ((csr4 & CSR4_JAB) == CSR4_JAB) {				log.debug("Jabber Error");			}			// check if interrupt is due to a System Interrupt			if ((csr5 & CSR5_SINT) == CSR5_SINT) {				log.debug("System Interrupt");			}			// check if interrupt is due to a Sleep Interrupt			if ((csr5 & CSR5_SLPINT) == CSR5_SLPINT) {				log.debug("Sleep Interrupt");			}			// check if interrupt is due to a Excessive Deferral Interrupt			if ((csr5 & CSR5_EXDINT) == CSR5_EXDINT) {				log.debug("Excessive Deferral Interrupt");			}			// check if interrupt is due to a Magic Packet Interrupt			if ((csr5 & CSR5_MPINT) == CSR5_MPINT) {				log.debug("Magic Packet Interrupt");			}		}	}