mirror of
https://github.com/GOSTSec/ccminer
synced 2025-02-04 10:54:28 +00:00
diff: rename functions like cpuminer-multi
more proper, intuitive...
This commit is contained in:
parent
3f589cc4db
commit
b641bfdf8b
@ -436,6 +436,8 @@ extern "C" int scanhash_blake256(int thr_id, struct work* work, uint32_t max_non
|
||||
// GPU FULL HASH
|
||||
blake256_cpu_hash_80(thr_id, throughput, pdata[19], targetHigh, crcsum, blakerounds);
|
||||
#endif
|
||||
*hashes_done = pdata[19] - first_nonce + throughput;
|
||||
|
||||
if (foundNonce != UINT32_MAX)
|
||||
{
|
||||
uint32_t vhashcpu[8];
|
||||
@ -447,27 +449,24 @@ extern "C" int scanhash_blake256(int thr_id, struct work* work, uint32_t max_non
|
||||
be32enc(&endiandata[19], foundNonce);
|
||||
blake256hash(vhashcpu, endiandata, blakerounds);
|
||||
|
||||
//applog(LOG_BLUE, "%08x %16llx", vhashcpu[6], targetHigh);
|
||||
if (vhashcpu[6] <= Htarg && fulltest(vhashcpu, ptarget))
|
||||
{
|
||||
rc = 1;
|
||||
work_set_target_ratio(work, vhashcpu);
|
||||
pdata[19] = foundNonce;
|
||||
*hashes_done = pdata[19] - first_nonce + 1;
|
||||
#if NBN > 1
|
||||
if (extra_results[0] != UINT32_MAX) {
|
||||
be32enc(&endiandata[19], extra_results[0]);
|
||||
blake256hash(vhashcpu, endiandata, blakerounds);
|
||||
if (vhashcpu[6] <= Htarg /* && fulltest(vhashcpu, ptarget) */) {
|
||||
if (vhashcpu[6] <= Htarg && fulltest(vhashcpu, ptarget)) {
|
||||
pdata[21] = extra_results[0];
|
||||
applog(LOG_BLUE, "1:%x 2:%x", foundNonce, extra_results[0]);
|
||||
*hashes_done = max(*hashes_done, extra_results[0] - first_nonce + 1);
|
||||
work_set_target_ratio(work, vhashcpu);
|
||||
rc = 2;
|
||||
}
|
||||
extra_results[0] = UINT32_MAX;
|
||||
}
|
||||
#endif
|
||||
//applog_hash((uint8_t*)ptarget);
|
||||
//applog_compare_hash((uint8_t*)vhashcpu,(uint8_t*)ptarget);
|
||||
return rc;
|
||||
}
|
||||
else if (opt_debug) {
|
||||
@ -504,4 +503,4 @@ extern "C" void free_blake256(int thr_id)
|
||||
init[thr_id] = false;
|
||||
|
||||
cudaDeviceSynchronize();
|
||||
}
|
||||
}
|
||||
|
@ -77,4 +77,10 @@ extern "C" void bn_store_hash_target_ratio(uint32_t* hash, uint32_t* target, str
|
||||
work->shareratio = bn_hash_target_ratio(hash, target);
|
||||
work->sharediff = work->targetdiff * work->shareratio;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" void work_set_target_ratio(struct work* work, uint32_t* hash)
|
||||
{
|
||||
bn_store_hash_target_ratio(hash, work->target, work);
|
||||
}
|
||||
|
||||
|
@ -1448,21 +1448,21 @@ static bool stratum_gen_work(struct stratum_ctx *sctx, struct work *work)
|
||||
case ALGO_NEOSCRYPT:
|
||||
case ALGO_SCRYPT:
|
||||
case ALGO_SCRYPT_JANE:
|
||||
diff_to_target(work, sctx->job.diff / (65536.0 * opt_difficulty));
|
||||
work_set_target(work, sctx->job.diff / (65536.0 * opt_difficulty));
|
||||
break;
|
||||
case ALGO_DMD_GR:
|
||||
case ALGO_FRESH:
|
||||
case ALGO_FUGUE256:
|
||||
case ALGO_GROESTL:
|
||||
case ALGO_LYRA2v2:
|
||||
diff_to_target(work, sctx->job.diff / (256.0 * opt_difficulty));
|
||||
work_set_target(work, sctx->job.diff / (256.0 * opt_difficulty));
|
||||
break;
|
||||
case ALGO_KECCAK:
|
||||
case ALGO_LYRA2:
|
||||
diff_to_target(work, sctx->job.diff / (128.0 * opt_difficulty));
|
||||
work_set_target(work, sctx->job.diff / (128.0 * opt_difficulty));
|
||||
break;
|
||||
default:
|
||||
diff_to_target(work, sctx->job.diff / opt_difficulty);
|
||||
work_set_target(work, sctx->job.diff / opt_difficulty);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
6
miner.h
6
miner.h
@ -523,7 +523,8 @@ extern bool hex2bin(unsigned char *p, const char *hexstr, size_t len);
|
||||
extern int timeval_subtract(struct timeval *result, struct timeval *x,
|
||||
struct timeval *y);
|
||||
extern bool fulltest(const uint32_t *hash, const uint32_t *target);
|
||||
void diff_to_target(struct work* work, double diff);
|
||||
void diff_to_target(uint32_t* target, double diff);
|
||||
void work_set_target(struct work* work, double diff);
|
||||
double target_to_diff(uint32_t* target);
|
||||
extern void get_currentalgo(char* buf, int sz);
|
||||
extern uint32_t device_intensity(int thr_id, const char *func, uint32_t defcount);
|
||||
@ -534,6 +535,9 @@ void bn_nbits_to_uchar(const uint32_t nBits, uchar *target);
|
||||
double bn_hash_target_ratio(uint32_t* hash, uint32_t* target);
|
||||
void bn_store_hash_target_ratio(uint32_t* hash, uint32_t* target, struct work* work);
|
||||
|
||||
void work_set_target_ratio(struct work* work, uint32_t* hash);
|
||||
|
||||
|
||||
struct stratum_job {
|
||||
char *job_id;
|
||||
unsigned char prevhash[32];
|
||||
|
13
util.cpp
13
util.cpp
@ -791,14 +791,11 @@ bool fulltest(const uint32_t *hash, const uint32_t *target)
|
||||
}
|
||||
|
||||
// Only used by stratum pools
|
||||
void diff_to_target(struct work* work, double diff)
|
||||
void diff_to_target(uint32_t *target, double diff)
|
||||
{
|
||||
uint32_t *target = work->target;
|
||||
uint64_t m;
|
||||
int k;
|
||||
|
||||
work->targetdiff = diff;
|
||||
|
||||
for (k = 6; k > 0 && diff > 1.0; k--)
|
||||
diff /= 4294967296.0;
|
||||
m = (uint64_t)(4294901760.0 / diff);
|
||||
@ -811,6 +808,14 @@ void diff_to_target(struct work* work, double diff)
|
||||
}
|
||||
}
|
||||
|
||||
// Only used by stratum pools
|
||||
void work_set_target(struct work* work, double diff)
|
||||
{
|
||||
diff_to_target(work->target, diff);
|
||||
work->targetdiff = diff;
|
||||
}
|
||||
|
||||
|
||||
// Only used by longpoll pools
|
||||
double target_to_diff(uint32_t* target)
|
||||
{
|
||||
|
@ -97,7 +97,7 @@ extern "C" int scanhash_whirl(int thr_id, struct work* work, uint32_t max_nonce,
|
||||
if (vhash[7] <= Htarg && fulltest(vhash, ptarget)) {
|
||||
int res = 1;
|
||||
*hashes_done = pdata[19] - first_nonce + throughput;
|
||||
bn_store_hash_target_ratio(vhash, ptarget, work);
|
||||
work_set_target_ratio(work, vhash);
|
||||
#if 0
|
||||
uint32_t secNonce = cuda_check_hash_suppl(thr_id, throughput, pdata[19], d_hash[thr_id], 1);
|
||||
if (secNonce != 0) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user