// Copyright 2020 The Fuchsia Authors // // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file or at // https://opensource.org/licenses/MIT #ifndef ZIRCON_KERNEL_LIB_KTL_INCLUDE___EXTERNAL_THREADING #define ZIRCON_KERNEL_LIB_KTL_INCLUDE___EXTERNAL_THREADING // libc++'s includes this file via <__threading_support>. It needs // these types and functions declared, but only for use in interfaces that // aren't supported in the kernel, so stub declarations are all they need. _LIBCPP_BEGIN_NAMESPACE_STD struct __libcpp_timespec_t { long int tv_sec, tv_nsec; }; using __libcpp_thread_id = int; bool __libcpp_thread_id_equal(__libcpp_thread_id, __libcpp_thread_id); bool __libcpp_thread_id_less(__libcpp_thread_id, __libcpp_thread_id); __libcpp_thread_id __libcpp_thread_get_current_id(); void __libcpp_thread_sleep_for(chrono::nanoseconds); void __libcpp_thread_yield(); // This macro is used unconditionally in <__threading_support> but defined // there only conditionally on when <__external_threading> is not used. #define _LIBCPP_THREAD_ABI_VISIBILITY inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_END_NAMESPACE_STD #endif // ZIRCON_KERNEL_LIB_KTL_INCLUDE___EXTERNAL_THREADING