]> Zhao Yanbai Git Server - minix.git/commitdiff
Prototypes for exception and stacktrace. Declare additional arguments
authorPhilip Homburg <philip@cs.vu.nl>
Mon, 23 Apr 2007 13:19:25 +0000 (13:19 +0000)
committerPhilip Homburg <philip@cs.vu.nl>
Mon, 23 Apr 2007 13:19:25 +0000 (13:19 +0000)
for exception to be able to print nexted exceptions.

kernel/arch/i386/exception.c
kernel/arch/i386/proto.h

index df98dd4e16eab78659957b4c1544531e13a85bc1..e3ee95fac7bc85647151f7b5499d8465bf6953e5 100755 (executable)
@@ -4,13 +4,19 @@
  */
 
 #include "../../kernel.h"
+#include "proto.h"
 #include <signal.h>
 #include "../../proc.h"
 
 /*===========================================================================*
  *                             exception                                    *
  *===========================================================================*/
-PUBLIC void exception(unsigned vec_nr)
+PUBLIC void exception(vec_nr, trap_errno, old_eip, old_cs, old_eflags)
+unsigned vec_nr;
+u32_t trap_errno;
+u32_t old_eip;
+U16_t old_cs;
+u32_t old_eflags;
 {
 /* An exception or unexpected interrupt has occurred. */
 
@@ -84,6 +90,10 @@ PUBLIC void exception(unsigned vec_nr)
   kprintf("process %d (%s), ", proc_nr(saved_proc), saved_proc->p_name);
   kprintf("pc = %u:0x%x", (unsigned) saved_proc->p_reg.cs,
   (unsigned) saved_proc->p_reg.pc);
+  kprintf(
+  "vec_nr= %d, trap_errno= 0x%lx, eip= 0x%lx, cs= 0x%x, eflags= 0x%lx\n",
+       vec_nr, (unsigned long)trap_errno,
+       (unsigned long)old_eip, old_cs, (unsigned long)old_eflags);
 
   panic("exception in a kernel task", NO_NUM);
 }
index 06eecd09f0b2804c9f3a52b08271e5ead2e3b068..0530bf35a47f605665fbb6baec881bca7228f0b8 100644 (file)
@@ -44,6 +44,11 @@ _PROTOTYPE( void trp, (void) );
 _PROTOTYPE( void s_call, (void) ), _PROTOTYPE( p_s_call, (void) ); 
 _PROTOTYPE( void level0_call, (void) );
 
+/* exception.c */
+_PROTOTYPE( void exception, (unsigned vec_nr, u32_t trap_errno,
+       u32_t old_eip, U16_t old_cs, u32_t old_eflags)                  );
+_PROTOTYPE( void stacktrace, (struct proc *proc)                       );
+
 /* klib386.s */
 _PROTOTYPE( void level0, (void (*func)(void))                           );
 _PROTOTYPE( void monitor, (void)                                        );