Commit | Line | Data |
---|---|---|
060287b8 AV |
1 | #ifndef __PSTORE_INTERNAL_H__ |
2 | #define __PSTORE_INTERNAL_H__ | |
3 | ||
67a101f5 AV |
4 | #include <linux/types.h> |
5 | #include <linux/time.h> | |
060287b8 AV |
6 | #include <linux/pstore.h> |
7 | ||
8 | #if NR_CPUS <= 2 && defined(CONFIG_ARM_THUMB) | |
9 | #define PSTORE_CPU_IN_IP 0x1 | |
10 | #elif NR_CPUS <= 4 && defined(CONFIG_ARM) | |
11 | #define PSTORE_CPU_IN_IP 0x3 | |
12 | #endif | |
13 | ||
14 | struct pstore_ftrace_record { | |
15 | unsigned long ip; | |
16 | unsigned long parent_ip; | |
17 | #ifndef PSTORE_CPU_IN_IP | |
18 | unsigned int cpu; | |
19 | #endif | |
20 | }; | |
21 | ||
22 | static inline void | |
23 | pstore_ftrace_encode_cpu(struct pstore_ftrace_record *rec, unsigned int cpu) | |
24 | { | |
25 | #ifndef PSTORE_CPU_IN_IP | |
26 | rec->cpu = cpu; | |
27 | #else | |
28 | rec->ip |= cpu; | |
29 | #endif | |
30 | } | |
31 | ||
32 | static inline unsigned int | |
33 | pstore_ftrace_decode_cpu(struct pstore_ftrace_record *rec) | |
34 | { | |
35 | #ifndef PSTORE_CPU_IN_IP | |
36 | return rec->cpu; | |
37 | #else | |
38 | return rec->ip & PSTORE_CPU_IN_IP; | |
39 | #endif | |
40 | } | |
41 | ||
65f8c95e AV |
42 | #ifdef CONFIG_PSTORE_FTRACE |
43 | extern void pstore_register_ftrace(void); | |
44 | #else | |
45 | static inline void pstore_register_ftrace(void) {} | |
46 | #endif | |
47 | ||
9d5438f4 MS |
48 | #ifdef CONFIG_PSTORE_PMSG |
49 | extern void pstore_register_pmsg(void); | |
50 | #else | |
51 | static inline void pstore_register_pmsg(void) {} | |
52 | #endif | |
53 | ||
060287b8 AV |
54 | extern struct pstore_info *psinfo; |
55 | ||
366f7e7a | 56 | extern void pstore_set_kmsg_bytes(int); |
6dda9266 | 57 | extern void pstore_get_records(int); |
ca01d6dd | 58 | extern int pstore_mkfile(enum pstore_type_id, char *psname, u64 id, |
9ad2cbe0 AB |
59 | int count, char *data, bool compressed, |
60 | size_t size, struct timespec time, | |
61 | struct pstore_info *psi); | |
ca01d6dd | 62 | extern int pstore_is_mounted(void); |
060287b8 AV |
63 | |
64 | #endif |