X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/80e2389990082500d76eb566d4946be3e786c3ef..d8f41ccd20de16f8ebe2ccc84d47bf1cb2b26bbb:/SecurityTests/cspxutils/cputimeCal/cputimeCal.cpp diff --git a/SecurityTests/cspxutils/cputimeCal/cputimeCal.cpp b/SecurityTests/cspxutils/cputimeCal/cputimeCal.cpp new file mode 100644 index 00000000..d35d3bd9 --- /dev/null +++ b/SecurityTests/cspxutils/cputimeCal/cputimeCal.cpp @@ -0,0 +1,36 @@ +/* compare CPUTimeRead() vs CFAbsoluteTimeGetCurrent() */ + +#include +#include +#include "cputime.h" +#include + +#define WAIT_TIME_SEC 1.0 + +int main() +{ + CPUTime cputimeStart, cputimeEnd; + CFAbsoluteTime start; + + printf("Resolution on this machine: %f nanoseconds\n", + CPUTimeDeltaUs(0ULL, 1ULL) * 1000.0); + + start = CFAbsoluteTimeGetCurrent(); + cputimeStart = CPUTimeRead(); + while((CFAbsoluteTimeGetCurrent() - start) < WAIT_TIME_SEC) { + ; + } + cputimeEnd = CPUTimeRead(); + + printf("Waited %f sec; elapsed CPUTime %f s\n", + WAIT_TIME_SEC, CPUTimeDeltaSec(cputimeStart, cputimeEnd)); + printf("cputimeStart %08X:%08X cputimeEnd %08X:%08X\n", + (unsigned)(cputimeStart >> 32), + (unsigned)(cputimeStart & 0xffffffffULL), + (unsigned)(cputimeEnd >> 32), + (unsigned)(cputimeEnd & 0xffffffffULL)); + printf("cputime raw delta %lu\n", + (unsigned long)(cputimeEnd - cputimeStart)); + + return 0; +}