1#ifndef __XFS_SUPPORT_KGDB_H__ 2#define __XFS_SUPPORT_KGDB_H__ 3 4#define KDB_ARGCOUNT EINVAL 5 6struct pt_regs 7{ 8 int dummy; 9}; 10 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 14 15 16typedef int (*kdb_func_t)(int, const char **, const char **, struct pt_regs *); 17typedef register_t kdb_machreg_t; 18 19/* 20 * Symbol table format. 21 */ 22typedef 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; 27} kdb_symtab_t; 28 29extern int kdb_register(char *, kdb_func_t, char *, char *, short); 30extern int kdb_unregister(char *); 31 32extern int kdbgetaddrarg(int, const char**, int*, kdb_machreg_t *, 33 long *, char **, struct pt_regs *); 34extern int kdbnearsym(unsigned long, kdb_symtab_t *); 35extern void kdb_printf(const char *,...) 36 __attribute__ ((format (printf, 1, 2))); 37 38extern int kdb_getarea_size(void *, unsigned long, size_t); 39extern int kdb_putarea_size(unsigned long, void *, size_t); 40 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))) 43 44#endif /* __XFS_SUPPORT_KGDB_H__ */ 45