rpm  5.4.15
rpmsw.h
Go to the documentation of this file.
1 #ifndef H_RPMSW
2 #define H_RPMSW
3 
4 #include <stdio.h> /* XXX FILE * typedef */
5 #include <sys/time.h> /* XXX struct timeval typedef */
6 
11 #include <sys/time.h>
12 #include <stdio.h>
13 
16 typedef unsigned long int rpmtime_t;
17 
20 typedef struct rpmsw_s * rpmsw;
21 
24 typedef struct rpmop_s * rpmop;
25 
28 struct rpmsw_s {
29  union {
30  struct timeval tv;
31  unsigned long long int ticks;
32  unsigned long int tocks[2];
33  } u;
34 };
35 
39 struct rpmop_s {
40  struct rpmsw_s begin;
41  int count;
42  unsigned long long bytes;
44 };
45 
46 /*@unchecked@*/
47 extern int _rpmsw_stats;
48 
52 typedef enum rpmswOpX_e {
75 } rpmswOpX;
76 
77 #ifdef __cplusplus
78 extern "C" {
79 #endif
80 
85 /*@-exportlocal@*/
86 /*@null@*/
87 rpmsw rpmswNow(/*@returned@*/ rpmsw sw)
88  /*@globals internalState @*/
89  /*@modifies sw, internalState @*/;
90 /*@=exportlocal@*/
91 
97 /*@-exportlocal@*/
98 rpmtime_t rpmswDiff(/*@null@*/ rpmsw end, /*@null@*/ rpmsw begin)
99  /*@*/;
100 /*@=exportlocal@*/
101 
105 /*@-exportlocal@*/
106 rpmtime_t rpmswInit(void)
107  /*@globals internalState @*/
108  /*@modifies internalState @*/;
109 /*@=exportlocal@*/
110 
117 int rpmswEnter(/*@null@*/ rpmop op, ssize_t rc)
118  /*@globals internalState @*/
119  /*@modifies *op, internalState @*/;
120 
127 rpmtime_t rpmswExit(/*@null@*/ rpmop op, ssize_t rc)
128  /*@globals internalState @*/
129  /*@modifies op, internalState @*/;
130 
137 rpmtime_t rpmswAdd(/*@null@*/ rpmop to, /*@null@*/ rpmop from)
138  /*@modifies to @*/;
139 
146 rpmtime_t rpmswSub(rpmop to, rpmop from)
147  /*@modifies to @*/;
148 
155 void rpmswPrint(const char * name, /*@null@*/ rpmop op, /*@null@*/ FILE * fp)
156  /*@globals fileSystem @*/
157  /*@modifies fp, fileSystem @*/;
158 
159 #ifdef __cplusplus
160 }
161 #endif
162 
163 #endif /* H_RPMSW */
struct rpmsw_s * rpmsw
Definition: rpmsw.h:20
rpmswOpX_e
Indices for timestamps.
Definition: rpmsw.h:52
rpmtime_t usecs
Definition: rpmsw.h:43
void rpmswPrint(const char *name, rpmop op, FILE *fp)
Print operation statistics.
Definition: rpmsw.c:304
int rpmswEnter(rpmop op, ssize_t rc)
Enter timed operation.
Definition: rpmsw.c:248
rpmtime_t rpmswAdd(rpmop to, rpmop from)
Sum statistic counters.
Definition: rpmsw.c:280
struct timeval tv
Definition: rpmsw.h:30
int count
Definition: rpmsw.h:41
enum rpmswOpX_e rpmswOpX
Indices for timestamps.
struct rpmsw_s begin
Definition: rpmsw.h:40
rpmtime_t rpmswSub(rpmop to, rpmop from)
Subtract statistic counters.
Definition: rpmsw.c:292
const char const bson const bson * op
Definition: mongo.h:505
struct rpmop_s * rpmop
Definition: rpmsw.h:24
rpmtime_t rpmswInit(void)
Return benchmark time stamp overhead.
Definition: rpmsw.c:180
Cumulative statistics for an operation.
Definition: rpmsw.h:39
rpmtime_t rpmswDiff(rpmsw end, rpmsw begin)
Return benchmark time stamp difference.
Definition: rpmsw.c:123
union rpmsw_s::@9 u
Definition: rpmsw.h:28
unsigned long long int ticks
Definition: rpmsw.h:31
rpmtime_t rpmswExit(rpmop op, ssize_t rc)
Exit timed operation.
Definition: rpmsw.c:264
rpmsw rpmswNow(rpmsw sw)
Return benchmark time stamp.
Definition: rpmsw.c:84
unsigned long long bytes
Definition: rpmsw.h:42
static const char * name
int _rpmsw_stats
Definition: rpmsw.c:20
unsigned long int tocks[2]
Definition: rpmsw.h:32
unsigned long int rpmtime_t
Definition: rpmsw.h:16