13 typedef struct PCU_t PCU_t;
15 #define PHASTAIO_READTIME(cmd,bytes) {\
20 const size_t time = phastaio_time_diff(&t0,&t1);\
21 phastaio_addReadTime(time);\
22 phastaio_addReadBytes(bytes);\
25 #define PHASTAIO_WRITETIME(cmd,bytes) {\
30 const size_t time = phastaio_time_diff(&t0,&t1);\
31 phastaio_addWriteTime(time);\
32 phastaio_addWriteBytes(bytes);\
35 #define PHASTAIO_OPENTIME(cmd) {\
40 const size_t time = phastaio_time_diff(&t0,&t1);\
41 phastaio_addOpenTime(time);\
44 #define PHASTAIO_CLOSETIME(cmd) {\
49 const size_t time = phastaio_time_diff(&t0,&t1);\
50 phastaio_addCloseTime(time);\
62 #if defined(HAVE_INTEL_RDTSC)
63 typedef size_t phastaioTime;
64 #elif defined(USE_PCU_TIME)
65 typedef double phastaioTime;
66 #elif defined(HAVE_CLOCK_GETTIME)
68 typedef struct timespec phastaioTime;
71 void phastaio_time(phastaioTime* t);
73 size_t phastaio_time_diff(phastaioTime* start, phastaioTime* end);
75 void phastaio_addReadBytes(
size_t b);
77 void phastaio_addWriteBytes(
size_t b);
79 void phastaio_addReadTime(
size_t t);
81 void phastaio_addWriteTime(
size_t t);
83 void phastaio_addOpenTime(
size_t t);
85 void phastaio_addCloseTime(
size_t t);
87 void phastaio_initStats(PCU_t h);
89 void phastaio_printStats(PCU_t h);
92 void phastaio_setfile(
int f);