diff --git a/code/leak.c b/code/leak.c index 645bfff44..cf5d6862c 100644 --- a/code/leak.c +++ b/code/leak.c @@ -7,8 +7,6 @@ #include #include -#include "timing.c" - #define LKM_DEVICE "/dev/lkm" // where does this come from? @@ -19,6 +17,28 @@ int pipes[PIPE_BUFFER][2]; char buffer[0x100]; +inline size_t +rdtsc_begin(void) +{ + size_t a, d; + asm volatile("mfence"); + asm volatile("rdtsc" : "=a"(a), "=d"(d)); + a = (d << 32) | a; + asm volatile("lfence"); + return a; +} + +inline size_t +rdtsc_end(void) +{ + size_t a, d; + asm volatile("lfence"); + asm volatile("rdtsc" : "=a"(a), "=d"(d)); + a = (d << 32) | a; + asm volatile("mfence"); + return a; +} + int main(void) {