1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef __PSTORE_INTERNAL_H__ |
3 | #define __PSTORE_INTERNAL_H__ |
4 | |
5 | #include <linux/types.h> |
6 | #include <linux/time.h> |
7 | #include <linux/pstore.h> |
8 | |
9 | extern unsigned long kmsg_bytes; |
10 | |
11 | #ifdef CONFIG_PSTORE_FTRACE |
12 | extern void pstore_register_ftrace(void); |
13 | extern void pstore_unregister_ftrace(void); |
14 | ssize_t pstore_ftrace_combine_log(char **dest_log, size_t *dest_log_size, |
15 | const char *src_log, size_t src_log_size); |
16 | #else |
17 | static inline void pstore_register_ftrace(void) {} |
18 | static inline void pstore_unregister_ftrace(void) {} |
19 | static inline ssize_t |
20 | pstore_ftrace_combine_log(char **dest_log, size_t *dest_log_size, |
21 | const char *src_log, size_t src_log_size) |
22 | { |
23 | *dest_log_size = 0; |
24 | return 0; |
25 | } |
26 | #endif |
27 | |
28 | #ifdef CONFIG_PSTORE_PMSG |
29 | extern void pstore_register_pmsg(void); |
30 | extern void pstore_unregister_pmsg(void); |
31 | #else |
32 | static inline void pstore_register_pmsg(void) {} |
33 | static inline void pstore_unregister_pmsg(void) {} |
34 | #endif |
35 | |
36 | extern struct pstore_info *psinfo; |
37 | |
38 | extern void pstore_set_kmsg_bytes(int); |
39 | extern void pstore_get_records(int); |
40 | extern void pstore_get_backend_records(struct pstore_info *psi, |
41 | struct dentry *root, int quiet); |
42 | extern int pstore_put_backend_records(struct pstore_info *psi); |
43 | extern int pstore_mkfile(struct dentry *root, |
44 | struct pstore_record *record); |
45 | extern void pstore_record_init(struct pstore_record *record, |
46 | struct pstore_info *psi); |
47 | |
48 | /* Called during pstore init/exit. */ |
49 | int __init pstore_init_fs(void); |
50 | void __exit pstore_exit_fs(void); |
51 | |
52 | #endif |
53 | |