pageIO = rm.claimIOResource(owner, 0x81, 0x8f - 0x81 + 1); dma1IO = rm.claimIOResource(owner, 0x00, 16); dma2IO = rm.claimIOResource(owner, 0xc0, 32);
pageIO = claimPorts(rm, owner, 0x81, 0x8f - 0x81 + 1); dma1IO = claimPorts(rm, owner, 0x00, 16); dma2IO = claimPorts(rm, owner, 0xc0, 32);
	public DMA() throws DMAException {		final ResourceManager rm;		try {			rm = (ResourceManager)InitialNaming.lookup(ResourceManager.NAME);		} catch (NameNotFoundException ex) {			throw new DMAException("Cannot find ResourceManager", ex);		}		IOResource pageIO = null;		IOResource dma1IO = null;		IOResource dma2IO = null;		try {			final ResourceOwner owner = new SimpleResourceOwner("DMA-X86");			pageIO = rm.claimIOResource(owner, 0x81, 0x8f - 0x81 + 1);			dma1IO = rm.claimIOResource(owner, 0x00, 16);			dma2IO = rm.claimIOResource(owner, 0xc0, 32);			this.pageIO = pageIO;			this.dma1IO = dma1IO;			this.dma2IO = dma2IO;						for (int dmanr = 0; dmanr < MAX; dmanr++) {				clearFF(dmanr);			}		} catch (ResourceNotFreeException ex) {			if (pageIO != null) {				pageIO.release();			}			if (dma1IO != null) {				dma1IO.release();			}			if (dma2IO != null) {				dma2IO.release();			}			throw new DMAException("Cannot claim DMA I/O ports", ex);		}	}