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);