mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 09:28:07 +02:00
util/os_time: use detect_os.h to uncouple from gallium
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
bffa23313a
commit
55eadf971a
1 changed files with 9 additions and 11 deletions
|
|
@ -33,13 +33,11 @@
|
|||
*/
|
||||
|
||||
#include "os_time.h"
|
||||
|
||||
/* TODO: fix this dependency */
|
||||
#include "gallium/include/pipe/p_config.h"
|
||||
#include "detect_os.h"
|
||||
|
||||
#include "util/u_atomic.h"
|
||||
|
||||
#if defined(PIPE_OS_UNIX)
|
||||
#if DETECT_OS_UNIX
|
||||
# include <unistd.h> /* usleep */
|
||||
# include <time.h> /* timeval */
|
||||
# include <sys/time.h> /* timeval */
|
||||
|
|
@ -55,13 +53,13 @@
|
|||
int64_t
|
||||
os_time_get_nano(void)
|
||||
{
|
||||
#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD)
|
||||
#if DETECT_OS_LINUX || DETECT_OS_BSD
|
||||
|
||||
struct timespec tv;
|
||||
clock_gettime(CLOCK_MONOTONIC, &tv);
|
||||
return tv.tv_nsec + tv.tv_sec*INT64_C(1000000000);
|
||||
|
||||
#elif defined(PIPE_OS_UNIX)
|
||||
#elif DETECT_OS_UNIX
|
||||
|
||||
struct timeval tv;
|
||||
gettimeofday(&tv, NULL);
|
||||
|
|
@ -95,13 +93,13 @@ os_time_get_nano(void)
|
|||
void
|
||||
os_time_sleep(int64_t usecs)
|
||||
{
|
||||
#if defined(PIPE_OS_LINUX)
|
||||
#if DETECT_OS_LINUX
|
||||
struct timespec time;
|
||||
time.tv_sec = usecs / 1000000;
|
||||
time.tv_nsec = (usecs % 1000000) * 1000;
|
||||
while (clock_nanosleep(CLOCK_MONOTONIC, 0, &time, &time) == EINTR);
|
||||
|
||||
#elif defined(PIPE_OS_UNIX)
|
||||
#elif DETECT_OS_UNIX
|
||||
usleep(usecs);
|
||||
|
||||
#elif DETECT_OS_WINDOWS
|
||||
|
|
@ -148,7 +146,7 @@ os_wait_until_zero(volatile int *var, uint64_t timeout)
|
|||
|
||||
if (timeout == OS_TIMEOUT_INFINITE) {
|
||||
while (p_atomic_read(var)) {
|
||||
#if defined(PIPE_OS_UNIX)
|
||||
#if DETECT_OS_UNIX
|
||||
sched_yield();
|
||||
#endif
|
||||
}
|
||||
|
|
@ -162,7 +160,7 @@ os_wait_until_zero(volatile int *var, uint64_t timeout)
|
|||
if (os_time_timeout(start_time, end_time, os_time_get_nano()))
|
||||
return false;
|
||||
|
||||
#if defined(PIPE_OS_UNIX)
|
||||
#if DETECT_OS_UNIX
|
||||
sched_yield();
|
||||
#endif
|
||||
}
|
||||
|
|
@ -184,7 +182,7 @@ os_wait_until_zero_abs_timeout(volatile int *var, int64_t timeout)
|
|||
if (os_time_get_nano() >= timeout)
|
||||
return false;
|
||||
|
||||
#if defined(PIPE_OS_UNIX)
|
||||
#if DETECT_OS_UNIX
|
||||
sched_yield();
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue