x86_64: acpi: add dest CPU parameter to io_apic::map_irq()
This commit is contained in:
@@ -49,16 +49,16 @@ void io_apic::write_irq(unsigned int index, const irq_entry &entry)
|
|||||||
write(IOAPICREDTBL(index) + 1, entry_data[1]);
|
write(IOAPICREDTBL(index) + 1, entry_data[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void io_apic::map_irq(unsigned int src, unsigned int dest)
|
void io_apic::map_irq(unsigned int src, unsigned int dest, unsigned int dest_cpu)
|
||||||
{
|
{
|
||||||
io_apic::irq_entry irq{};
|
io_apic::irq_entry irq{};
|
||||||
irq.irq_vec = dest;
|
irq.irq_vec = dest;
|
||||||
|
irq.irq_dest = dest_cpu;
|
||||||
irq.irq_delivery = 0;
|
irq.irq_delivery = 0;
|
||||||
irq.irq_destmode = 0;
|
irq.irq_destmode = 0;
|
||||||
irq.irq_polarity = 0;
|
irq.irq_polarity = 0;
|
||||||
irq.irq_triggermode = 0;
|
irq.irq_triggermode = 0;
|
||||||
irq.irq_mask = 0;
|
irq.irq_mask = 0;
|
||||||
irq.irq_dest = 0;
|
|
||||||
|
|
||||||
write_irq(src, irq);
|
write_irq(src, irq);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ namespace arch::acpi {
|
|||||||
|
|
||||||
kern_status_t read_irq(unsigned int index, irq_entry &entry);
|
kern_status_t read_irq(unsigned int index, irq_entry &entry);
|
||||||
void write_irq(unsigned int index, const irq_entry &entry);
|
void write_irq(unsigned int index, const irq_entry &entry);
|
||||||
void map_irq(unsigned int src, unsigned int dest);
|
void map_irq(unsigned int src, unsigned int dest, unsigned int dest_cpu = 0);
|
||||||
void mask_irq(unsigned int vec);
|
void mask_irq(unsigned int vec);
|
||||||
void unmask_irq(unsigned int vec, unsigned int dest_cpu = (unsigned int)-1);
|
void unmask_irq(unsigned int vec, unsigned int dest_cpu = (unsigned int)-1);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user