/* * Copyright (c) 2018 Intel Corporation * * SPDX-License-Identifier: Apache-2.0 */ #include #include #include /** * @brief Sleep for a specified number of seconds. * * See IEEE 1003.1 */ unsigned sleep(unsigned int seconds) { int rem; rem = k_sleep(K_SECONDS(seconds)); __ASSERT_NO_MSG(rem >= 0); return rem / MSEC_PER_SEC; } /** * @brief Suspend execution for microsecond intervals. * * See IEEE 1003.1 */ int usleep(useconds_t useconds) { int32_t rem; if (useconds >= USEC_PER_SEC) { errno = EINVAL; return -1; } rem = k_usleep(useconds); __ASSERT_NO_MSG(rem >= 0); if (rem > 0) { /* sleep was interrupted by a call to k_wakeup() */ errno = EINTR; return -1; } return 0; }