Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 3787 → Rev 3788

/trunk/kernel/generic/include/interrupt.h
44,12 → 44,12
 
typedef void (* iroutine)(int n, istate_t *istate);
 
#define fault_if_from_uspace(istate, cmd, ...) \
#define fault_if_from_uspace(istate, fmt, ...) \
{ \
if (istate_from_uspace(istate)) { \
task_t *task = TASK; \
printf("Task %" PRIu64 " killed due to an exception at %p.", task->taskid, istate_get_pc(istate)); \
printf(" " cmd, ##__VA_ARGS__); \
printf(" " fmt "\n", ##__VA_ARGS__); \
task_kill(task->taskid); \
thread_exit(); \
} \
/trunk/kernel/generic/src/interrupt/interrupt.c
105,8 → 105,8
/** Default 'null' exception handler */
static void exc_undef(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "Unhandled exception %d.", n);
panic("Unhandled exception %d.", n);
fault_if_from_uspace(istate, "Unhandled exception %d", n);
panic("Unhandled exception %d", n);
}
 
#ifdef CONFIG_KCONSOLE
/trunk/kernel/arch/sparc64/src/trap/exception.c
53,7 → 53,7
/** Handle instruction_access_exception. (0x8) */
void instruction_access_exception(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
}
61,7 → 61,7
/** Handle instruction_access_error. (0xa) */
void instruction_access_error(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
}
69,7 → 69,7
/** Handle illegal_instruction. (0x10) */
void illegal_instruction(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
}
77,7 → 77,7
/** Handle privileged_opcode. (0x11) */
void privileged_opcode(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
}
85,7 → 85,7
/** Handle unimplemented_LDD. (0x12) */
void unimplemented_LDD(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
}
93,7 → 93,7
/** Handle unimplemented_STD. (0x13) */
void unimplemented_STD(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
}
113,7 → 113,7
#ifdef CONFIG_FPU_LAZY
scheduler_fpu_lazy_request();
#else
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
#endif
122,7 → 122,7
/** Handle fp_exception_ieee_754. (0x21) */
void fp_exception_ieee_754(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
}
130,7 → 130,7
/** Handle fp_exception_other. (0x22) */
void fp_exception_other(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
}
138,7 → 138,7
/** Handle tag_overflow. (0x23) */
void tag_overflow(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
}
146,7 → 146,7
/** Handle division_by_zero. (0x28) */
void division_by_zero(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
}
154,7 → 154,7
/** Handle data_access_exception. (0x30) */
void data_access_exception(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
dump_sfsr_and_sfar();
panic("%s\n", __func__);
163,7 → 163,7
/** Handle data_access_error. (0x32) */
void data_access_error(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
}
171,7 → 171,7
/** Handle mem_address_not_aligned. (0x34) */
void mem_address_not_aligned(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
}
179,7 → 179,7
/** Handle LDDF_mem_address_not_aligned. (0x35) */
void LDDF_mem_address_not_aligned(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
}
187,7 → 187,7
/** Handle STDF_mem_address_not_aligned. (0x36) */
void STDF_mem_address_not_aligned(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
}
195,7 → 195,7
/** Handle privileged_action. (0x37) */
void privileged_action(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
}
203,7 → 203,7
/** Handle LDQF_mem_address_not_aligned. (0x38) */
void LDQF_mem_address_not_aligned(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
}
211,7 → 211,7
/** Handle STQF_mem_address_not_aligned. (0x39) */
void STQF_mem_address_not_aligned(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "%s\n", __func__);
fault_if_from_uspace(istate, "%s", __func__);
dump_istate(istate);
panic("%s\n", __func__);
}
/trunk/kernel/arch/sparc64/src/mm/tlb.c
424,7 → 424,7
void do_fast_instruction_access_mmu_miss_fault(istate_t *istate,
const char *str)
{
fault_if_from_uspace(istate, "%s\n", str);
fault_if_from_uspace(istate, "%s", str);
dump_istate(istate);
panic("%s\n", str);
}
436,7 → 436,7
 
va = tag.vpn << MMU_PAGE_WIDTH;
if (tag.context) {
fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d)\n", str, va,
fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d)", str, va,
tag.context);
}
dump_istate(istate);
452,7 → 452,7
va = tag.vpn << MMU_PAGE_WIDTH;
 
