internal uint Read(IoMappedPort register) { uint outValue; IoResult result = register.Read32NoThrow(0, out outValue); DebugStub.Assert(IoResult.Success == result); return(outValue); }
public override byte IrqToInterrupt(byte irq) { DebugStub.WriteLine("Pic.IrqToInterrupt({0})", __arglist(irq)); // range check DebugStub.Assert(irq < INTCPS_Vectors); // check where the interrupt is routed: IRQ or FIQ IoResult result = IoResult.Success; uint ilr = intcps_ilr.Read32NoThrow(irq * INTCPS_ILR_Offset, ref result); if ((ilr & INTCPS_ILR_FIQNIRQ) != 0) { return((byte)ExceptionVector.Fiq); } else { return((byte)ExceptionVector.Irq); } }