1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3 * Copyright (c) 2021, The Linux Foundation. All rights reserved.
4 */
5
6 #ifndef _ANDROID_DEBUG_SYMBOLS_H
7 #define _ANDROID_DEBUG_SYMBOLS_H
8
9 enum android_debug_symbol {
10 ADS_SDATA = 0,
11 ADS_BSS_END,
12 ADS_PER_CPU_START,
13 ADS_PER_CPU_END,
14 ADS_START_RO_AFTER_INIT,
15 ADS_END_RO_AFTER_INIT,
16 ADS_LINUX_BANNER,
17 #ifdef CONFIG_CMA
18 ADS_TOTAL_CMA,
19 #endif
20 ADS_SLAB_CACHES,
21 ADS_SLAB_MUTEX,
22 ADS_MIN_LOW_PFN,
23 ADS_MAX_PFN,
24 #ifdef CONFIG_PAGE_OWNER
25 ADS_PAGE_OWNER_ENABLED,
26 #endif
27 #ifdef CONFIG_SLUB_DEBUG
28 ADS_SLUB_DEBUG,
29 #endif
30 #ifdef CONFIG_SWAP
31 ADS_NR_SWAP_PAGES,
32 #endif
33 #ifdef CONFIG_MMU
34 ADS_MMAP_MIN_ADDR,
35 #endif
36 ADS_STACK_GUARD_GAP,
37 #ifdef CONFIG_SYSCTL
38 ADS_SYSCTL_LEGACY_VA_LAYOUT,
39 #endif
40 ADS_END
41 };
42
43 enum android_debug_per_cpu_symbol {
44 ADS_IRQ_STACK_PTR = 0,
45 ADS_DEBUG_PER_CPU_END
46 };
47
48 #ifdef CONFIG_ANDROID_DEBUG_SYMBOLS
49
50 void *android_debug_symbol(enum android_debug_symbol symbol);
51 void *android_debug_per_cpu_symbol(enum android_debug_per_cpu_symbol symbol);
52
53 void android_debug_for_each_module(int (*fn)(const char *mod_name, void *mod_addr, void *data),
54 void *data);
55
56 #else /* !CONFIG_ANDROID_DEBUG_SYMBOLS */
57
android_debug_symbol(enum android_debug_symbol symbol)58 static inline void *android_debug_symbol(enum android_debug_symbol symbol)
59 {
60 return NULL;
61 }
android_debug_per_cpu_symbol(enum android_debug_per_cpu_symbol symbol)62 static inline void *android_debug_per_cpu_symbol(enum android_debug_per_cpu_symbol symbol)
63 {
64 return NULL;
65 }
66
android_debug_for_each_module(int (* fn)(const char * mod_name,void * mod_addr,void * data),void * data)67 static inline void android_debug_for_each_module(int (*fn)(const char *mod_name, void *mod_addr,
68 void *data), void *data) {}
69 #endif /* CONFIG_ANDROID_DEBUG_SYMBOLS */
70
71 #endif /* _ANDROID_DEBUG_SYMBOLS_H */
72