#define CLOCK_MONOTONIC_COARSE CLOCK_MONOTONIC
#endif
+static inline long long __timespec_to_ms(struct timespec ts)
+{
+ return (((long long) ts.tv_sec) * 1000) + (ts.tv_nsec / 1000000);
+}
+
+static inline long long __timespec_to_ns(struct timespec ts)
+{
+ return (((long long) ts.tv_sec) * 1000000) + (ts.tv_nsec / 1000);
+}
+
long long common_get_monotonic_time(void)
{
struct timespec ts;
if (result != 0)
return 0;
- return (((unsigned long long) ts.tv_sec) * 1000000) + (ts.tv_nsec / 1000);
+ return __timespec_to_ns(ts);
}
long long common_get_monotonic_coarse_time(void)
if (result != 0)
return 0;
- return (((unsigned long long) ts.tv_sec) * 1000000) + (ts.tv_nsec / 1000);
+ return __timespec_to_ns(ts);
}
long long common_get_epoch_time(void)
{
- long long int ret_time = 0;
- struct timespec time_s;
+ struct timespec ts;
+ int result;
- if (0 == clock_gettime(CLOCK_REALTIME, &time_s))
- ret_time = time_s.tv_sec;
+ result = clock_gettime(CLOCK_REALTIME, &ts);
- return ret_time;
+ if (result != 0)
+ return 0;
+
+ return __timespec_to_ms(ts);
}
long long common_get_epoch_coarse_time(void)
{
- long long int ret_time = 0;
- struct timespec time_s;
+ struct timespec ts;
+ int result;
+
+ result = clock_gettime(CLOCK_REALTIME_COARSE, &ts);
- if (0 == clock_gettime(CLOCK_REALTIME_COARSE, &time_s))
- ret_time = time_s.tv_sec;
+ if (result != 0)
+ return 0;
- return ret_time;
+ return __timespec_to_ms(ts);
}
int common_get_epoch_timespec(struct timespec *tp)