|
MentOS
0.8.0
The Mentoring Operating System
|
are software routines that hardware invokes in response to an interrupt. More...
Macros | |
| #define | DIVIDE_ERROR 0 |
| DE Divide Error. | |
| #define | DEBUG_EXC 1 |
| DB Debug. | |
| #define | NMI_INTERRUPT 2 |
| Non Mascable Interrupt. | |
| #define | BREAKPOINT 3 |
| BP Breakpoint. | |
| #define | OVERFLOW 4 |
| OF Overflow. | |
| #define | BOUND_RANGE_EXCEED 5 |
| BR Bound Range Exception. | |
| #define | INVALID_OPCODE 6 |
| UD Invalid OpCode Exception. | |
| #define | DEV_NOT_AVL 7 |
| NM Device Not Available. | |
| #define | DOUBLE_FAULT 8 |
| DF Double Fault. | |
| #define | COPROC_SEG_OVERRUN 9 |
| Coprocessor Segment Overrun. | |
| #define | INVALID_TSS 10 |
| TS Invalid TSS. | |
| #define | SEGMENT_NOT_PRESENT 11 |
| NP Segment Not Present. | |
| #define | STACK_SEGMENT_FAULT 12 |
| SS Stack Segment Fault. | |
| #define | GENERAL_PROTECTION 13 |
| GP General Protection. | |
| #define | PAGE_FAULT 14 |
| PF Page Fault. | |
| #define | INT_RSV 15 |
| XX Reserverd. | |
| #define | FLOATING_POINT_ERR 16 |
| MF Floating Point. | |
| #define | ALIGNMENT_CHECK 17 |
| AC Alignment Check. | |
| #define | MACHINE_CHECK 18 |
| MC Machine Check. | |
| #define | SIMD_FP_EXC 19 |
| XF Streaming SIMD Exception. | |
| #define | VIRT_EXC 20 |
| Virtualization Exception. | |
| #define | SECURITY_EXC 30 |
| Security Exception. | |
| #define | TRIPLE_FAULT 31 |
| Triple Fault. | |
| #define | SYSTEM_CALL 80 |
| System call interrupt. | |
Typedefs | |
| typedef void(* | interrupt_handler_t) (pt_regs *f) |
| Interrupt handler definition. More... | |
Functions | |
| void | isrs_init (void) |
| For each exceptions isrs_init sets a default handler which prints the rose exceptions and stops kernel execution. | |
| void | irq_init (void) |
| For each interrupt irq_init sets a default handler which prints the rose IRQ line and stops kernel execution. | |
| int | isr_install_handler (unsigned i, interrupt_handler_t handler, char *description) |
| Installs an ISR to handle an interrupt. More... | |
| int | isr_uninstall_handler (unsigned i) |
| Uninstall an ISR handler. More... | |
| int | irq_install_handler (unsigned i, interrupt_handler_t handler, char *description) |
| Installs an ISR to handle an interrupt. More... | |
| int | irq_uninstall_handler (unsigned i, interrupt_handler_t handler) |
| Uninstall an IRQ handler. More... | |
| void | irq_handler (pt_regs *f) |
| Method called by CPU to handle interrupts. More... | |
| void | isq_handler (pt_regs *f) |
| Method called by CPU to handle exceptions. More... | |
are software routines that hardware invokes in response to an interrupt.
| typedef void(* interrupt_handler_t) (pt_regs *f) |
Interrupt handler definition.
An interrupt handler is an interrupt service routine called to manage interrupt requests, or CPU execptions.
| f | An interrupt stack frame. |
| void irq_handler | ( | pt_regs * | f | ) |
Method called by CPU to handle interrupts.
| f | The interrupt stack frame. |
| int irq_install_handler | ( | unsigned | i, |
| interrupt_handler_t | handler, | ||
| char * | description | ||
| ) |
Installs an ISR to handle an interrupt.
| i | interrupt identifier. |
| handler | interrupt handler. |
| description | interrupt description. |
| int irq_uninstall_handler | ( | unsigned | i, |
| interrupt_handler_t | handler | ||
| ) |
Uninstall an IRQ handler.
| i | interrupt identifier. |
| handler | interrupt handler. |
| void isq_handler | ( | pt_regs * | f | ) |
Method called by CPU to handle exceptions.
| f | The interrupt stack frame. |
| int isr_install_handler | ( | unsigned | i, |
| interrupt_handler_t | handler, | ||
| char * | description | ||
| ) |
Installs an ISR to handle an interrupt.
| i | interrupt identifier. |
| handler | interrupt handler. |
| description | interrupt description. |
| int isr_uninstall_handler | ( | unsigned | i | ) |
Uninstall an ISR handler.
| i | interrupt identifier. |