Make hexdump only print the # bytes; add pahexdump; make syscall_table visible
[akaros.git] / kern / include / kdebug.h
1 #ifndef ROS_KERN_KDEBUG_H
2 #define ROS_KERN_KDEBUG_H
3
4 #include <ros/common.h>
5 #include <arch/kdebug.h>
6
7 struct symtab_entry {
8         char *name;
9         uintptr_t addr;
10 };
11
12 void backtrace(void);
13 void backtrace_frame(uintptr_t pc, uintptr_t fp);
14
15 /* Arch dependent, listed here for ease-of-use */
16 static inline uintptr_t get_caller_pc(void);
17
18 /* Returns a null-terminated string with the function name for a given PC /
19  * instruction pointer.  kfree() the result. */
20 char *get_fn_name(uintptr_t pc);
21
22 /* Returns the address of sym, or 0 if it does not exist */
23 uintptr_t get_symbol_addr(char *sym);
24
25 /* For a poor-mans function tracer (can add these with spatch) */
26 void __print_func_entry(const char *func, const char *file);
27 void __print_func_exit(const char *func, const char *file);
28 #define print_func_entry() __print_func_entry(__FUNCTION__, __FILE__)
29 #define print_func_exit() __print_func_exit(__FUNCTION__, __FILE__)
30 void hexdump(void *v, int length);
31 void pahexdump(uintptr_t pa, int length);
32 #endif /* ROS_KERN_KDEBUG_H */