public IrqSource(uint id, PlatformLevelInterruptController irqController)
            {
                this.irqController = irqController;

                Id = id;
                Reset();
            }
                public IrqTargetHandler(PlatformLevelInterruptController irqController, uint irqId)
                {
                    this.irqController = irqController;
                    this.irqId         = irqId;

                    enabledSources   = new HashSet <IrqSource>();
                    activeInterrupts = new Stack <IrqSource>();
                }
                public IrqTargetHandler(PlatformLevelInterruptController irqController, uint targetId, PrivilegeLevel privilegeLevel)
                {
                    this.irqController  = irqController;
                    this.targetId       = targetId;
                    this.privilegeLevel = privilegeLevel;

                    enabledSources   = new HashSet <IrqSource>();
                    activeInterrupts = new Stack <IrqSource>();
                }
 public IrqTarget(uint id, PlatformLevelInterruptController irqController)
 {
     levels = new IrqTargetHandler[]
     {
         new IrqTargetHandler(irqController, 4 * id + (int)PrivilegeLevel.User),
         new IrqTargetHandler(irqController, 4 * id + (int)PrivilegeLevel.Supervisor),
         new IrqTargetHandler(irqController, 4 * id + (int)PrivilegeLevel.Hypervisor),
         new IrqTargetHandler(irqController, 4 * id + (int)PrivilegeLevel.Machine)
     };
 }