Commit 61297399de73670442c511c8b192bff776dfa05a

Con Kolivas 2013-11-01T21:45:47

Provide a copy_work_noffset function for copying a work struct but changing its ntime.

diff --git a/cgminer.c b/cgminer.c
index 6f4eac5..52996b6 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -3618,12 +3618,14 @@ static void _copy_work(struct work *work, const struct work *base_work, int noff
 }
 
 /* Generates a copy of an existing work struct, creating fresh heap allocations
- * for all dynamically allocated arrays within the struct */
-struct work *copy_work(struct work *base_work)
+ * for all dynamically allocated arrays within the struct. noffset is used for
+ * when a driver has internally rolled the ntime, noffset is a relative value.
+ * The macro copy_work() calls this function with an noffset of 0. */
+struct work *copy_work_noffset(struct work *base_work, int noffset)
 {
 	struct work *work = make_work();
 
-	_copy_work(work, base_work, 0);
+	_copy_work(work, base_work, noffset);
 
 	return work;
 }
diff --git a/miner.h b/miner.h
index a801427..cbde41b 100644
--- a/miner.h
+++ b/miner.h
@@ -1532,7 +1532,8 @@ extern void adl(void);
 extern void app_restart(void);
 extern void clean_work(struct work *work);
 extern void free_work(struct work *work);
-extern struct work *copy_work(struct work *base_work);
+extern struct work *copy_work_noffset(struct work *base_work, int noffset);
+#define copy_work(work_in) copy_work_noffset(work_in, 0)
 extern struct thr_info *get_thread(int thr_id);
 extern struct cgpu_info *get_devices(int id);