mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-04 15:45:25 +00:00
Kernel: Acquire ISA interrupt overrides from Interrupt Management
Also, InterruptDisabler were added to prevent critical function from being interrupted. In addition, the interrupt numbers are abstracted from IDT offsets, thus, allowing to create a better routing scheme when using IOAPICs for interrupt redirection.
This commit is contained in:
@@ -39,20 +39,20 @@ GenericInterruptHandler& GenericInterruptHandler::from(u8 interrupt_number)
|
||||
GenericInterruptHandler::GenericInterruptHandler(u8 interrupt_number)
|
||||
: m_interrupt_number(interrupt_number)
|
||||
{
|
||||
register_generic_interrupt_handler(interrupt_number, *this);
|
||||
register_generic_interrupt_handler(InterruptManagement::acquire_mapped_interrupt_number(m_interrupt_number), *this);
|
||||
}
|
||||
|
||||
GenericInterruptHandler::~GenericInterruptHandler()
|
||||
{
|
||||
unregister_generic_interrupt_handler(m_interrupt_number, *this);
|
||||
unregister_generic_interrupt_handler(InterruptManagement::acquire_mapped_interrupt_number(m_interrupt_number), *this);
|
||||
}
|
||||
|
||||
void GenericInterruptHandler::change_interrupt_number(u8 number)
|
||||
{
|
||||
ASSERT_INTERRUPTS_ENABLED();
|
||||
unregister_generic_interrupt_handler(interrupt_number(), *this);
|
||||
unregister_generic_interrupt_handler(InterruptManagement::acquire_mapped_interrupt_number(interrupt_number()), *this);
|
||||
m_interrupt_number = number;
|
||||
register_generic_interrupt_handler(interrupt_number(), *this);
|
||||
register_generic_interrupt_handler(InterruptManagement::acquire_mapped_interrupt_number(interrupt_number()), *this);
|
||||
}
|
||||
void GenericInterruptHandler::increment_invoking_counter()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user