Browse Source

drv_set_defaults wrapper function around cgpu_set_defaults for use with options that may need to be set during probe

Luke Dashjr 12 years ago
parent
commit
b9feacf0a0
2 changed files with 16 additions and 0 deletions
  1. 15 0
      miner.c
  2. 1 0
      miner.h

+ 15 - 0
miner.c

@@ -9655,6 +9655,21 @@ void cgpu_set_defaults(struct cgpu_info * const cgpu)
 	cgpu->already_set_defaults = true;
 }
 
+void drv_set_defaults(const struct device_drv * const drv, char *(*set_func)(struct cgpu_info *, char *, char *, char *), void *userp)
+{
+	struct device_drv dummy_drv = *drv;
+	struct cgpu_info dummy_cgpu = {
+		.drv = &dummy_drv,
+		.device = &dummy_cgpu,
+		.device_id = -1,
+		.proc_id = -1,
+		.device_data = userp,
+	};
+	strcpy(dummy_cgpu.proc_repr, drv->name);
+	dummy_drv.set_device = set_func;
+	cgpu_set_defaults(&dummy_cgpu);
+}
+
 /* Makes sure the hashmeter keeps going even if mining threads stall, updates
  * the screen at regular intervals, and restarts threads if they appear to have
  * died. */

+ 1 - 0
miner.h

@@ -1041,6 +1041,7 @@ extern void proc_enable(struct cgpu_info *);
 extern void reinit_device(struct cgpu_info *cgpu);
 
 extern void cgpu_set_defaults(struct cgpu_info *);
+extern void drv_set_defaults(const struct device_drv *, char *(*set_func)(struct cgpu_info *, char *, char *, char *), void *userp);
 
 #ifdef HAVE_ADL
 extern bool gpu_stats(int gpu, float *temp, int *engineclock, int *memclock, float *vddc, int *activity, int *fanspeed, int *fanpercent, int *powertune);