Skip to content

I/O APIC

include/acpi/ioapic.h View source View on GitHub
struct ioapic_info {
    uint8_t   id;
    uint32_t  gsi_base;
    uint32_t  *mmio_base;
};
union ioapic_redirection_entry {
    uint64_t  raw;
    struct {
        uint8_t   vector;
        uint8_t   delivery_mode : 3;
        uint8_t   dest_mode : 1;
        uint8_t   delivery_status : 1;
        uint8_t   polarity : 1;
        uint8_t   remote_irr : 1;
        uint8_t   trigger_mode : 1;
        uint8_t   mask : 1;
        uint16_t  reserved : 15;
        uint8_t   reserved2;
        uint8_t   reserved3;
        uint8_t   reserved4;
        uint8_t   dest_apic_id;
    };
};
void ioapic_init(void);
void ioapic_set_redirection_entry(int irq, uint64_t entry);
void ioapic_route_irq(irq_t irq, uint8_t vector, uint8_t dest_apic_id, bool masked);