Browse Source

Create work_hash function to abstractly produce work->hash from work->data regardless of algortihm used

Luke Dashjr 11 years ago
parent
commit
d685b8f486
2 changed files with 12 additions and 6 deletions
  1. 11 6
      miner.c
  2. 1 0
      miner.h

+ 11 - 6
miner.c

@@ -9371,6 +9371,16 @@ void inc_hw_errors3(struct thr_info *thr, const struct work *work, const uint32_
 		thr->cgpu->drv->hw_error(thr);
 		thr->cgpu->drv->hw_error(thr);
 }
 }
 
 
+void work_hash(struct work * const work)
+{
+#ifdef USE_SCRYPT
+	if (opt_scrypt)
+		scrypt_hash_data(work->hash, work->data);
+	else
+#endif
+		hash_data(work->hash, work->data);
+}
+
 static
 static
 bool test_hash(const void * const phash, const float diff)
 bool test_hash(const void * const phash, const float diff)
 {
 {
@@ -9393,12 +9403,7 @@ enum test_nonce2_result _test_nonce2(struct work *work, uint32_t nonce, bool che
 	uint32_t *work_nonce = (uint32_t *)(work->data + 64 + 12);
 	uint32_t *work_nonce = (uint32_t *)(work->data + 64 + 12);
 	*work_nonce = htole32(nonce);
 	*work_nonce = htole32(nonce);
 
 
-#ifdef USE_SCRYPT
-	if (opt_scrypt)
-		scrypt_hash_data(work->hash, work->data);
-	else
-#endif
-		hash_data(work->hash, work->data);
+	work_hash(work);
 	
 	
 	if (!test_hash(work->hash, work->nonce_diff))
 	if (!test_hash(work->hash, work->nonce_diff))
 		return TNR_BAD;
 		return TNR_BAD;

+ 1 - 0
miner.h

@@ -1484,6 +1484,7 @@ extern void __copy_work(struct work *work, const struct work *base_work);
 extern struct work *copy_work(const struct work *base_work);
 extern struct work *copy_work(const struct work *base_work);
 extern void set_simple_ntime_roll_limit(struct ntime_roll_limits *, uint32_t ntime_base, int ntime_roll);
 extern void set_simple_ntime_roll_limit(struct ntime_roll_limits *, uint32_t ntime_base, int ntime_roll);
 extern void work_set_simple_ntime_roll_limit(struct work *, int ntime_roll);
 extern void work_set_simple_ntime_roll_limit(struct work *, int ntime_roll);
+extern void work_hash(struct work *);
 extern char *devpath_to_devid(const char *);
 extern char *devpath_to_devid(const char *);
 extern struct thr_info *get_thread(int thr_id);
 extern struct thr_info *get_thread(int thr_id);
 extern struct cgpu_info *get_devices(int id);
 extern struct cgpu_info *get_devices(int id);