From f05a319e017fa75d25a99a437d4ef6f2fa543ff0 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Sun, 18 Mar 2012 21:06:47 -0400 Subject: [PATCH] CGPU API for device names --- adl.c | 3 +++ cgminer.c | 6 +++++- driver-bitforce.c | 7 +++++++ driver-opencl.c | 2 ++ miner.h | 1 + 5 files changed, 18 insertions(+), 1 deletion(-) diff --git a/adl.c b/adl.c index 7a4707e0..0626cff5 100644 --- a/adl.c +++ b/adl.c @@ -340,6 +340,9 @@ void init_adl(int nDevs) } applog(LOG_INFO, "GPU %d %s hardware monitoring enabled", gpu, lpInfo[i].strAdapterName); + if (gpus[gpu].name) + free(gpus[gpu].name); + gpus[gpu].name = lpInfo[i].strAdapterName; gpus[gpu].has_adl = true; /* Flag adl as active if any card is successfully activated */ adl_active = true; diff --git a/cgminer.c b/cgminer.c index 84019bb9..7a69cee6 100644 --- a/cgminer.c +++ b/cgminer.c @@ -4455,7 +4455,11 @@ int main (int argc, char *argv[]) if (devices_enabled == -1) { applog(LOG_ERR, "Devices detected:"); for (i = 0; i < total_devices; ++i) { - applog(LOG_ERR, " %2d. %s%d (driver: %s)", i, devices[i]->api->name, devices[i]->device_id, devices[i]->api->dname); + struct cgpu_info *cgpu = devices[i]; + if (cgpu->name) + applog(LOG_ERR, " %2d. %s %d: %s (driver: %s)", i, cgpu->api->name, cgpu->device_id, cgpu->name, cgpu->api->dname); + else + applog(LOG_ERR, " %2d. %s %d (driver: %s)", i, cgpu->api->name, cgpu->device_id, cgpu->api->dname); } quit(0, "%d devices listed", total_devices); } diff --git a/driver-bitforce.c b/driver-bitforce.c index 3c93c552..991355fc 100644 --- a/driver-bitforce.c +++ b/driver-bitforce.c @@ -91,6 +91,7 @@ static void BFwrite(int fd, const void *buf, ssize_t bufLen) static bool bitforce_detect_one(const char *devpath) { + char *s; char pdevbuf[0x100]; if (total_devices == MAX_DEVICES) @@ -120,6 +121,12 @@ static bool bitforce_detect_one(const char *devpath) bitforce->device_path = strdup(devpath); bitforce->deven = DEV_ENABLED; bitforce->threads = 1; + if (likely((!memcmp(pdevbuf, ">>>ID: ", 7)) && (s = strstr(pdevbuf + 3, ">>>")))) + { + s[0] = '\0'; + bitforce->name = strdup(pdevbuf + 7); + } + return add_cgpu(bitforce); } diff --git a/driver-opencl.c b/driver-opencl.c index 7d8197a0..95139c39 100644 --- a/driver-opencl.c +++ b/driver-opencl.c @@ -1188,6 +1188,8 @@ static bool opencl_thread_prepare(struct thr_info *thr) cgpu->status = LIFE_NOSTART; return false; } + if (name && !cgpu->name) + cgpu->name = strdup(name); applog(LOG_INFO, "initCl() finished. Found %s", name); gettimeofday(&now, NULL); get_datestamp(cgpu->init, &now); diff --git a/miner.h b/miner.h index 259a85e2..071ad0b9 100644 --- a/miner.h +++ b/miner.h @@ -226,6 +226,7 @@ struct cgpu_info { int cgminer_id; struct device_api *api; int device_id; + char *name; char *device_path; FILE *device_file; int device_fd;