hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/include/linux/kmsg_dump.h
....@@ -30,18 +30,6 @@
3030 };
3131
3232 /**
33
- * struct kmsg_dumper_iter - iterator for kernel crash message dumper
34
- * @active: Flag that specifies if this is currently dumping
35
- * @cur_seq: Points to the oldest message to dump (private)
36
- * @next_seq: Points after the newest message to dump (private)
37
- */
38
-struct kmsg_dumper_iter {
39
- bool active;
40
- u64 cur_seq;
41
- u64 next_seq;
42
-};
43
-
44
-/**
4533 * struct kmsg_dumper - kernel crash message dumper structure
4634 * @list: Entry in the dumper list (private)
4735 * @dump: Call into dumping code which will retrieve the data with
....@@ -51,22 +39,33 @@
5139 */
5240 struct kmsg_dumper {
5341 struct list_head list;
54
- void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason,
55
- struct kmsg_dumper_iter *iter);
42
+ void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason);
5643 enum kmsg_dump_reason max_reason;
44
+ bool active;
5745 bool registered;
46
+
47
+ /* private state of the kmsg iterator */
48
+ u32 cur_idx;
49
+ u32 next_idx;
50
+ u64 cur_seq;
51
+ u64 next_seq;
5852 };
5953
6054 #ifdef CONFIG_PRINTK
6155 void kmsg_dump(enum kmsg_dump_reason reason);
6256
63
-bool kmsg_dump_get_line(struct kmsg_dumper_iter *iter, bool syslog,
57
+bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog,
58
+ char *line, size_t size, size_t *len);
59
+
60
+bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog,
6461 char *line, size_t size, size_t *len);
6562
66
-bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog,
67
- char *buf, size_t size, size_t *len_out);
63
+bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog,
64
+ char *buf, size_t size, size_t *len);
6865
69
-void kmsg_dump_rewind(struct kmsg_dumper_iter *iter);
66
+void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper);
67
+
68
+void kmsg_dump_rewind(struct kmsg_dumper *dumper);
7069
7170 int kmsg_dump_register(struct kmsg_dumper *dumper);
7271
....@@ -78,19 +77,30 @@
7877 {
7978 }
8079
81
-static inline bool kmsg_dump_get_line(struct kmsg_dumper_iter *iter, bool syslog,
80
+static inline bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper,
81
+ bool syslog, const char *line,
82
+ size_t size, size_t *len)
83
+{
84
+ return false;
85
+}
86
+
87
+static inline bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog,
8288 const char *line, size_t size, size_t *len)
8389 {
8490 return false;
8591 }
8692
87
-static inline bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog,
93
+static inline bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog,
8894 char *buf, size_t size, size_t *len)
8995 {
9096 return false;
9197 }
9298
93
-static inline void kmsg_dump_rewind(struct kmsg_dumper_iter *iter)
99
+static inline void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper)
100
+{
101
+}
102
+
103
+static inline void kmsg_dump_rewind(struct kmsg_dumper *dumper)
94104 {
95105 }
96106