/* * Copyright (c) 2017 Oticon A/S * * SPDX-License-Identifier: Apache-2.0 */ #include "zephyr/types.h" #include "fake_timer.h" #include "time_machine.h" #include "posix_soc_if.h" #if defined(CONFIG_ARCH_HAS_CUSTOM_BUSY_WAIT) /** * Replacement to the kernel k_busy_wait() * Will block this thread (and therefore the whole zephyr) during usec_to_wait * * Note that interrupts may be received in the meanwhile and that therefore this * thread may lose context */ void z_arch_busy_wait(u32_t usec_to_wait) { bs_time_t time_end = tm_get_hw_time() + usec_to_wait; while (tm_get_hw_time() < time_end) { /*There may be wakes due to other interrupts*/ fake_timer_wake_in_time(time_end); posix_halt_cpu(); } } #endif