* added a.n.o patches for solaris compatibility
[citadel.git] / citadel / threads.h
index 65c5689fac86c639e3e7a23458a6244a0a5dad85..d3df82b69f220dcfcdda5f09b6b1478870def800 100644 (file)
 #include "server.h"
 #include "sysdep_decls.h"
 
+#ifndef timerclear
+#define timerclear(tvp)         ((tvp)->tv_sec = (tvp)->tv_usec = 0)
+#endif
+
+#ifndef timerisset
+#define timerisset(tvp)         ((tvp)->tv_sec || (tvp)->tv_usec)
+#endif
+
+#ifndef timercmp
+#define timercmp(tvp, uvp, cmp) \
+ (((tvp)->tv_sec == (uvp)->tv_sec) ? \
+     ((tvp)->tv_usec cmp (uvp)->tv_usec) : \
+     ((tvp)->tv_sec cmp (uvp)->tv_sec))
+#endif
+
+#ifndef timeradd
+#define timeradd(tvp, uvp, vvp) \
+ do { \
+  (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \
+  (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \
+  if ((vvp)->tv_usec >= 1000000) { \
+   (vvp)->tv_sec++; \
+   (vvp)->tv_usec -= 1000000; \
+  } \
+ } while (0)
+#endif
+
+#ifndef timersub
+#define timersub(tvp, uvp, vvp) \
+ do { \
+  (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \
+  (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \
+  if ((vvp)->tv_usec < 0) { \
+   (vvp)->tv_sec--; \
+   (vvp)->tv_usec += 1000000; \
+  } \
+ } while (0)
+#endif
+
 // #define THREADS_USESIGNALS
 
 /*