]>
Commit | Line | Data |
---|---|---|
456b565c SK |
1 | /* |
2 | * linux/include/kmsg_dump.h | |
3 | * | |
4 | * Copyright (C) 2009 Net Insight AB | |
5 | * | |
6 | * Author: Simon Kagstrom <simon.kagstrom@netinsight.net> | |
7 | * | |
8 | * This file is subject to the terms and conditions of the GNU General Public | |
9 | * License. See the file COPYING in the main directory of this archive | |
10 | * for more details. | |
11 | */ | |
12 | #ifndef _LINUX_KMSG_DUMP_H | |
13 | #define _LINUX_KMSG_DUMP_H | |
14 | ||
ac562241 | 15 | #include <linux/errno.h> |
456b565c SK |
16 | #include <linux/list.h> |
17 | ||
18 | enum kmsg_dump_reason { | |
19 | KMSG_DUMP_OOPS, | |
20 | KMSG_DUMP_PANIC, | |
04c6862c SA |
21 | KMSG_DUMP_RESTART, |
22 | KMSG_DUMP_HALT, | |
23 | KMSG_DUMP_POWEROFF, | |
24 | KMSG_DUMP_EMERG, | |
456b565c SK |
25 | }; |
26 | ||
27 | /** | |
28 | * struct kmsg_dumper - kernel crash message dumper structure | |
29 | * @dump: The callback which gets called on crashes. The buffer is passed | |
30 | * as two sections, where s1 (length l1) contains the older | |
31 | * messages and s2 (length l2) contains the newer. | |
32 | * @list: Entry in the dumper list (private) | |
33 | * @registered: Flag that specifies if this is already registered | |
34 | */ | |
35 | struct kmsg_dumper { | |
36 | void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason, | |
37 | const char *s1, unsigned long l1, | |
38 | const char *s2, unsigned long l2); | |
39 | struct list_head list; | |
40 | int registered; | |
41 | }; | |
42 | ||
595dd3d8 | 43 | #ifdef CONFIG_PRINTK |
456b565c SK |
44 | void kmsg_dump(enum kmsg_dump_reason reason); |
45 | ||
46 | int kmsg_dump_register(struct kmsg_dumper *dumper); | |
47 | ||
48 | int kmsg_dump_unregister(struct kmsg_dumper *dumper); | |
595dd3d8 RD |
49 | #else |
50 | static inline void kmsg_dump(enum kmsg_dump_reason reason) | |
51 | { | |
52 | } | |
53 | ||
54 | static inline int kmsg_dump_register(struct kmsg_dumper *dumper) | |
55 | { | |
56 | return -EINVAL; | |
57 | } | |
58 | ||
59 | static inline int kmsg_dump_unregister(struct kmsg_dumper *dumper) | |
60 | { | |
61 | return -EINVAL; | |
62 | } | |
63 | #endif | |
456b565c SK |
64 | |
65 | #endif /* _LINUX_KMSG_DUMP_H */ |