summaryrefslogtreecommitdiffstats
path: root/sys/amd64/amd64/apic_vector.S
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2005-02-28 23:37:35 +0000
committerpeter <peter@FreeBSD.org>2005-02-28 23:37:35 +0000
commit7e1c228b9f27ff83fabc78c22fd65edec55298b8 (patch)
treecbf1056653b0a15ba5ee28bf92b70393252caed4 /sys/amd64/amd64/apic_vector.S
parent8115657ff0bbed634a787daeeed108209d0a65b9 (diff)
downloadFreeBSD-src-7e1c228b9f27ff83fabc78c22fd65edec55298b8.zip
FreeBSD-src-7e1c228b9f27ff83fabc78c22fd65edec55298b8.tar.gz
MFi386: Bring over John's local apic timer code
Diffstat (limited to 'sys/amd64/amd64/apic_vector.S')
-rw-r--r--sys/amd64/amd64/apic_vector.S17
1 files changed, 17 insertions, 0 deletions
diff --git a/sys/amd64/amd64/apic_vector.S b/sys/amd64/amd64/apic_vector.S
index fc3c63b..97335cb 100644
--- a/sys/amd64/amd64/apic_vector.S
+++ b/sys/amd64/amd64/apic_vector.S
@@ -137,6 +137,23 @@ IDTVEC(spuriousint)
ISR_VEC(6, apic_isr6)
ISR_VEC(7, apic_isr7)
+/*
+ * Local APIC periodic timer handler.
+ */
+ .text
+ SUPERALIGN_TEXT
+IDTVEC(timerint)
+ PUSH_FRAME
+
+ movq lapic, %rdx
+ movl $0, LA_EOI(%rdx) /* End Of Interrupt to APIC */
+
+ FAKE_MCOUNT(TF_EIP(%esp))
+
+ call lapic_handle_timer
+ MEXITCOUNT
+ jmp doreti
+
#ifdef SMP
/*
* Global address space TLB shootdown.
OpenPOWER on IntegriCloud