13d0407baSopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
23d0407baSopenharmony_ci/*
33d0407baSopenharmony_ci * Copyright (c) 2021, The Linux Foundation. All rights reserved.
43d0407baSopenharmony_ci */
53d0407baSopenharmony_ci
63d0407baSopenharmony_ci#ifndef _ANDROID_DEBUG_SYMBOLS_H
73d0407baSopenharmony_ci#define _ANDROID_DEBUG_SYMBOLS_H
83d0407baSopenharmony_ci
93d0407baSopenharmony_cienum android_debug_symbol {
103d0407baSopenharmony_ci	ADS_SDATA = 0,
113d0407baSopenharmony_ci	ADS_BSS_END,
123d0407baSopenharmony_ci	ADS_PER_CPU_START,
133d0407baSopenharmony_ci	ADS_PER_CPU_END,
143d0407baSopenharmony_ci	ADS_START_RO_AFTER_INIT,
153d0407baSopenharmony_ci	ADS_END_RO_AFTER_INIT,
163d0407baSopenharmony_ci	ADS_LINUX_BANNER,
173d0407baSopenharmony_ci#ifdef CONFIG_CMA
183d0407baSopenharmony_ci	ADS_TOTAL_CMA,
193d0407baSopenharmony_ci#endif
203d0407baSopenharmony_ci	ADS_SLAB_CACHES,
213d0407baSopenharmony_ci	ADS_SLAB_MUTEX,
223d0407baSopenharmony_ci	ADS_MIN_LOW_PFN,
233d0407baSopenharmony_ci	ADS_MAX_PFN,
243d0407baSopenharmony_ci#ifdef CONFIG_PAGE_OWNER
253d0407baSopenharmony_ci	ADS_PAGE_OWNER_ENABLED,
263d0407baSopenharmony_ci#endif
273d0407baSopenharmony_ci#ifdef CONFIG_SLUB_DEBUG
283d0407baSopenharmony_ci	ADS_SLUB_DEBUG,
293d0407baSopenharmony_ci#endif
303d0407baSopenharmony_ci#ifdef CONFIG_SWAP
313d0407baSopenharmony_ci	ADS_NR_SWAP_PAGES,
323d0407baSopenharmony_ci#endif
333d0407baSopenharmony_ci#ifdef CONFIG_MMU
343d0407baSopenharmony_ci	ADS_MMAP_MIN_ADDR,
353d0407baSopenharmony_ci#endif
363d0407baSopenharmony_ci	ADS_STACK_GUARD_GAP,
373d0407baSopenharmony_ci#ifdef CONFIG_SYSCTL
383d0407baSopenharmony_ci	ADS_SYSCTL_LEGACY_VA_LAYOUT,
393d0407baSopenharmony_ci#endif
403d0407baSopenharmony_ci	ADS_END
413d0407baSopenharmony_ci};
423d0407baSopenharmony_ci
433d0407baSopenharmony_cienum android_debug_per_cpu_symbol {
443d0407baSopenharmony_ci	ADS_IRQ_STACK_PTR = 0,
453d0407baSopenharmony_ci	ADS_DEBUG_PER_CPU_END
463d0407baSopenharmony_ci};
473d0407baSopenharmony_ci
483d0407baSopenharmony_ci#ifdef CONFIG_ANDROID_DEBUG_SYMBOLS
493d0407baSopenharmony_ci
503d0407baSopenharmony_civoid *android_debug_symbol(enum android_debug_symbol symbol);
513d0407baSopenharmony_civoid *android_debug_per_cpu_symbol(enum android_debug_per_cpu_symbol symbol);
523d0407baSopenharmony_ci
533d0407baSopenharmony_civoid android_debug_for_each_module(int (*fn)(const char *mod_name, void *mod_addr, void *data),
543d0407baSopenharmony_ci	void *data);
553d0407baSopenharmony_ci
563d0407baSopenharmony_ci#else /* !CONFIG_ANDROID_DEBUG_SYMBOLS */
573d0407baSopenharmony_ci
583d0407baSopenharmony_cistatic inline void *android_debug_symbol(enum android_debug_symbol symbol)
593d0407baSopenharmony_ci{
603d0407baSopenharmony_ci	return NULL;
613d0407baSopenharmony_ci}
623d0407baSopenharmony_cistatic inline void *android_debug_per_cpu_symbol(enum android_debug_per_cpu_symbol symbol)
633d0407baSopenharmony_ci{
643d0407baSopenharmony_ci	return NULL;
653d0407baSopenharmony_ci}
663d0407baSopenharmony_ci
673d0407baSopenharmony_cistatic inline void android_debug_for_each_module(int (*fn)(const char *mod_name, void *mod_addr,
683d0407baSopenharmony_ci	void *data), void *data) {}
693d0407baSopenharmony_ci#endif /* CONFIG_ANDROID_DEBUG_SYMBOLS */
703d0407baSopenharmony_ci
713d0407baSopenharmony_ci#endif /* _ANDROID_DEBUG_SYMBOLS_H */
72