summaryrefslogtreecommitdiff
path: root/i386/i386/apic.h
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2021-04-05 15:29:16 +1000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2021-04-05 12:00:25 +0200
commit697d9a014506df49976251b2cc449bbe2a806d9a (patch)
treeb4c75a44d6973de42193cdd20989a62557b8c15e /i386/i386/apic.h
parent417f458488e4802cc3f2658c1b241a5e0053df46 (diff)
ioapic: Use irq specific EOI properly when detected
Message-Id: <20210405052916.174771-5-damien@zamaudio.com>
Diffstat (limited to 'i386/i386/apic.h')
-rw-r--r--i386/i386/apic.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/i386/i386/apic.h b/i386/i386/apic.h
index d63dbfcc..add1b8cf 100644
--- a/i386/i386/apic.h
+++ b/i386/i386/apic.h
@@ -35,6 +35,8 @@ typedef struct ApicReg {
typedef struct ApicIoUnit {
ApicReg select;
ApicReg window;
+ ApicReg unused[2];
+ ApicReg eoi; /* write the vector you wish to EOI to this reg */
} ApicIoUnit;
struct ioapic_route_entry {
@@ -175,6 +177,7 @@ extern inline void unmask_irq (unsigned int irq_nr);
#define LAPIC_ENABLE 0x100
#define LAPIC_FOCUS 0x200
#define LAPIC_NMI 0x400
+#define LAPIC_ENABLE_DIRECTED_EOI 0x1000
#define LAPIC_DISABLE 0x10000
#define LAPIC_TIMER_PERIODIC 0x20000
#define LAPIC_TIMER_DIVIDE_2 0
@@ -182,6 +185,7 @@ extern inline void unmask_irq (unsigned int irq_nr);
#define LAPIC_TIMER_DIVIDE_8 2
#define LAPIC_TIMER_DIVIDE_16 3
#define LAPIC_TIMER_BASEDIV 0x100000
+#define LAPIC_HAS_DIRECTED_EOI 0x1000000
#define NINTR 24
#define IOAPIC_FIXED 0