# Copyright (c) 2024 Meta Platforms
# Copyright 2026 Arm Limited and/or its affiliates <open-source-office@arm.com>
#
# SPDX-License-Identifier: Apache-2.0

config PROFILING_PERF_HAS_BACKEND
	bool
	help
	  Selected when there's an implementation for
	  `arch_perf_current_stack_trace()`

config PROFILING_PERF_BACKEND_RISCV
	bool
	default y
	depends on RISCV
	depends on ARCH_STACKWALK
	select PROFILING_PERF_HAS_BACKEND

config PROFILING_PERF_BACKEND_ARM_CORTEX_M
	bool
	default y
	depends on CPU_CORTEX_M
	depends on CORTEX_M_SYSTICK
	depends on THREAD_STACK_INFO
	depends on ARCH_STACKWALK
	depends on !TRUSTED_EXECUTION_NONSECURE
	depends on !SMP
	select PROFILING_PERF_HAS_BACKEND

config PROFILING_PERF_BACKEND_X86
	bool
	default y
	depends on X86 && !X86_64
	depends on THREAD_STACK_INFO
	depends on FRAME_POINTER
	select PROFILING_PERF_HAS_BACKEND

config PROFILING_PERF_BACKEND_X86_64
	bool
	default y
	depends on X86_64
	depends on THREAD_STACK_INFO
	depends on FRAME_POINTER
	select PROFILING_PERF_HAS_BACKEND

config PROFILING_PERF_BACKEND_ARM64
	bool
	default y
	depends on ARM64
	depends on ARCH_STACKWALK
	select PROFILING_PERF_HAS_BACKEND
