void bench_after(void) { ctx_t *ctx = core_get(); long long result; #if OPSYS == DUINO && TIMER == HREAL core_get()->after = micros(); result = (ctx->after - ctx->before); #elif TIMER == HREAL || TIMER == HPROC || TIMER == HTHRD clock_gettime(CLOCK, &(ctx->after)); result = ((long)ctx->after.tv_sec - (long)ctx->before.tv_sec) * 1000000000; result += (ctx->after.tv_nsec - ctx->before.tv_nsec); #elif TIMER == ANSI ctx->after = clock(); result = (ctx->after - ctx->before) * 1000000 / CLOCKS_PER_SEC; #elif TIMER == POSIX gettimeofday(&(ctx->after), NULL); result = ((long)ctx->after.tv_sec - (long)ctx->before.tv_sec) * 1000000; result += (ctx->after.tv_usec - ctx->before.tv_usec); #elif TIMER == CYCLE ctx->after = arch_cycles(); result = (ctx->after - ctx->before); #endif #ifdef TIMER ctx->total += result; #else (void)result; (void)ctx; #endif }
void bench_before(void) { #if OPSYS == DUINO && TIMER == HREAL core_get()->before = micros(); #elif TIMER == HREAL || TIMER == HPROC || TIMER == HTHRD clock_gettime(CLOCK, &(core_get()->before)); #elif TIMER == ANSI core_get()->before = clock(); #elif TIMER == POSIX gettimeofday(&(core_get()->before), NULL); #elif TIMER == CYCLE core_get()->before = arch_cycles(); #endif }
uint64 os_cycles() { return arch_cycles(); }