#ifndef _DDB_DB_INTERFACE_H_
#define _DDB_DB_INTERFACE_H_
db_addr_t db_disasm(db_addr_t, bool);
void db_stack_trace_print(db_expr_t, bool, db_expr_t, const char *,
void (*)(const char *, ...) __printflike(1, 2));
void db_kgdb_cmd(db_expr_t, bool, db_expr_t, const char *);
void db_show_files_cmd(db_expr_t, bool, db_expr_t, const char *);
void db_show_panic(db_expr_t, bool, db_expr_t, const char *);
void db_kill_proc(db_expr_t, bool, db_expr_t, const char *);
void db_show_proc(db_expr_t, bool, db_expr_t, const char *);
void db_show_all_procs(db_expr_t, bool, db_expr_t, const char *);
void db_show_all_pools(db_expr_t, bool, db_expr_t, const char *);
void db_show_sched_qs(db_expr_t, bool, db_expr_t, const char *);
void db_show_callout(db_expr_t, bool, db_expr_t, const char *);
void db_dmesg(db_expr_t, bool, db_expr_t, const char *);
void db_show_routes(db_expr_t, bool, db_expr_t, const char *);
void db_show_aio_jobs(db_expr_t, bool, db_expr_t, const char *);
void db_show_mqueue_cmd(db_expr_t, bool, db_expr_t, const char *);
void db_show_module_cmd(db_expr_t, bool, db_expr_t, const char *);
void db_show_all_vmems(db_expr_t, bool, db_expr_t, const char *);
void db_show_all_devices(db_expr_t, bool, db_expr_t, const char *);
void db_show_all_device(db_expr_t, bool, db_expr_t, const char *);
void db_show_disk(db_expr_t, bool, db_expr_t, const char *);
void db_show_sleepq(db_expr_t, bool, db_expr_t, const char *);
void db_show_condvar(db_expr_t, bool, db_expr_t, const char *);
void db_show_selinfo(db_expr_t, bool, db_expr_t, const char *);
#ifndef __HAVE_DB_STACK_TRACE_PRINT_RA
#define db_stack_trace_print_ra(ra, have_ra, addr, have_addr, c, m, pr) \
((void)(ra), (void)(have_ra), \
db_stack_trace_print(addr, have_addr, c, m, pr))
#endif
#ifndef db_stacktrace_print
#define db_stacktrace_print(prfunc) \
db_stack_trace_print_ra( \
(db_expr_t)(intptr_t)__builtin_return_address(0), true, \
(db_expr_t)(intptr_t)__builtin_frame_address(0), true, \
65535, "", prfunc)
#endif
#define db_stacktrace() db_stacktrace_print(printf);
#define db_ustacktrace() db_stacktrace_print(uprintf);
#include <sys/syslog.h>
#ifdef _KERNEL
static __inline__ void
_db_log_wrapper(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
vlog(LOG_INFO, fmt, ap);
va_end(ap);
}
#define db_lstacktrace() db_stacktrace_print(_db_log_wrapper);
#endif
#endif