mips32
[Interrupt handling and dispatching]


Files

file  interrupt.h
file  interrupt.c

Defines

#define IVT_ITEMS   40
#define INT_OFFSET   32
#define IRQ_COUNT   8
#define int_register(it, name, handler)   exc_register(((it)+INT_OFFSET),name,handler)
#define IRQ2   2
#define IRQ3   3
#define IRQ7   7
#define TIMER_IRQ   IRQ7

Functions

void interrupt_init (void)
ipl_t interrupts_disable (void)
ipl_t interrupts_enable (void)
void interrupts_restore (ipl_t ipl)
ipl_t interrupts_read (void)
static void timer_start (void)
static void timer_exception (int n, istate_t *istate)
static void swint0 (int n, istate_t *istate)
static void swint1 (int n, istate_t *istate)
static void ipc_int (int n, istate_t *istate)
void irq_ipc_bind_arch (__native irq)

Variables

static unsigned long nextcount

Define Documentation

#define INT_OFFSET   32
 

Definition at line 41 of file interrupt.h.

Referenced by interrupt_exception(), and ipc_int().

#define int_register it,
name,
handler   )     exc_register(((it)+INT_OFFSET),name,handler)
 

Definition at line 44 of file interrupt.h.

Referenced by arc_console(), interrupt_init(), irq_ipc_bind_arch(), msim_console(), msim_kbd_grab(), msim_kbd_release(), and serial_console().

#define IRQ2   2
 

Definition at line 46 of file interrupt.h.

#define IRQ3   3
 

Definition at line 47 of file interrupt.h.

#define IRQ7   7
 

Definition at line 48 of file interrupt.h.

#define IRQ_COUNT   8
 

Definition at line 42 of file interrupt.h.

Referenced by ipc_init(), sys_ipc_register_irq(), and sys_ipc_unregister_irq().

#define IVT_ITEMS   40
 

Definition at line 40 of file interrupt.h.

#define TIMER_IRQ   IRQ7
 

Definition at line 50 of file interrupt.h.

Referenced by arc_console(), arch_pre_mm_init(), interrupt_init(), irq_ipc_bind_arch(), and serial_console().


Function Documentation

void interrupt_init void   ) 
 

Definition at line 121 of file interrupt.c.

References int_register, swint0(), swint1(), timer_exception(), TIMER_IRQ, and timer_start().

Referenced by arch_pre_mm_init().

Here is the call graph for this function:

ipl_t interrupts_disable void   ) 
 

Disable interrupts.

Returns:
Old interrupt priority level.

Definition at line 49 of file interrupt.c.

References cp0_status_ie_enabled_bit.

Referenced by _getc(), _rwlock_read_lock_timeout(), _rwlock_write_lock_timeout(), _slab_cache_create(), _slab_free(), answer_preprocess(), arc_putchar(), arch_pre_mm_init(), as_area_create(), as_area_destroy(), as_area_resize(), as_area_share(), as_destroy(), as_get_size(), as_install_arch(), as_switch(), asid_put(), cap_get(), cap_set(), cmd_add_breakpoint(), cmd_del_breakpoint(), copy_from_uspace(), copy_to_uspace(), ddi_iospace_enable(), ddi_physmem_map(), delay(), find_best_thread(), frame_alloc_generic(), frame_free(), frame_reference_add(), halt(), ipc_irq_cleanup(), ipc_irq_register(), ipc_irq_unregister(), ipc_wait_for_call(), kcpulb(), kinit(), ktaskclnp(), ktaskgc(), printf_core(), ptl0_create(), rwlock_read_unlock(), rwlock_write_unlock(), sched_print_list(), scheduler(), semaphore_initialize(), slab_alloc(), slab_cache_destroy(), slab_print_list(), sys_cap_grant(), sys_cap_revoke(), sys_futex_sleep_timeout(), sys_futex_wakeup(), task_create(), task_kill(), task_print_list(), thread_create(), thread_detach(), thread_exit(), thread_join_timeout(), thread_print_list(), thread_ready(), thread_register_call_me(), timeout_register(), timeout_unregister(), tlb_invalidate_all(), tlb_invalidate_asid(), tlb_invalidate_pages(), waitq_interrupt_sleep(), waitq_sleep_prepare(), waitq_wakeup(), zone_merge(), zone_print_list(), zone_print_one(), and zones_add_zone().

