00001 #ifndef H_RPMSW 00002 #define H_RPMSW 00003 00010 typedef unsigned long int rpmtime_t; 00011 00014 typedef struct rpmsw_s * rpmsw; 00015 00018 typedef struct rpmop_s * rpmop; 00019 00022 struct rpmsw_s { 00023 union { 00024 struct timeval tv; 00025 unsigned long long int ticks; 00026 unsigned long int tocks[2]; 00027 } u; 00028 }; 00029 00033 struct rpmop_s { 00034 struct rpmsw_s begin; 00035 int count; 00036 size_t bytes; 00037 rpmtime_t usecs; 00038 }; 00039 00040 #ifdef __cplusplus 00041 extern "C" { 00042 #endif 00043 00048 /*@-exportlocal@*/ 00049 /*@null@*/ 00050 rpmsw rpmswNow(/*@returned@*/ rpmsw sw) 00051 /*@globals internalState @*/ 00052 /*@modifies sw, internalState @*/; 00053 /*@=exportlocal@*/ 00054 00060 /*@-exportlocal@*/ 00061 rpmtime_t rpmswDiff(/*@null@*/ rpmsw end, /*@null@*/ rpmsw begin) 00062 /*@*/; 00063 /*@=exportlocal@*/ 00064 00068 /*@-exportlocal@*/ 00069 rpmtime_t rpmswInit(void) 00070 /*@globals internalState @*/ 00071 /*@modifies internalState @*/; 00072 /*@=exportlocal@*/ 00073 00080 int rpmswEnter(/*@null@*/ rpmop op, ssize_t rc) 00081 /*@globals internalState @*/ 00082 /*@modifies *op, internalState @*/; 00083 00090 rpmtime_t rpmswExit(/*@null@*/ rpmop op, ssize_t rc) 00091 /*@globals internalState @*/ 00092 /*@modifies op, internalState @*/; 00093 00100 rpmtime_t rpmswAdd(/*@null@*/ rpmop to, /*@null@*/ rpmop from) 00101 /*@modifies to @*/; 00102 00109 rpmtime_t rpmswSub(rpmop to, rpmop from) 00110 /*@modifies to @*/; 00111 00112 #ifdef __cplusplus 00113 } 00114 #endif 00115 00116 #endif /* H_RPMSW */