#ifndef ROS_KERN_KDEBUG_H
#define ROS_KERN_KDEBUG_H

#include <ros/common.h>
#include <arch/kdebug.h>

struct symtab_entry {
	char *name;
	uintptr_t addr;
};

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);

/* Arch dependent, listed here for ease-of-use */
static inline uintptr_t get_caller_pc(void);

/* Returns a null-terminated string with the function name for a given PC /
 * instruction pointer.  kfree() the result. */
char *get_fn_name(uintptr_t pc);

/* Returns the address of sym, or 0 if it does not exist */
uintptr_t get_symbol_addr(char *sym);

/* For a poor-mans function tracer (can add these with spatch) */
void __print_func_entry(const char *func, const char *file);
void __print_func_exit(const char *func, const char *file);
#define print_func_entry() __print_func_entry(__FUNCTION__, __FILE__)
#define print_func_exit() __print_func_exit(__FUNCTION__, __FILE__)
void hexdump(void *v, int length);
void pahexdump(uintptr_t pa, int length);
int printdump(char *buf, int buflen, uint8_t *data);

extern bool printx_on;
void set_printx(int mode);
#define printx(args...) if (printx_on) printk(args)
#define trace_printx(args...) if (printx_on) trace_printk(args)

#include <oprofile.h>
#define TRACEME() oprofile_add_backtrace(read_pc(), read_bp())

void debug_addr_proc(struct proc *p, unsigned long addr);
void debug_addr_pid(int pid, unsigned long addr);

#endif /* ROS_KERN_KDEBUG_H */
