summaryrefslogtreecommitdiffstats
path: root/minethd.h
diff options
context:
space:
mode:
authorfireice-uk <fireice2@o2.pl>2017-02-07 22:54:59 +0000
committerfireice-uk <fireice2@o2.pl>2017-02-07 22:54:59 +0000
commit2078969378be6cc08c15ae08660db84688b1493e (patch)
tree5b6a88bc68fdf277c8645a8bcbb4415f2e5a46c6 /minethd.h
parentbdad7f566292b07d9cd578c62ac509c817e043cf (diff)
downloadxmr-stak-2078969378be6cc08c15ae08660db84688b1493e.zip
xmr-stak-2078969378be6cc08c15ae08660db84688b1493e.tar.gz
NiceHash support
Diffstat (limited to 'minethd.h')
-rw-r--r--minethd.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/minethd.h b/minethd.h
index 6d6104f..d4470b1 100644
--- a/minethd.h
+++ b/minethd.h
@@ -27,14 +27,15 @@ public:
uint32_t iWorkSize;
uint32_t iResumeCnt;
uint64_t iTarget;
+ bool bNiceHash;
bool bStall;
size_t iPoolId;
miner_work() : iWorkSize(0), bStall(true), iPoolId(0) { }
miner_work(const char* sJobID, const uint8_t* bWork, uint32_t iWorkSize, uint32_t iResumeCnt,
- uint64_t iTarget, size_t iPoolId) : iWorkSize(iWorkSize), iResumeCnt(iResumeCnt),
- iTarget(iTarget), bStall(false), iPoolId(iPoolId)
+ uint64_t iTarget, bool bNiceHash, size_t iPoolId) : iWorkSize(iWorkSize), iResumeCnt(iResumeCnt),
+ iTarget(iTarget), bNiceHash(bNiceHash), bStall(false), iPoolId(iPoolId)
{
assert(iWorkSize <= sizeof(bWorkBlob));
memcpy(this->sJobID, sJobID, sizeof(miner_work::sJobID));
@@ -50,6 +51,7 @@ public:
iWorkSize = from.iWorkSize;
iResumeCnt = from.iResumeCnt;
iTarget = from.iTarget;
+ bNiceHash = from.bNiceHash;
bStall = from.bStall;
iPoolId = from.iPoolId;
@@ -75,6 +77,7 @@ public:
iWorkSize = from.iWorkSize;
iResumeCnt = from.iResumeCnt;
iTarget = from.iTarget;
+ bNiceHash = from.bNiceHash;
bStall = from.bStall;
iPoolId = from.iPoolId;
@@ -103,6 +106,10 @@ private:
inline uint32_t calc_start_nonce(uint32_t resume)
{ return (resume * iThreadCount + iThreadNo) << 22; }
+ // Limited version of the nonce calc above
+ inline uint32_t calc_nicehash_nonce(uint32_t start, uint32_t resume)
+ { return start | (resume * iThreadCount + iThreadNo) << 18; }
+
void work_main();
void double_work_main();
void consume_work();
OpenPOWER on IntegriCloud