if (tag.context) {
fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d)\n", str, va,
fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d)", str, va,
tag.context);
}
printf("Faulting page: %p, ASID=%d\n", va, tag.context);
/trunk/kernel/arch/ia64/src/interrupt.c
228,7 → 228,7
 
void universal_handler(uint64_t vector, istate_t *istate)
{
fault_if_from_uspace(istate, "Interruption: %#hx (%s)\n",
fault_if_from_uspace(istate, "Interruption: %#hx (%s)",
(uint16_t) vector, vector_to_string(vector));
dump_interrupted_context(istate);
panic("Interruption: %#hx (%s)\n", (uint16_t) vector,
/trunk/kernel/arch/arm32/src/mm/page_fault.c
189,7 → 189,7
access);
 
fault_if_from_uspace(istate, "Page fault: %#x", badvaddr);
panic("page fault\n");
panic("Page fault\n");
}
}
 
/trunk/kernel/arch/ppc32/src/mm/tlb.c
119,7 → 119,7
sym2 = s;
 
fault_if_from_uspace(istate,
"%p: PHT Refill Exception at %p (%s<-%s)\n", badvaddr,
"%p: PHT Refill Exception at %p (%s<-%s)", badvaddr,
istate->pc, symbol, sym2);
panic("%p: PHT Refill Exception at %p (%s<-%s)\n", badvaddr,
istate->pc, symbol, sym2);
/trunk/kernel/arch/ia32xen/src/mm/page.c
77,8 → 77,8
fault_if_from_uspace(istate, "Page fault: %#x", page);
decode_istate(istate);
printf("page fault address: %#x\n", page);
panic("page fault\n");
printf("Page fault address: %#x\n", page);
panic("Page fault\n");
}
}
 
/trunk/kernel/arch/ia32xen/src/interrupt.c
94,10 → 94,10
 
static void null_interrupt(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "unserviced interrupt: %d", n);
fault_if_from_uspace(istate, "Unserviced interrupt: %d", n);
 
decode_istate(istate);
panic("unserviced interrupt: %d\n", n);
panic("Unserviced interrupt: %d\n", n);
}
 
/** General Protection Fault. */
121,19 → 121,19
io_perm_bitmap_install();
return;
}
fault_if_from_uspace(istate, "general protection fault");
fault_if_from_uspace(istate, "General protection fault");
}
 
decode_istate(istate);
panic("general protection fault\n");
panic("General protection fault\n");
}
 
static void ss_fault(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "stack fault");
fault_if_from_uspace(istate, "Stack fault");
 
decode_istate(istate);
panic("stack fault\n");
panic("Stack fault\n");
}
 
static void simd_fp_exception(int n, istate_t *istate)
157,8 → 157,8
#ifdef CONFIG_FPU_LAZY
scheduler_fpu_lazy_request();
#else
fault_if_from_uspace(istate, "fpu fault");
panic("fpu fault");
fault_if_from_uspace(istate, "FPU fault");
panic("FPU fault");
#endif
}
 
/trunk/kernel/arch/amd64/src/mm/page.c
194,7 → 194,7
 
decode_istate(n, istate);
printf("Page fault address: %llx\n", page);
panic("page fault\n");
panic("Page fault\n");
}
}
 
/trunk/kernel/arch/amd64/src/interrupt.c
100,9 → 100,9
 
static void null_interrupt(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "unserviced interrupt: %d", n);
fault_if_from_uspace(istate, "Unserviced interrupt: %d", n);
decode_istate(n, istate);
panic("unserviced interrupt\n");
panic("Unserviced interrupt\n");
}
 
/** General Protection Fault. */
126,18 → 126,18
io_perm_bitmap_install();
return;
}
fault_if_from_uspace(istate, "general protection fault");
fault_if_from_uspace(istate, "General protection fault");
}
 
decode_istate(n, istate);
panic("general protection fault\n");
panic("General protection fault\n");
}
 
