]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - sys/gnu/fs/xfs/FreeBSD/support/kdb.h
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / sys / gnu / fs / xfs / FreeBSD / support / kdb.h
1 #ifndef __XFS_SUPPORT_KGDB_H__
2 #define __XFS_SUPPORT_KGDB_H__
3
4 #define KDB_ARGCOUNT    EINVAL
5
6 struct 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
16 typedef int (*kdb_func_t)(int, const char **, const char **, struct pt_regs *);
17 typedef register_t kdb_machreg_t;
18
19 /*
20  * Symbol table format.
21  */
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;
27 } kdb_symtab_t;
28
29 extern int      kdb_register(char *, kdb_func_t, char *, char *, short);
30 extern int      kdb_unregister(char *);
31
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)));
37
38 extern int      kdb_getarea_size(void *, unsigned long, size_t);
39 extern 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__ */