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