Browse Source

Provide a flip128 helper to simplify big endian flipping.

Con Kolivas 13 years ago
parent
commit
8d81f1d207
2 changed files with 11 additions and 3 deletions
  1. 1 3
      cgminer.c
  2. 10 0
      miner.h

+ 1 - 3
cgminer.c

@@ -2440,9 +2440,7 @@ static bool submit_upstream_work(struct work *work, CURL *curl, bool resubmit)
 	cgpu = get_thr_cgpu(thr_id);
 
 #ifdef __BIG_ENDIAN__
-        int swapcounter = 0;
-        for (swapcounter = 0; swapcounter < 32; swapcounter++)
-            (((uint32_t*) (work->data))[swapcounter]) = swab32(((uint32_t*) (work->data))[swapcounter]);
+	flip128(work->data, work->data);
 #endif
 
 	/* build hex string */

+ 10 - 0
miner.h

@@ -660,6 +660,16 @@ static inline void flip80(void *dest_p, const void *src_p)
 		dest[i] = swab32(src[i]);
 }
 
+static inline void flip128(void *dest_p, const void *src_p)
+{
+	uint32_t *dest = dest_p;
+	const uint32_t *src = src_p;
+	int i;
+
+	for (i = 0; i < 32; i++)
+		dest[i] = swab32(src[i]);
+}
+
 extern void quit(int status, const char *format, ...);
 
 static inline void mutex_lock(pthread_mutex_t *lock)