internal uint Read(IoMappedPort register)
        {
            uint     outValue;
            IoResult result = register.Read32NoThrow(0, out outValue);

            DebugStub.Assert(IoResult.Success == result);
            return(outValue);
        }
示例#2
0
        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);
            }
        }