MentOS  0.8.0
The Mentoring Operating System
Macros | Typedefs | Functions
Interrupt Service Routines (ISRs)

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

Detailed Description

are software routines that hardware invokes in response to an interrupt.

Typedef Documentation

◆ interrupt_handler_t

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.

Parameters
fAn interrupt stack frame.

Function Documentation

◆ irq_handler()

void irq_handler ( pt_regs f)

Method called by CPU to handle interrupts.

Parameters
fThe interrupt stack frame.

◆ irq_install_handler()

int irq_install_handler ( unsigned  i,
interrupt_handler_t  handler,
char *  description 
)

Installs an ISR to handle an interrupt.

Parameters
iinterrupt identifier.
handlerinterrupt handler.
descriptioninterrupt description.
Returns
0 on success, -1 otherwise.

◆ irq_uninstall_handler()

int irq_uninstall_handler ( unsigned  i,
interrupt_handler_t  handler 
)

Uninstall an IRQ handler.

Parameters
iinterrupt identifier.
handlerinterrupt handler.
Returns
0 on success, -1 otherwise.

◆ isq_handler()

void isq_handler ( pt_regs f)

Method called by CPU to handle exceptions.

Parameters
fThe interrupt stack frame.

◆ isr_install_handler()

int isr_install_handler ( unsigned  i,
interrupt_handler_t  handler,
char *  description 
)

Installs an ISR to handle an interrupt.

Parameters
iinterrupt identifier.
handlerinterrupt handler.
descriptioninterrupt description.
Returns
0 on success, -1 otherwise.

◆ isr_uninstall_handler()

int isr_uninstall_handler ( unsigned  i)

Uninstall an ISR handler.

Parameters
iinterrupt identifier.
Returns
0 on success, -1 otherwise.