Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 799 → Rev 798

/kernel/trunk/arch/mips32/src/exception.c
78,14 → 78,18
pstate->ra,rasymbol);
}
 
static void unhandled_exception(int n, struct exception_regdump *pstate)
static void unhandled_exception(int n, void *data)
{
struct exception_regdump *pstate = (struct exception_regdump *)data;
 
print_regdump(pstate);
panic("unhandled exception %s\n", exctable[n]);
}
 
static void breakpoint_exception(int n, struct exception_regdump *pstate)
static void breakpoint_exception(int n, void *data)
{
struct exception_regdump *pstate = (struct exception_regdump *)data;
 
#ifdef CONFIG_DEBUG
debugger_bpoint(pstate);
#else
96,18 → 100,20
#endif
}
 
static void tlbmod_exception(int n, struct exception_regdump *pstate)
static void tlbmod_exception(int n, void *data)
{
struct exception_regdump *pstate = (struct exception_regdump *)data;
tlb_modified(pstate);
}
 
static void tlbinv_exception(int n, struct exception_regdump *pstate)
static void tlbinv_exception(int n, void *data)
{
struct exception_regdump *pstate = (struct exception_regdump *)data;
tlb_invalid(pstate);
}
 
#ifdef CONFIG_FPU_LAZY
static void cpuns_exception(int n, struct exception_regdump *pstate)
static void cpuns_exception(int n, void *data)
{
if (cp0_cause_coperr(cp0_cause_read()) == fpu_cop_id)
scheduler_fpu_lazy_request();
116,7 → 122,7
}
#endif
 
static void interrupt_exception(int n, struct exception_regdump *pstate)
static void interrupt_exception(int n, void *pstate)
{
__u32 cause;
int i;
131,8 → 137,10
 
#include <debug.h>
/** Handle syscall userspace call */
static void syscall_exception(int n, struct exception_regdump *pstate)
static void syscall_exception(int n, void *data)
{
struct exception_regdump *pstate = (struct exception_regdump *)data;
if (pstate->a3 < SYSCALL_END)
pstate->v0 = syscall_table[pstate->a3](pstate->a0,
pstate->a1,
189,14 → 197,14
 
/* Clear exception table */
for (i=0;i < IVT_ITEMS; i++)
exc_register(i, "undef", (iroutine) unhandled_exception);
exc_register(EXC_Bp, "bkpoint", (iroutine) breakpoint_exception);
exc_register(EXC_Mod, "tlb_mod", (iroutine) tlbmod_exception);
exc_register(EXC_TLBL, "tlbinvl", (iroutine) tlbinv_exception);
exc_register(EXC_TLBS, "tlbinvl", (iroutine) tlbinv_exception);
exc_register(EXC_Int, "interrupt", (iroutine) interrupt_exception);
exc_register(i, "undef", unhandled_exception);
exc_register(EXC_Bp, "bkpoint", breakpoint_exception);
exc_register(EXC_Mod, "tlb_mod", tlbmod_exception);
exc_register(EXC_TLBL, "tlbinvl", tlbinv_exception);
exc_register(EXC_TLBS, "tlbinvl", tlbinv_exception);
exc_register(EXC_Int, "interrupt", interrupt_exception);
#ifdef CONFIG_FPU_LAZY
exc_register(EXC_CpU, "cpunus", (iroutine) cpuns_exception);
exc_register(EXC_CpU, "cpunus", cpuns_exception);
#endif
exc_register(EXC_Sys, "syscall", (iroutine) syscall_exception);
exc_register(EXC_Sys, "syscall", syscall_exception);
}