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 ADS_VMALLOC_NR_PAGES,
25 ADS_PCPU_NR_PAGES,
26 #ifdef CONFIG_PAGE_OWNER
27 ADS_PAGE_OWNER_ENABLED,
28 #endif
29 #ifdef CONFIG_SLUB_DEBUG
30 ADS_SLUB_DEBUG,
31 #endif
32 #ifdef CONFIG_SWAP
33 ADS_NR_SWAP_PAGES,
34 #endif
35 #ifdef CONFIG_MMU
36 ADS_MMAP_MIN_ADDR,
37 #endif
38 ADS_STACK_GUARD_GAP,
39 #ifdef CONFIG_SYSCTL
40 ADS_SYSCTL_LEGACY_VA_LAYOUT,
41 #endif
42 ADS_SHOW_MEM,
43 ADS_END
44 };
45
46 enum android_debug_per_cpu_symbol {
47 ADS_IRQ_STACK_PTR = 0,
48 ADS_DEBUG_PER_CPU_END
49 };
50
51 #ifdef CONFIG_ANDROID_DEBUG_SYMBOLS
52
53 void *android_debug_symbol(enum android_debug_symbol symbol);
54 void *android_debug_per_cpu_symbol(enum android_debug_per_cpu_symbol symbol);
55
56 void android_debug_for_each_module(int (*fn)(const char *mod_name, void *mod_addr, void *data),
57 void *data);
58
59 #else /* !CONFIG_ANDROID_DEBUG_SYMBOLS */
60
android_debug_symbol(enum android_debug_symbol symbol)61 static inline void *android_debug_symbol(enum android_debug_symbol symbol)
62 {
63 return NULL;
64 }
android_debug_per_cpu_symbol(enum android_debug_per_cpu_symbol symbol)65 static inline void *android_debug_per_cpu_symbol(enum android_debug_per_cpu_symbol symbol)
66 {
67 return NULL;
68 }
69
android_debug_for_each_module(int (* fn)(const char * mod_name,void * mod_addr,void * data),void * data)70 static inline void android_debug_for_each_module(int (*fn)(const char *mod_name, void *mod_addr,
71 void *data), void *data) {}
72 #endif /* CONFIG_ANDROID_DEBUG_SYMBOLS */
73
74 #endif /* _ANDROID_DEBUG_SYMBOLS_H */
75