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. |