xref: /optee_os/core/include/kernel/unwind.h (revision 630298669abaf4d5fb810b2a7d7c4e7cd43ddb25)
1*63029866SMarouene Boubakri /* SPDX-License-Identifier: BSD-2-Clause */
2*63029866SMarouene Boubakri /*-
3*63029866SMarouene Boubakri  * Copyright (c) 2015-2019 Linaro Limited
4*63029866SMarouene Boubakri  * Copyright (c) 2020, Huawei Technologies Co., Ltd
5*63029866SMarouene Boubakri  */
6*63029866SMarouene Boubakri 
7*63029866SMarouene Boubakri #ifndef KERNEL_UNWIND
8*63029866SMarouene Boubakri #define KERNEL_UNWIND
9*63029866SMarouene Boubakri 
10*63029866SMarouene Boubakri #include <types_ext.h>
11*63029866SMarouene Boubakri 
12*63029866SMarouene Boubakri #if defined(CFG_UNWIND) && (TRACE_LEVEL > 0)
13*63029866SMarouene Boubakri void print_kernel_stack(void);
14*63029866SMarouene Boubakri #else
15*63029866SMarouene Boubakri static inline void print_kernel_stack(void)
16*63029866SMarouene Boubakri {
17*63029866SMarouene Boubakri }
18*63029866SMarouene Boubakri #endif
19*63029866SMarouene Boubakri 
20*63029866SMarouene Boubakri #ifdef CFG_UNWIND
21*63029866SMarouene Boubakri /* Get current call stack as an array allocated on the heap */
22*63029866SMarouene Boubakri vaddr_t *unw_get_kernel_stack(void);
23*63029866SMarouene Boubakri #else
24*63029866SMarouene Boubakri static inline void *unw_get_kernel_stack(void)
25*63029866SMarouene Boubakri {
26*63029866SMarouene Boubakri 	return NULL;
27*63029866SMarouene Boubakri }
28*63029866SMarouene Boubakri #endif /* CFG_UNWIND  */
29*63029866SMarouene Boubakri 
30*63029866SMarouene Boubakri #endif /*KERNEL_UNWIND*/
31