#ifndef _KDB_H
#define _KDB_H
#include <linux/list.h>
#define KDB_ENABLE_NO_ARGS_SHIFT …
kdb_cmdflags_t;
kdb_func_t;
kdbtab_t;
#ifdef CONFIG_KGDB_KDB
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/atomic.h>
#define KDB_POLL_FUNC_MAX …
extern int kdb_poll_idx;
extern int kdb_initial_cpu;
#define KDB_MAXARGS …
#define KDB_NOTFOUND …
#define KDB_ARGCOUNT …
#define KDB_BADWIDTH …
#define KDB_BADRADIX …
#define KDB_NOTENV …
#define KDB_NOENVVALUE …
#define KDB_NOTIMP …
#define KDB_ENVFULL …
#define KDB_ENVBUFFULL …
#define KDB_TOOMANYBPT …
#define KDB_TOOMANYDBREGS …
#define KDB_DUPBPT …
#define KDB_BPTNOTFOUND …
#define KDB_BADMODE …
#define KDB_BADINT …
#define KDB_INVADDRFMT …
#define KDB_BADREG …
#define KDB_BADCPUNUM …
#define KDB_BADLENGTH …
#define KDB_NOBP …
#define KDB_BADADDR …
#define KDB_NOPERM …
extern const char *kdb_diemsg;
#define KDB_FLAG_EARLYKDB …
#define KDB_FLAG_CATASTROPHIC …
#define KDB_FLAG_CMD_INTERRUPT …
#define KDB_FLAG_NOIPI …
#define KDB_FLAG_NO_CONSOLE …
#define KDB_FLAG_NO_VT_CONSOLE …
#define KDB_FLAG_NO_I8042 …
extern unsigned int kdb_flags;
extern void kdb_save_flags(void);
extern void kdb_restore_flags(void);
#define KDB_FLAG(flag) …
#define KDB_FLAG_SET(flag) …
#define KDB_FLAG_CLEAR(flag) …
kdb_reason_t;
enum kdb_msgsrc { … };
extern int kdb_trap_printk;
extern int kdb_printf_cpu;
extern __printf(2, 0) int vkdb_printf(enum kdb_msgsrc src, const char *fmt,
va_list args);
extern __printf(1, 2) int kdb_printf(const char *, ...);
kdb_printf_t;
extern void kdb_init(int level);
get_char_func;
extern get_char_func kdb_poll_funcs[];
extern int kdb_get_kbd_char(void);
static inline
int kdb_process_cpu(const struct task_struct *p)
{ … }
extern void kdb_send_sig(struct task_struct *p, int sig);
#ifdef CONFIG_KALLSYMS
extern const char *kdb_walk_kallsyms(loff_t *pos);
#else
static inline const char *kdb_walk_kallsyms(loff_t *pos)
{
return NULL;
}
#endif
extern int kdb_register(kdbtab_t *cmd);
extern void kdb_unregister(kdbtab_t *cmd);
#else
static inline __printf(1, 2) int kdb_printf(const char *fmt, ...) { return 0; }
static inline void kdb_init(int level) {}
static inline int kdb_register(kdbtab_t *cmd) { return 0; }
static inline void kdb_unregister(kdbtab_t *cmd) {}
#endif
enum { … };
extern int kdbgetintenv(const char *, int *);
extern int kdb_set(int, const char **);
int kdb_lsmod(int argc, const char **argv);
#endif