summaryrefslogtreecommitdiff
path: root/girepository/cmph/cmph_time.h
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2010-11-11 15:01:07 -0500
committerColin Walters <walters@verbum.org>2010-12-03 16:03:31 -0500
commit3a94a5e36287072486831eb68bfe43a0e1c8ea78 (patch)
tree59eb83ba02a9acfd7032c2199d6e523e89efe418 /girepository/cmph/cmph_time.h
parentf6e5defff5a8d8ba83e0b414496d28b5e2361f39 (diff)
downloadgobject-introspection-3a94a5e36287072486831eb68bfe43a0e1c8ea78.tar.gz
Import CMPH 1.0
This will be used for typelib indexing. See README-CMPH-IMPORT.txt for more information.
Diffstat (limited to 'girepository/cmph/cmph_time.h')
-rw-r--r--girepository/cmph/cmph_time.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/girepository/cmph/cmph_time.h b/girepository/cmph/cmph_time.h
new file mode 100644
index 00000000..d8018090
--- /dev/null
+++ b/girepository/cmph/cmph_time.h
@@ -0,0 +1,62 @@
+#ifdef ELAPSED_TIME_IN_SECONDS
+#undef ELAPSED_TIME_IN_SECONDS
+#endif
+
+#ifdef ELAPSED_TIME_IN_uSECONDS
+#undef ELAPSED_TIME_IN_uSECONDS
+#endif
+
+#ifdef WIN32
+// include headers to use gettimeofday
+#else
+ #ifdef __GNUC__
+ #include <sys/time.h>
+ #include <sys/resource.h>
+ #endif
+#endif
+
+#ifdef __GNUC__
+ #ifndef __CMPH_TIME_H__
+ #define __CMPH_TIME_H__
+ static inline void elapsed_time_in_seconds(double * elapsed_time)
+ {
+ struct timeval e_time;
+ if (gettimeofday(&e_time, NULL) < 0) {
+ return;
+ }
+ *elapsed_time = (double)e_time.tv_sec + ((double)e_time.tv_usec/1000000.0);
+ }
+ static inline void dummy_elapsed_time_in_seconds()
+ {
+ }
+ static inline void elapsed_time_in_useconds(cmph_uint64 * elapsed_time)
+ {
+ struct timeval e_time;
+ if (gettimeofday(&e_time, NULL) < 0) {
+ return;
+ }
+ *elapsed_time = (cmph_uint64)(e_time.tv_sec*1000000 + e_time.tv_usec);
+ }
+ static inline void dummy_elapsed_time_in_useconds()
+ {
+ }
+ #endif
+#endif
+
+#ifdef CMPH_TIMING
+ #ifdef __GNUC__
+ #define ELAPSED_TIME_IN_SECONDS elapsed_time_in_seconds
+ #define ELAPSED_TIME_IN_uSECONDS elapsed_time_in_useconds
+ #else
+ #define ELAPSED_TIME_IN_SECONDS dummy_elapsed_time_in_seconds
+ #define ELAPSED_TIME_IN_uSECONDS dummy_elapsed_time_in_useconds
+ #endif
+#else
+ #ifdef __GNUC__
+ #define ELAPSED_TIME_IN_SECONDS
+ #define ELAPSED_TIME_IN_uSECONDS
+ #else
+ #define ELAPSED_TIME_IN_SECONDS dummy_elapsed_time_in_seconds
+ #define ELAPSED_TIME_IN_uSECONDS dummy_elapsed_time_in_useconds
+ #endif
+#endif