]>
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 | ||
15 | #include <linux/list.h> | |
16 | ||
17 | enum kmsg_dump_reason { | |
18 | KMSG_DUMP_OOPS, | |
19 | KMSG_DUMP_PANIC, | |
0f4bd46e | 20 | KMSG_DUMP_KEXEC, |
456b565c SK |
21 | }; |
22 | ||
23 | /** | |
24 | * struct kmsg_dumper - kernel crash message dumper structure | |
25 | * @dump: The callback which gets called on crashes. The buffer is passed | |
26 | * as two sections, where s1 (length l1) contains the older | |
27 | * messages and s2 (length l2) contains the newer. | |
28 | * @list: Entry in the dumper list (private) | |
29 | * @registered: Flag that specifies if this is already registered | |
30 | */ | |
31 | struct kmsg_dumper { | |
32 | void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason, | |
33 | const char *s1, unsigned long l1, | |
34 | const char *s2, unsigned long l2); | |
35 | struct list_head list; | |
36 | int registered; | |
37 | }; | |
38 | ||
595dd3d8 | 39 | #ifdef CONFIG_PRINTK |
456b565c SK |
40 | void kmsg_dump(enum kmsg_dump_reason reason); |
41 | ||
42 | int kmsg_dump_register(struct kmsg_dumper *dumper); | |
43 | ||
44 | int kmsg_dump_unregister(struct kmsg_dumper *dumper); | |
595dd3d8 RD |
45 | #else |
46 | static inline void kmsg_dump(enum kmsg_dump_reason reason) | |
47 | { | |
48 | } | |
49 | ||
50 | static inline int kmsg_dump_register(struct kmsg_dumper *dumper) | |
51 | { | |
52 | return -EINVAL; | |
53 | } | |
54 | ||
55 | static inline int kmsg_dump_unregister(struct kmsg_dumper *dumper) | |
56 | { | |
57 | return -EINVAL; | |
58 | } | |
59 | #endif | |
456b565c SK |
60 | |
61 | #endif /* _LINUX_KMSG_DUMP_H */ |