Browse Source

Bugfix: Remove dependencies of compat.h on miner.h for Windows (moves timersub/timeradd to compat.h where it belongs)

Luke Dashjr 13 years ago
parent
commit
ee92f7c69a
4 changed files with 33 additions and 27 deletions
  1. 29 1
      compat.h
  2. 1 0
      driver-icarus.c
  3. 1 0
      driver-modminer.c
  4. 2 26
      miner.h

+ 29 - 1
compat.h

@@ -3,6 +3,8 @@
 
 #include "config.h"
 
+#include <stdbool.h>
+
 // NOTE: Nested preprocessor checks since the latter isn't defined at all without the former
 #ifdef HAVE_LIBUSB
 #	if ! HAVE_DECL_LIBUSB_ERROR_NAME
@@ -19,7 +21,33 @@
 
 #include <windows.h>
 
-#include "miner.h"  // for timersub
+#ifndef __maybe_unused
+#define __maybe_unused		__attribute__((unused))
+#endif
+
+  #ifndef timersub
+    #define timersub(a, b, result)                     \
+    do {                                               \
+      (result)->tv_sec = (a)->tv_sec - (b)->tv_sec;    \
+      (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
+      if ((result)->tv_usec < 0) {                     \
+        --(result)->tv_sec;                            \
+        (result)->tv_usec += 1000000;                  \
+      }                                                \
+    } while (0)
+  #endif
+ #ifndef timeradd
+ # define timeradd(a, b, result)			      \
+   do {							      \
+    (result)->tv_sec = (a)->tv_sec + (b)->tv_sec;	      \
+    (result)->tv_usec = (a)->tv_usec + (b)->tv_usec;	      \
+    if ((result)->tv_usec >= 1000000)			      \
+      {							      \
+	++(result)->tv_sec;				      \
+	(result)->tv_usec -= 1000000;			      \
+      }							      \
+   } while (0)
+ #endif
 
 static inline int nanosleep(const struct timespec *req, struct timespec *rem)
 {

+ 1 - 0
driver-icarus.c

@@ -54,6 +54,7 @@
   #define HAVE_EPOLL
 #endif
 
+#include "compat.h"
 #include "dynclock.h"
 #include "elist.h"
 #include "icarus-common.h"

+ 1 - 0
driver-modminer.c

@@ -13,6 +13,7 @@
 #include <stdio.h>
 #include <unistd.h>
 
+#include "compat.h"
 #include "dynclock.h"
 #include "logging.h"
 #include "miner.h"

+ 2 - 26
miner.h

@@ -71,32 +71,6 @@ static inline int fsync (int fd)
  #endif
 #endif
 
-#ifdef WIN32
-  #ifndef timersub
-    #define timersub(a, b, result)                     \
-    do {                                               \
-      (result)->tv_sec = (a)->tv_sec - (b)->tv_sec;    \
-      (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
-      if ((result)->tv_usec < 0) {                     \
-        --(result)->tv_sec;                            \
-        (result)->tv_usec += 1000000;                  \
-      }                                                \
-    } while (0)
-  #endif
- #ifndef timeradd
- # define timeradd(a, b, result)			      \
-   do {							      \
-    (result)->tv_sec = (a)->tv_sec + (b)->tv_sec;	      \
-    (result)->tv_usec = (a)->tv_usec + (b)->tv_usec;	      \
-    if ((result)->tv_usec >= 1000000)			      \
-      {							      \
-	++(result)->tv_sec;				      \
-	(result)->tv_usec -= 1000000;			      \
-      }							      \
-   } while (0)
- #endif
-#endif
-
 
 #ifdef HAVE_ADL
  #include "ADL/adl_sdk.h"
@@ -192,7 +166,9 @@ static inline int fsync (int fd)
 #define unlikely(expr) (expr)
 #define likely(expr) (expr)
 #endif
+#ifndef __maybe_unused
 #define __maybe_unused		__attribute__((unused))
+#endif
 
 #define uninitialised_var(x) x = x