1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright 2020 Mellanox Technologies, Ltd
7 #include <rte_cycles.h>
10 rte_delay_us_sleep(unsigned int us)
12 struct timespec wait[2];
17 wait[0].tv_sec = us / US_PER_S;
18 us -= wait[0].tv_sec * US_PER_S;
20 wait[0].tv_nsec = 1000 * us;
22 while (nanosleep(&wait[ind], &wait[1 - ind]) && errno == EINTR) {
24 * Sleep was interrupted. Flip the index, so the 'remainder'
25 * will become the 'request' for a next call.