gettime: use proper uint64_t types where needed
Windows has 32-bit longs even on 64-bit, so we risk overflowing.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/gettime.c b/gettime.c
index f29edcb..cc9dcb7 100644
--- a/gettime.c
+++ b/gettime.c
@@ -21,8 +21,8 @@
struct tv_valid {
struct timeval last_tv;
+ uint64_t last_cycles;
int last_tv_valid;
- unsigned long last_cycles;
};
#ifdef CONFIG_TLS_THREAD
static struct tv_valid __thread static_tv_valid;
@@ -168,7 +168,7 @@
#endif
#ifdef ARCH_HAVE_CPU_CLOCK
case CS_CPUCLOCK: {
- unsigned long long usecs, t;
+ uint64_t usecs, t;
t = get_cpu_clock();
if (tv && t < tv->last_cycles) {
@@ -233,7 +233,7 @@
static unsigned long get_cycles_per_usec(void)
{
struct timeval s, e;
- unsigned long long c_s, c_e;
+ uint64_t c_s, c_e;
enum fio_cs old_cs = fio_clock_source;
#ifdef CONFIG_CLOCK_GETTIME
@@ -245,7 +245,7 @@
c_s = get_cpu_clock();
do {
- unsigned long long elapsed;
+ uint64_t elapsed;
__fio_gettime(&e);
@@ -265,7 +265,7 @@
static void calibrate_cpu_clock(void)
{
double delta, mean, S;
- unsigned long avg, cycles[NR_TIME_ITERS];
+ uint64_t avg, cycles[NR_TIME_ITERS];
int i, samples;
cycles[0] = get_cycles_per_usec();
@@ -429,9 +429,9 @@
#define CLOCK_ENTRIES 100000
struct clock_entry {
- unsigned long seq;
- unsigned long tsc;
- unsigned long cpu;
+ uint64_t seq;
+ uint64_t tsc;
+ uint64_t cpu;
};
struct clock_thread {