![]() |
Max OS 0.3
|
Handles a certain interrupt number. More...
#include <interrupts.h>
Public Member Functions | |
| virtual void | handle_interrupt () |
| Handles an interrupt. | |
| virtual system::cpu_status_t * | handle_interrupt (system::cpu_status_t *status) |
| Handles an interrupt and returns the status. | |
Protected Member Functions | |
| InterruptHandler (uint8_t interrupt_number, int64_t redirect=-1, uint64_t redirect_index=0) | |
| Creates a new interrupt handler and registers it with the interrupt manager. | |
| virtual | ~InterruptHandler () |
| Destroys the interrupt handler and unregisters it from the interrupt manager. | |
Protected Attributes | |
| uint8_t | m_interrupt_number |
| The interrupt number this handler handles. | |
Handles a certain interrupt number.
Definition at line 44 of file interrupts.h.
|
explicitprotected |
Creates a new interrupt handler and registers it with the interrupt manager.
| interrupt_number | The interrupt number to handle |
| redirect | What legacy interrupt to redirect from (-1 for no redirection) |
| redirect_index | Which index of the legacy interrupt to redirect from |
Definition at line 24 of file interrupts.cpp.
References MaxOS::hardwarecommunication::InterruptManager::active_apic(), MaxOS::hardwarecommunication::AdvancedProgrammableInterruptController::io_apic(), m_interrupt_number, MaxOS::hardwarecommunication::InterruptManager::s_active_interrupt_manager, MaxOS::hardwarecommunication::InterruptManager::set_interrupt_handler(), MaxOS::hardwarecommunication::IOAPIC::set_redirect(), and MaxOS::hardwarecommunication::InterruptRedirect::type.
|
protectedvirtual |
Destroys the interrupt handler and unregisters it from the interrupt manager.
Definition at line 55 of file interrupts.cpp.
References m_interrupt_number, MaxOS::hardwarecommunication::InterruptManager::s_active_interrupt_manager, and MaxOS::hardwarecommunication::InterruptManager::set_interrupt_handler().
|
virtual |
Handles an interrupt.
Definition at line 68 of file interrupts.cpp.
Referenced by handle_interrupt(), and MaxOS::hardwarecommunication::InterruptManager::handle_interrupt_request().
|
virtual |
Handles an interrupt and returns the status.
| status | The status of the CPU |
Reimplemented in MaxOS::system::SyscallManager, MaxOS::hardwarecommunication::ExceptionHandler, MaxOS::hardwarecommunication::CPUStopHandler, MaxOS::processes::GlobalScheduler, MaxOS::runtime::TrapFlagExcpetion, and MaxOS::runtime::BreakPointException.
Definition at line 78 of file interrupts.cpp.
References handle_interrupt().
|
protected |
The interrupt number this handler handles.
Definition at line 46 of file interrupts.h.
Referenced by InterruptHandler(), and ~InterruptHandler().