#include <arch/cpu.h>
#include <arch/x86/msr.h>
#include <sys/device_mmio.h>
Go to the source code of this file.
◆ LOAPIC_APR
#define LOAPIC_APR 0x090 /* Arbitration Priority Reg */ |
◆ LOAPIC_DFR
#define LOAPIC_DFR 0x0e0 /* Destination Format Reg */ |
◆ LOAPIC_EOI
#define LOAPIC_EOI 0x0b0 /* EOI Reg */ |
◆ LOAPIC_ERROR
#define LOAPIC_ERROR 0x370 /* LVT (ERROR) */ |
◆ LOAPIC_ESR
#define LOAPIC_ESR 0x280 /* Error Status Reg */ |
◆ LOAPIC_ICR_BUSY
#define LOAPIC_ICR_BUSY 0x00001000 /* delivery status: 1 = busy */ |
◆ LOAPIC_ICR_IPI_INIT
#define LOAPIC_ICR_IPI_INIT 0x00004500U |
◆ LOAPIC_ICR_IPI_OTHERS
#define LOAPIC_ICR_IPI_OTHERS 0x000C4000U /* normal IPI to other CPUs */ |
◆ LOAPIC_ICR_IPI_STARTUP
#define LOAPIC_ICR_IPI_STARTUP 0x00004600U |
◆ LOAPIC_ICRHI
#define LOAPIC_ICRHI 0x310 /* Interrupt Command Reg */ |
◆ LOAPIC_ICRLO
#define LOAPIC_ICRLO 0x300 /* Interrupt Command Reg */ |
◆ LOAPIC_ID
#define LOAPIC_ID 0x020 /* Local APIC ID Reg */ |
◆ LOAPIC_IRR
#define LOAPIC_IRR 0x200 /* Interrupt Request Reg */ |
◆ LOAPIC_ISR
#define LOAPIC_ISR 0x100 /* In-service Reg */ |
◆ LOAPIC_LDR
#define LOAPIC_LDR 0x0d0 /* Logical Destination Reg */ |
◆ LOAPIC_LINT0
#define LOAPIC_LINT0 0x350 /* LVT (LINT0) */ |
◆ LOAPIC_LINT1
#define LOAPIC_LINT1 0x360 /* LVT (LINT1) */ |
◆ LOAPIC_LVT_MASKED
#define LOAPIC_LVT_MASKED 0x00010000 /* mask */ |
◆ LOAPIC_PMC
#define LOAPIC_PMC 0x340 /* LVT (PMC) */ |
◆ LOAPIC_PPR
#define LOAPIC_PPR 0x0a0 /* Processor Priority Reg */ |
◆ LOAPIC_SVR
#define LOAPIC_SVR 0x0f0 /* Spurious Interrupt Reg */ |
◆ LOAPIC_THERMAL
#define LOAPIC_THERMAL 0x330 /* LVT (Thermal) */ |
◆ LOAPIC_TIMER
#define LOAPIC_TIMER 0x320 /* LVT (Timer) */ |
◆ LOAPIC_TIMER_CCR
#define LOAPIC_TIMER_CCR 0x390 /* Timer Current Count Reg */ |
◆ LOAPIC_TIMER_CONFIG
#define LOAPIC_TIMER_CONFIG 0x3e0 /* Timer Divide Config Reg */ |
◆ LOAPIC_TIMER_ICR
#define LOAPIC_TIMER_ICR 0x380 /* Timer Initial Count Reg */ |
◆ LOAPIC_TMR
#define LOAPIC_TMR 0x180 /* Trigger Mode Reg */ |
◆ LOAPIC_TPR
#define LOAPIC_TPR 0x080 /* Task Priority Reg */ |
◆ LOAPIC_VER
#define LOAPIC_VER 0x030 /* Local APIC Version Reg */ |
◆ x86_read_loapic()
Read value from the local APIC using the default mode.
Returns a 32-bit value read from the local APIC, using the access method determined by CONFIG_X2APIC (either xAPIC or x2APIC). Note that 64-bit reads are only allowed in x2APIC mode and can only be done by calling x86_read_x2apic() directly. (This is intentional.)
- Parameters
-
reg | the LOAPIC register number to read (LOAPIC_*) |
◆ x86_read_x2apic()
Read 64-bit value from the local APIC in x2APIC mode.
- Parameters
-
reg | the LOAPIC register number to read (LOAPIC_*) |
◆ x86_read_xapic()
Read 32-bit value from the local APIC in xAPIC (MMIO) mode.
- Parameters
-
reg | the LOAPIC register number to read (LOAPIC_*) |
◆ x86_write_loapic()
Write 32-bit value to the local APIC using the default mode.
Write a 32-bit value to the local APIC, using the access method determined by CONFIG_X2APIC (either xAPIC or x2APIC). Note that 64-bit writes are only available in x2APIC mode and can only be done by calling x86_write_x2apic() directly. (This is intentional.)
- Parameters
-
reg | the LOAPIC register number to write (one of LOAPIC_*) |
val | 32-bit value to write |
◆ x86_write_x2apic()
Write 64-bit value to the local APIC in x2APIC mode.
- Parameters
-
reg | the LOAPIC register number to write (one of LOAPIC_*) |
val | 64-bit value to write |
◆ x86_write_xapic()
Write 32-bit value to the local APIC in xAPIC (MMIO) mode.
- Parameters
-
reg | the LOAPIC register number to write (one of LOAPIC_*) |
val | 32-bit value to write |