diff --git a/lib/linux/time.c b/lib/linux/time.c index 17af241f..e33fe483 100644 --- a/lib/linux/time.c +++ b/lib/linux/time.c @@ -22,8 +22,45 @@ #include #include +#if SYS_time + time_t time (time_t * result) { return _sys_call1 (SYS_time, (long) result); } + +#elif SYS_gettimeofday + +#include + +time_t +time (time_t * result) +{ + struct timeval tv; + struct timezone tz; + gettimeofday (&tv, &tz); + if (result) + *result = tv.tv_sec; + return tv.tv_sec; +} + +#else + +#warning there is no time + +#include + +time_t +time (time_t * result) +{ + static int stub = 0; + if (__mes_debug () && !stub) + eputs ("time stub\n"); + stub = 1; + if (result) + *result = 0; + return 0; +} + +#endif