static void ss_fault(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "stack fault");
fault_if_from_uspace(istate, "Stack fault");
decode_istate(n, istate);
panic("stack fault\n");
panic("Stack fault\n");
}
 
static void nm_fault(int n, istate_t *istate)
145,8 → 145,8
#ifdef CONFIG_FPU_LAZY
scheduler_fpu_lazy_request();
#else
fault_if_from_uspace(istate, "fpu fault");
panic("fpu fault");
fault_if_from_uspace(istate, "FPU fault");
panic("FPU fault");
#endif
}
 
/trunk/kernel/arch/mips32/src/exception.c
88,10 → 88,10
 
static void unhandled_exception(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "unhandled exception %s", exctable[n]);
fault_if_from_uspace(istate, "Unhandled exception %s", exctable[n]);
print_regdump(istate);
panic("unhandled exception %s\n", exctable[n]);
panic("Unhandled exception %s.\n", exctable[n]);
}
 
static void reserved_instr_exception(int n, istate_t *istate)
132,8 → 132,8
if (cp0_cause_coperr(cp0_cause_read()) == fpu_cop_id)
scheduler_fpu_lazy_request();
else {
fault_if_from_uspace(istate, "unhandled Coprocessor Unusable Exception");
panic("unhandled Coprocessor Unusable Exception\n");
fault_if_from_uspace(istate, "Unhandled Coprocessor Unusable Exception");
panic("Unhandled Coprocessor Unusable Exception.\n");
}
}
#endif
/trunk/kernel/arch/mips32/src/mm/tlb.c
332,7 → 332,7
 
fault_if_from_uspace(istate, "TLB Refill Exception on %p",
cp0_badvaddr_read());
panic("%x: TLB Refill Exception at %x(%s<-%s)\n", cp0_badvaddr_read(),
panic("%x: TLB Refill Exception at %x(%s<-%s).\n", cp0_badvaddr_read(),
istate->epc, symbol, sym2);
}
 
346,7 → 346,7
symbol = s;
fault_if_from_uspace(istate, "TLB Invalid Exception on %p",
cp0_badvaddr_read());
panic("%x: TLB Invalid Exception at %x(%s)\n", cp0_badvaddr_read(),
panic("%x: TLB Invalid Exception at %x(%s).\n", cp0_badvaddr_read(),
istate->epc, symbol);
}
 
359,7 → 359,7
symbol = s;
fault_if_from_uspace(istate, "TLB Modified Exception on %p",
cp0_badvaddr_read());
panic("%x: TLB Modified Exception at %x(%s)\n", cp0_badvaddr_read(),
panic("%x: TLB Modified Exception at %x(%s).\n", cp0_badvaddr_read(),
istate->epc, symbol);
}
 
/trunk/kernel/arch/ia32/src/interrupt.c
95,10 → 95,10
 
static void null_interrupt(int n, istate_t *istate)
{
fault_if_from_uspace(istate, "unserviced interrupt: %d", n);
fault_if_from_uspace(istate, "Unserviced interrupt: %d", n);
 
decode_istate(istate);
panic("unserviced interrupt: %d\n", n);
panic("Unserviced interrupt: %d\n", n);
}
 
/** General Protection Fault. */
122,19 → 122,19
io_perm_bitmap_install();
return;
}
fault_if_from_uspace(istate, "general protection fault");
fault_if_from_uspace(istate, "General protection fault");
}
 
decode_istate(istate);
panic("general protection fault\n");
panic("General protection fault\n");
}
 
static void ss_fault(int n __attribute__((unused)), istate_t *istate)
{
fault_if_from_uspace(istate, "stack fault");
fault_if_from_uspace(istate, "Stack fault");
 
decode_istate(istate);
panic("stack fault\n");
panic("Stack fault\n");
}
 
static void simd_fp_exception(int n __attribute__((unused)), istate_t *istate)
157,8 → 157,8
#ifdef CONFIG_FPU_LAZY
scheduler_fpu_lazy_request();
#else
fault_if_from_uspace(istate, "fpu fault");
panic("fpu fault");
fault_if_from_uspace(istate, "FPU fault");
panic("FPU fault");
#endif
}