1 #ifndef __XFS_SUPPORT_KGDB_H__
2 #define __XFS_SUPPORT_KGDB_H__
4 #define KDB_ARGCOUNT EINVAL
11 #define MODULE_AUTHOR(s) static char __module_author[] = s;
12 #define MODULE_DESCRIPTION(s) static char __module_description[] = s;
13 #define MODULE_LICENSE(s) static char __module_license[] = s
16 typedef int (*kdb_func_t)(int, const char **, const char **, struct pt_regs *);
17 typedef register_t kdb_machreg_t;
20 * Symbol table format.
22 typedef struct __ksymtab {
23 unsigned long value; /* Address of symbol */
24 const char *sym_name; /* Full symbol name, including any version */
25 unsigned long sym_start;
26 unsigned long sym_end;
29 extern int kdb_register(char *, kdb_func_t, char *, char *, short);
30 extern int kdb_unregister(char *);
32 extern int kdbgetaddrarg(int, const char**, int*, kdb_machreg_t *,
33 long *, char **, struct pt_regs *);
34 extern int kdbnearsym(unsigned long, kdb_symtab_t *);
35 extern void kdb_printf(const char *,...)
36 __attribute__ ((format (printf, 1, 2)));
38 extern int kdb_getarea_size(void *, unsigned long, size_t);
39 extern int kdb_putarea_size(unsigned long, void *, size_t);
41 #define kdb_getarea(x,addr) kdb_getarea_size(&(x), addr, sizeof((x)))
42 #define kdb_putarea(addr,x) kdb_putarea_size(addr, &(x), sizeof((x)))
44 #endif /* __XFS_SUPPORT_KGDB_H__ */