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