#define BTF_TIMEOK 1u /* @s@ ad @ns@ slots are value */
#define BTF_CYOK 2u /* @cy@ slot is valid */
#define BTF_ANY (BTF_TIMEOK | BTF_CYOK) /* some part is useful */
- kludge64 s; uint32 ns; /* real time in seconds and nanos */
- kludge64 cy; /* count of CPU cycles */
+ kludge64 s; uint32 ns; /* real time, seconds and nanos */
+ kludge64 cy; /* count of CPU cycles */
};
struct bench_timing {
- unsigned f; /* flags (as in @struct bench_time@) */
+ unsigned f; /* flags (@BTF_...@) */
double n, t, cy; /* count, time, and cycles */
};
struct bench_state {
struct bench_timer *tm; /* a timer */
double target_s; /* target time to run benchmarks */
- unsigned f; /* flags (@BTF_...@) for calibrations */
+ unsigned f; /* calibration flags (@BTF_...@) */
struct { double m, c; } clk, cy; /* calculated overheads */
};
typedef void bench_fn(unsigned long /*n*/, void */*ctx*/);
-/* Run the benchmark @n@ times, given a context pointer @ctx@. */
+ /* Run the benchmark @n@ times, given a context pointer @ctx@. */
/*----- Functions provided ------------------------------------------------*/