From f9004dbfff8a3fbbd7e2a88c8a4327c7f2f8e5b2 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Wed, 31 Jan 2024 01:04:47 +0000 Subject: [PATCH] add driver 5G --- kernel/include/linux/kmsg_dump.h | 52 +++++++++++++++++++++++++++++++--------------------- 1 files changed, 31 insertions(+), 21 deletions(-) diff --git a/kernel/include/linux/kmsg_dump.h b/kernel/include/linux/kmsg_dump.h index 8667393..3378bcb 100644 --- a/kernel/include/linux/kmsg_dump.h +++ b/kernel/include/linux/kmsg_dump.h @@ -30,18 +30,6 @@ }; /** - * struct kmsg_dumper_iter - iterator for kernel crash message dumper - * @active: Flag that specifies if this is currently dumping - * @cur_seq: Points to the oldest message to dump (private) - * @next_seq: Points after the newest message to dump (private) - */ -struct kmsg_dumper_iter { - bool active; - u64 cur_seq; - u64 next_seq; -}; - -/** * struct kmsg_dumper - kernel crash message dumper structure * @list: Entry in the dumper list (private) * @dump: Call into dumping code which will retrieve the data with @@ -51,22 +39,33 @@ */ struct kmsg_dumper { struct list_head list; - void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason, - struct kmsg_dumper_iter *iter); + void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason); enum kmsg_dump_reason max_reason; + bool active; bool registered; + + /* private state of the kmsg iterator */ + u32 cur_idx; + u32 next_idx; + u64 cur_seq; + u64 next_seq; }; #ifdef CONFIG_PRINTK void kmsg_dump(enum kmsg_dump_reason reason); -bool kmsg_dump_get_line(struct kmsg_dumper_iter *iter, bool syslog, +bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, + char *line, size_t size, size_t *len); + +bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog, char *line, size_t size, size_t *len); -bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, - char *buf, size_t size, size_t *len_out); +bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, + char *buf, size_t size, size_t *len); -void kmsg_dump_rewind(struct kmsg_dumper_iter *iter); +void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper); + +void kmsg_dump_rewind(struct kmsg_dumper *dumper); int kmsg_dump_register(struct kmsg_dumper *dumper); @@ -78,19 +77,30 @@ { } -static inline bool kmsg_dump_get_line(struct kmsg_dumper_iter *iter, bool syslog, +static inline bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, + bool syslog, const char *line, + size_t size, size_t *len) +{ + return false; +} + +static inline bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog, const char *line, size_t size, size_t *len) { return false; } -static inline bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, +static inline bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, char *buf, size_t size, size_t *len) { return false; } -static inline void kmsg_dump_rewind(struct kmsg_dumper_iter *iter) +static inline void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper) +{ +} + +static inline void kmsg_dump_rewind(struct kmsg_dumper *dumper) { } -- Gitblit v1.6.2