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

            DebugStub.Assert(IoResult.Success == result);
            return(outValue);
        }
예제 #2
0
파일: Pic.cs 프로젝트: Paul1nh0/Singularity
        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);
            }
        }