xref: /freebsd/sys/compat/linuxkpi/common/include/linux/kmsg_dump.h (revision f5d0b30e4af1163bdc18a893b17236517b67790a)
1 /*
2  * SPDX-License-Identifier: BSD-2-Clause
3  *
4  * Copyright (c) 2025-2026 The FreeBSD Foundation
5  * Copyright (c) 2025-2026 Jean-Sébastien Pédron <dumbbell@FreeBSD.org>
6  *
7  * This software was developed by Jean-Sébastien Pédron under sponsorship
8  * from the FreeBSD Foundation.
9  */
10 
11 #ifndef _LINUXKPI_LINUX_KMSG_DUMP_H_
12 #define	_LINUXKPI_LINUX_KMSG_DUMP_H_
13 
14 #include <linux/errno.h>
15 #include <linux/list.h>
16 
17 #include <linux/kernel.h> /* For pr_debug() */
18 
19 enum kmsg_dump_reason {
20 	KMSG_DUMP_UNDEF,
21 	KMSG_DUMP_PANIC,
22 	KMSG_DUMP_OOPS,
23 	KMSG_DUMP_EMERG,
24 	KMSG_DUMP_SHUTDOWN,
25 	KMSG_DUMP_MAX
26 };
27 
28 struct kmsg_dump_iter {
29 	uint64_t	cur_seq;
30 	uint64_t	next_seq;
31 };
32 
33 struct kmsg_dumper {
34 	struct list_head list;
35 	void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason);
36 	enum kmsg_dump_reason max_reason;
37 	bool registered;
38 };
39 
40 static inline void
41 kmsg_dump(enum kmsg_dump_reason reason)
42 {
43 	pr_debug("TODO");
44 }
45 
46 static inline bool
47 kmsg_dump_get_line(struct kmsg_dump_iter *iter, bool syslog,
48     const char *line, size_t size, size_t *len)
49 {
50 	pr_debug("TODO");
51 
52 	return (false);
53 }
54 
55 static inline bool
56 kmsg_dump_get_buffer(struct kmsg_dump_iter *iter, bool syslog,
57     char *buf, size_t size, size_t *len)
58 {
59 	pr_debug("TODO");
60 
61 	return (false);
62 }
63 
64 static inline void
65 kmsg_dump_rewind(struct kmsg_dump_iter *iter)
66 {
67 	pr_debug("TODO");
68 }
69 
70 static inline int
71 kmsg_dump_register(struct kmsg_dumper *dumper)
72 {
73 	pr_debug("TODO");
74 
75 	return (-EINVAL);
76 }
77 
78 static inline int
79 kmsg_dump_unregister(struct kmsg_dumper *dumper)
80 {
81 	pr_debug("TODO");
82 
83 	return (-EINVAL);
84 }
85 
86 static inline const char *
87 kmsg_dump_reason_str(enum kmsg_dump_reason reason)
88 {
89 	pr_debug("TODO");
90 
91 	return ("Unknown");
92 }
93 #endif
94