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