version 1.1.1.2, 2014/07/30 07:55:27
|
version 1.1.1.3, 2019/10/21 14:58:35
|
Line 27
|
Line 27
|
#include <bmon/conf.h> |
#include <bmon/conf.h> |
#include <bmon/utils.h> |
#include <bmon/utils.h> |
|
|
|
#ifdef __MACH__ |
|
#include <mach/clock.h> |
|
#include <mach/mach.h> |
|
#endif |
|
|
void *xcalloc(size_t n, size_t s) |
void *xcalloc(size_t n, size_t s) |
{ |
{ |
void *d = calloc(n, s); |
void *d = calloc(n, s); |
Line 112 int timestamp_is_negative(timestamp_t *ts)
|
Line 117 int timestamp_is_negative(timestamp_t *ts)
|
|
|
void update_timestamp(timestamp_t *dst) |
void update_timestamp(timestamp_t *dst) |
{ |
{ |
struct timeval tv; | #ifdef __MACH__ |
| clock_serv_t cclock; |
| mach_timespec_t tp; |
|
|
gettimeofday(&tv, NULL); | host_get_clock_service(mach_host_self(), SYSTEM_CLOCK, &cclock); |
| clock_get_time(cclock, &tp); |
| mach_port_deallocate(mach_task_self(), cclock); |
| #else |
| struct timespec tp; |
|
|
dst->tv_sec = tv.tv_sec; | clock_gettime(CLOCK_MONOTONIC, &tp); |
dst->tv_usec = tv.tv_usec; | #endif |
| |
| dst->tv_sec = tp.tv_sec; |
| dst->tv_usec = tp.tv_nsec / 1000; |
} |
} |
|
|
void copy_timestamp(timestamp_t *ts1, timestamp_t *ts2) |
void copy_timestamp(timestamp_t *ts1, timestamp_t *ts2) |
{ |
{ |
ts1->tv_sec = ts2->tv_sec; |
ts1->tv_sec = ts2->tv_sec; |
ts2->tv_usec = ts2->tv_usec; | ts1->tv_usec = ts2->tv_usec; |
} |
} |
|
|
float timestamp_diff(timestamp_t *t1, timestamp_t *t2) |
float timestamp_diff(timestamp_t *t1, timestamp_t *t2) |