/** * PROJECT: ExectOS * COPYRIGHT: See COPYING.md in the top level directory * FILE: xtoskrnl/hl/apic.c * DESCRIPTION: Advanced Programmable Interrupt Controller (APIC) support * DEVELOPERS: Rafal Kupiec */ #include /** * Reads from the local APIC register. * * @param Register * Supplies the APIC register to read from. * * @return This routine returns the value read from the APIC register. * * @since XT 1.0 */ XTFASTCALL ULONG HlReadApicRegister(IN APIC_REGISTER Register) { return RtlReadRegisterLong((PULONG)APIC_BASE + (Register << 4)); } /** * Writes to the local APIC register. * * @param Register * Supplies the APIC register to write to. * * @param Value * Supplies the value to write to the APIC register. * * @return This routine does not return any value. * * @since XT 1.0 */ XTFASTCALL VOID HlWriteApicRegister(IN APIC_REGISTER Register, IN ULONG Value) { RtlWriteRegisterLong((PULONG)APIC_BASE + (Register << 4), Value); }