/////////////////////////////////////////////////////////////////////////////// // // Microsoft Research Singularity // // Copyright (c) Microsoft Corporation. All rights reserved. // // File: HalPic.cs // // Note: // using System; using System.Collections; using System.Runtime.CompilerServices; using System.Threading; namespace Microsoft.Singularity.Hal { public abstract class HalPic { /// /// Maximum valid IRQ property. On legacy PC systems this value is /// 15. On APIC PC systems this number will usually be larger. /// public abstract byte MaximumIrq { [NoHeapAllocation] get; } /// /// Convert interrupt vector to interrupt request line. /// [NoHeapAllocation] public abstract byte InterruptToIrq(byte interrupt); /// /// Convert interrupt request line to interrupt vector. /// [NoHeapAllocation] public abstract byte IrqToInterrupt(byte irq); /// /// Acknowledge the interrupt request. (EOI) /// [NoHeapAllocation] public abstract void AckIrq(byte irq); /// /// Enable interrupt request by removing mask. /// [NoHeapAllocation] public abstract void EnableIrq(byte irq); /// /// Disable interrupt request by applying mask. /// [NoHeapAllocation] public abstract void DisableIrq(byte irq); /// /// Acknowledge and mask interrupt. /// [NoHeapAllocation] public abstract void ClearInterrupt(byte interrupt); } } // namespace Microsoft.Singularity.Hal