ipl_t interrupts_enable void   ) 
 

Enable interrupts.

Returns:
Old interrupt priority level.

Definition at line 60 of file interrupt.c.

References cp0_status_ie_enabled_bit.

Referenced by cushion(), and find_best_thread().

ipl_t interrupts_read void   ) 
 

Read interrupt priority level.

Returns:
Current interrupt priority level.

Definition at line 80 of file interrupt.c.

Referenced by thread_create().

void interrupts_restore ipl_t  ipl  ) 
 

Restore interrupt priority level.

Parameters:
ipl Saved interrupt priority level.

Definition at line 71 of file interrupt.c.

References cp0_status_ie_enabled_bit.

Referenced by _getc(), _rwlock_read_lock_timeout(), _rwlock_write_lock_timeout(), _slab_cache_create(), _slab_free(), answer_preprocess(), arc_putchar(), as_area_create(), as_area_destroy(), as_area_resize(), as_area_share(), as_get_size(), as_install_arch(), as_switch(), asid_put(), cap_get(), cap_set(), cmd_del_breakpoint(), copy_from_uspace(), copy_to_uspace(), ddi_iospace_enable(), ddi_physmem_map(), delay(), frame_alloc_generic(), frame_free(), frame_reference_add(), ipc_irq_cleanup(), ipc_irq_register(), ipc_irq_unregister(), ipc_wait_for_call(), kcpulb(), ktaskclnp(), ktaskgc(), ptl0_create(), rwlock_read_unlock(), rwlock_write_unlock(), scheduler(), semaphore_initialize(), slab_alloc(), slab_cache_destroy(), slab_print_list(), sys_cap_grant(), sys_cap_revoke(), sys_futex_sleep_timeout(), sys_futex_wakeup(), task_create(), task_kill(), thread_create(), thread_detach(), thread_exit(), thread_join_timeout(), thread_ready(), thread_register_call_me(), timeout_register(), timeout_unregister(), waitq_interrupt_sleep(), waitq_sleep_finish(), waitq_sleep_prepare(), waitq_wakeup(), and zone_merge().

static void ipc_int int  n,
istate_t istate
[static]
 

Definition at line 129 of file interrupt.c.

References INT_OFFSET, and ipc_irq_send_notif().

Referenced by irq_ipc_bind_arch().

Here is the call graph for this function:

void irq_ipc_bind_arch __native  irq  ) 
 

Definition at line 135 of file interrupt.c.

References int_register, ipc_int(), and TIMER_IRQ.

Referenced by sys_ipc_register_irq().

Here is the call graph for this function:

static void swint0 int  n,
istate_t istate
[static]
 

Definition at line 108 of file interrupt.c.

References ipc_irq_send_notif().

Referenced by interrupt_init().

Here is the call graph for this function:

static void swint1 int  n,
istate_t istate
[static]
 

Definition at line 114 of file interrupt.c.

References ipc_irq_send_notif().

Referenced by interrupt_init().

Here is the call graph for this function:

static void timer_exception int  n,
istate_t istate
[static]
 

Definition at line 94 of file interrupt.c.

References clock(), cp0_compare_value, CPU, and nextcount.

Referenced by interrupt_init().

Here is the call graph for this function:

static void timer_start void   )  [static]
 

Start hardware clock

Definition at line 88 of file interrupt.c.

References cp0_compare_value, and nextcount.

Referenced by interrupt_init().


Variable Documentation

unsigned long nextcount [static]
 

Definition at line 86 of file interrupt.c.

Referenced by timer_exception(), and timer_start().


Generated on Sun Jun 18 17:14:30 2006 for HelenOS Kernel (mips32) by  doxygen 1.4.6