diff --git a/lib/processor/CMakeLists.txt b/lib/processor/CMakeLists.txt index 90200ff7..2db10638 100644 --- a/lib/processor/CMakeLists.txt +++ b/lib/processor/CMakeLists.txt @@ -5,10 +5,13 @@ else() collect (PROJECT_LIB_HEADERS generic/cpu.h) endif() +if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_PROCESSOR}/cpu.c") + collect (PROJECT_LIB_SOURCES ${PROJECT_PROCESSOR}/cpu.c) +endif() + if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_PROCESSOR}/atomic.h") collect (PROJECT_LIB_HEADERS ${PROJECT_PROCESSOR}/atomic.h) set(HAVE_PROCESSOR_ATOMIC_H 1 CACHE INTERNAL "Have include ${PROJECT_PROCESSOR}/atomic.h") else() collect (PROJECT_LIB_HEADERS generic/atomic.h) endif() - diff --git a/lib/processor/hosted/cpu.c b/lib/processor/hosted/cpu.c new file mode 100644 index 00000000..0f6b355c --- /dev/null +++ b/lib/processor/hosted/cpu.c @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2024, STMicroelectronics. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +/* + * @file zephyr/cpu.c + * @brief hosted libmetal cpu routines. + */ + +#include + +void metal_cpu_yield(void) +{ + metal_wait_usec(10); +} diff --git a/lib/processor/hosted/cpu.h b/lib/processor/hosted/cpu.h index be8a1680..97114276 100644 --- a/lib/processor/hosted/cpu.h +++ b/lib/processor/hosted/cpu.h @@ -9,14 +9,9 @@ * @brief Hosted environment CPU specific primitives */ -#include - #ifndef __METAL_HOSTED_CPU__H__ #define __METAL_HOSTED_CPU__H__ -static inline void metal_cpu_yield(void) -{ - metal_wait_usec(10); -} +void metal_cpu_yield(void); #endif /* __METAL_HOSTED_CPU__H__ */