00001 #ifndef H_RPMSW 00002 #define H_RPMSW 00003 00008 #include <unistd.h> 00009 #include <sys/time.h> 00010 00011 #ifdef __cplusplus 00012 extern "C" { 00013 #endif 00014 00017 typedef unsigned long int rpmtime_t; 00018 00021 typedef struct rpmsw_s * rpmsw; 00022 00025 typedef struct rpmop_s * rpmop; 00026 00029 struct rpmsw_s { 00030 union { 00031 struct timeval tv; 00032 unsigned long long int ticks; 00033 unsigned long int tocks[2]; 00034 } u; 00035 }; 00036 00040 struct rpmop_s { 00041 struct rpmsw_s begin; 00042 int count; 00043 size_t bytes; 00044 rpmtime_t usecs; 00045 }; 00046 00052 rpmsw rpmswNow(rpmsw sw); 00053 00060 rpmtime_t rpmswDiff(rpmsw end, rpmsw begin); 00061 00066 rpmtime_t rpmswInit(void); 00067 00074 int rpmswEnter(rpmop op, ssize_t rc); 00075 00082 rpmtime_t rpmswExit(rpmop op, ssize_t rc); 00083 00090 rpmtime_t rpmswAdd(rpmop to, rpmop from); 00091 00098 rpmtime_t rpmswSub(rpmop to, rpmop from); 00099 00100 #ifdef __cplusplus 00101 } 00102 #endif 00103 00104 #endif /* H_RPMSW */