1 #ifndef __LUNAIX_IOAPIC_H
2 #define __LUNAIX_IOAPIC_H
6 #define IOAPIC_IOREGSEL 0x00
7 #define IOAPIC_IOWIN 0x10
8 #define IOAPIC_IOREDTBL_BASE 0x10
10 #define IOAPIC_REG_ID 0x00
11 #define IOAPIC_REG_VER 0x01
12 #define IOAPIC_REG_ARB 0x02
14 #define IOAPIC_DELMOD_FIXED 0b000
15 #define IOAPIC_DELMOD_LPRIO 0b001
16 #define IOAPIC_DELMOD_NMI 0b100
18 #define IOAPIC_MASKED (1 << 16)
19 #define IOAPIC_TRIG_LEVEL (1 << 15)
20 #define IOAPIC_INTPOL_L (1 << 13)
21 #define IOAPIC_DESTMOD_LOGIC (1 << 11)
23 #define IOAPIC_BASE_VADDR 0x2000
29 ioapic_write(uint8_t sel, u32_t val);
32 ioapic_read(uint8_t sel);
35 ioapic_redirect(uint8_t irq, uint8_t vector, uint8_t dest, u32_t flags);
37 #endif /* __LUNAIX_IOAPIC_H */