Moves backtrace_kframe()
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 21 May 2015 20:08:58 +0000 (16:08 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 4 Jun 2015 13:40:32 +0000 (09:40 -0400)
It wasn't arch-dependent, so no need to keep it in x86.

kern/arch/x86/trap.c
kern/include/kdebug.h
kern/src/kdebug.c

index 243f0f0..52c409f 100644 (file)
@@ -213,15 +213,6 @@ static void handle_fperr(struct hw_trapframe *hw_tf)
        proc_destroy(current);
 }
 
-void backtrace_kframe(struct hw_trapframe *hw_tf)
-{
-       struct per_cpu_info *pcpui = &per_cpu_info[core_id()];
-       pcpui->__lock_checking_enabled--;
-       printk("\nBacktrace of faulting kernel context on Core %d:\n", core_id());
-       backtrace_frame(get_hwtf_pc(hw_tf), get_hwtf_fp(hw_tf));
-       pcpui->__lock_checking_enabled++;
-}
-
 static bool __handle_page_fault(struct hw_trapframe *hw_tf, unsigned long *aux)
 {
        uintptr_t fault_va = rcr2();
index 49d2021..3bd290c 100644 (file)
@@ -2,6 +2,7 @@
 #define ROS_KERN_KDEBUG_H
 
 #include <ros/common.h>
+#include <ros/trapframe.h>
 #include <arch/kdebug.h>
 
 struct symtab_entry {
@@ -13,6 +14,7 @@ void backtrace(void);
 void backtrace_frame(uintptr_t pc, uintptr_t fp);
 size_t backtrace_list(uintptr_t pc, uintptr_t fp, uintptr_t *pcs,
                       size_t nr_slots);
+void backtrace_kframe(struct hw_trapframe *hw_tf);
 
 /* Arch dependent, listed here for ease-of-use */
 static inline uintptr_t get_caller_pc(void);
index 5890731..9b24ccd 100644 (file)
@@ -201,3 +201,12 @@ void debug_addr_pid(int pid, unsigned long addr)
        debug_addr_proc(p, addr);
        proc_decref(p);
 }
+
+void backtrace_kframe(struct hw_trapframe *hw_tf)
+{
+       struct per_cpu_info *pcpui = &per_cpu_info[core_id()];
+       pcpui->__lock_checking_enabled--;
+       printk("\nBacktrace of kernel context on Core %d:\n", core_id());
+       backtrace_frame(get_hwtf_pc(hw_tf), get_hwtf_fp(hw_tf));
+       pcpui->__lock_checking_enabled++;
+}