From 12802f12e30f57c2a9eefca2c1a5955275c95127 Mon Sep 17 00:00:00 2001 From: psychocrypt <psychocrypt@users.noreply.github.com> Date: Thu, 26 Oct 2017 20:58:27 +0200 Subject: [PATCH] rename `xmr` to `monero` - rename all `xmr` to `monero` - be insensitive while check for set currency - add function to compate two strings insensitive --- CMakeLists.txt | 12 ++-- doc/FAQ.md | 2 +- doc/compile.md | 2 +- doc/usage.md | 2 +- xmrstak/backend/amd/amd_gpu/gpu.cpp | 12 ++-- xmrstak/backend/amd/autoAdjust.hpp | 8 +-- xmrstak/backend/amd/minethd.cpp | 2 +- xmrstak/backend/cpu/autoAdjust.hpp | 6 +- xmrstak/backend/cpu/autoAdjustHwloc.hpp | 6 +- xmrstak/backend/cpu/crypto/cryptonight.h | 2 +- .../backend/cpu/crypto/cryptonight_common.cpp | 12 ++-- xmrstak/backend/cpu/minethd.cpp | 66 ++++++++++--------- xmrstak/backend/cpu/minethd.hpp | 4 +- xmrstak/backend/cryptonight.hpp | 6 +- xmrstak/backend/nvidia/minethd.cpp | 17 ++--- .../backend/nvidia/nvcc_code/cuda_extra.cu | 10 +-- .../backend/nvidia/nvcc_code/cuda_extra.hpp | 2 +- xmrstak/cli/cli-miner.cpp | 19 +++--- xmrstak/config.tpl | 2 +- xmrstak/jconf.cpp | 11 ++-- xmrstak/jconf.hpp | 2 +- xmrstak/misc/executor.cpp | 6 +- xmrstak/misc/utility.cpp | 21 ++++++ xmrstak/misc/utility.hpp | 12 ++++ 24 files changed, 143 insertions(+), 101 deletions(-) create mode 100644 xmrstak/misc/utility.cpp create mode 100644 xmrstak/misc/utility.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 332f226..595631d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,15 +37,15 @@ endif() set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "${BUILD_TYPE}") set(XMR-STAK_CURRENCY "all" CACHE STRING "select miner currency") -set_property(CACHE XMR-STAK_CURRENCY PROPERTY STRINGS "all;xmr;aeon") +set_property(CACHE XMR-STAK_CURRENCY PROPERTY STRINGS "all;monero;aeon") if("${XMR-STAK_CURRENCY}" STREQUAL "all") - message(STATUS "set miner currency to 'xmr' and 'aeon'") + message(STATUS "Set miner currency to 'monero' and 'aeon'") elseif("${XMR-STAK_CURRENCY}" STREQUAL "aeon") - message(STATUS "set miner currency to 'aeon'") - add_definitions("-DCONF_NO_XMR=1") -elseif("${XMR-STAK_CURRENCY}" STREQUAL "xmr") - message(STATUS "set miner currency to 'xmr'") + message(STATUS "Set miner currency to 'aeon'") + add_definitions("-DCONF_NO_MONERO=1") +elseif("${XMR-STAK_CURRENCY}" STREQUAL "monero") + message(STATUS "Set miner currency to 'monero'") add_definitions("-DCONF_NO_AEON=1") endif() diff --git a/doc/FAQ.md b/doc/FAQ.md index 32acbe4..215048d 100644 --- a/doc/FAQ.md +++ b/doc/FAQ.md @@ -65,4 +65,4 @@ Add the binary to to protection software white list to solve this issue.s If the miner is compiled for Monero and Aeon than you can change - the value `currency` in the config *or* - - start the miner with the [command line option](usage.md) `--currency xmr` or `--currency aeon` + - start the miner with the [command line option](usage.md) `--currency monero` or `--currency aeon` diff --git a/doc/compile.md b/doc/compile.md index a094d55..537a736 100644 --- a/doc/compile.md +++ b/doc/compile.md @@ -47,7 +47,7 @@ After the configuration you need to compile the miner, follow the guide for your - `WIN_UAC` will enable or disable the "Run As Administrator" prompt on Windows. - UAC confirmation is needed to use large pages on Windows 7. - On Windows 10 it is only needed once to set up the account to use them. -- `XMR-STAK_CURRENCY` - compile for Monero(xmr) or Aeon(aeon) usage only e.g. `cmake .. -DXMR-STAK_CURRENCY=xmr` +- `XMR-STAK_CURRENCY` - compile for Monero(XMR) or Aeon(AEON) usage only e.g. `cmake .. -DXMR-STAK_CURRENCY=monero` ## CPU Build Options diff --git a/doc/usage.md b/doc/usage.md index 226a3f1..9a38384 100644 --- a/doc/usage.md +++ b/doc/usage.md @@ -33,7 +33,7 @@ Usage: xmr-stak [OPTION]... -h, --help show this help -c, --config FILE common miner configuration file - --currency NAME currency to mine: xmr or aeon + --currency NAME currency to mine: monero or aeon --noCPU disable the CPU miner backend --cpu FILE CPU backend miner config file --noAMD disable the AMD miner backend diff --git a/xmrstak/backend/amd/amd_gpu/gpu.cpp b/xmrstak/backend/amd/amd_gpu/gpu.cpp index 845d32c..22ce5d0 100644 --- a/xmrstak/backend/amd/amd_gpu/gpu.cpp +++ b/xmrstak/backend/amd/amd_gpu/gpu.cpp @@ -13,8 +13,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "../../cryptonight.hpp" -#include "../../../jconf.hpp" +#include "xmrstak/backend/cryptonight.hpp" +#include "xmrstak/jconf.hpp" #include <stdio.h> #include <string.h> @@ -251,11 +251,11 @@ size_t InitOpenCLGpu(cl_context opencl_ctx, GpuContext* ctx, const char* source_ size_t hashMemSize; int threadMemMask; int hasIterations; - if(::jconf::inst()->IsCurrencyXMR()) + if(::jconf::inst()->IsCurrencyMonero()) { - hashMemSize = XMR_MEMORY; - threadMemMask = XMR_MASK; - hasIterations = XMR_ITER; + hashMemSize = MONERO_MEMORY; + threadMemMask = MONERO_MASK; + hasIterations = MONERO_ITER; } else { diff --git a/xmrstak/backend/amd/autoAdjust.hpp b/xmrstak/backend/amd/autoAdjust.hpp index 01f279a..87e6299 100644 --- a/xmrstak/backend/amd/autoAdjust.hpp +++ b/xmrstak/backend/amd/autoAdjust.hpp @@ -8,8 +8,8 @@ #include "xmrstak/misc/console.hpp" #include "xmrstak/misc/configEditor.hpp" #include "xmrstak/params.hpp" -#include "../cryptonight.hpp" -#include "../../jconf.hpp" +#include "xmrstak/backend/cryptonight.hpp" +#include "xmrstak/jconf.hpp" #include <vector> #include <cstdio> @@ -84,9 +84,9 @@ private: constexpr size_t byteToMiB = 1024u * 1024u; size_t hashMemSize; - if(::jconf::inst()->IsCurrencyXMR()) + if(::jconf::inst()->IsCurrencyMonero()) { - hashMemSize = XMR_MEMORY; + hashMemSize = MONERO_MEMORY; } else { diff --git a/xmrstak/backend/amd/minethd.cpp b/xmrstak/backend/amd/minethd.cpp index 295ad31..f12e12c 100644 --- a/xmrstak/backend/amd/minethd.cpp +++ b/xmrstak/backend/amd/minethd.cpp @@ -183,7 +183,7 @@ void minethd::work_main() uint64_t iCount = 0; cryptonight_ctx* cpu_ctx; cpu_ctx = cpu::minethd::minethd_alloc_ctx(); - cn_hash_fun hash_fun = cpu::minethd::func_selector(::jconf::inst()->HaveHardwareAes(), true /*bNoPrefetch*/, ::jconf::inst()->IsCurrencyXMR()); + cn_hash_fun hash_fun = cpu::minethd::func_selector(::jconf::inst()->HaveHardwareAes(), true /*bNoPrefetch*/, ::jconf::inst()->IsCurrencyMonero()); globalStates::inst().iConsumeCnt++; while (bQuit == 0) diff --git a/xmrstak/backend/cpu/autoAdjust.hpp b/xmrstak/backend/cpu/autoAdjust.hpp index e7d6eec..7bdb14e 100644 --- a/xmrstak/backend/cpu/autoAdjust.hpp +++ b/xmrstak/backend/cpu/autoAdjust.hpp @@ -6,7 +6,7 @@ #include "xmrstak/jconf.hpp" #include "xmrstak/misc/configEditor.hpp" #include "xmrstak/params.hpp" -#include "../cryptonight.hpp" +#include "xmrstak/backend/cryptonight.hpp" #include <string> #ifdef _WIN32 @@ -38,9 +38,9 @@ public: autoAdjust() { - if(::jconf::inst()->IsCurrencyXMR()) + if(::jconf::inst()->IsCurrencyMonero()) { - hashMemSize = XMR_MEMORY; + hashMemSize = MONERO_MEMORY; halfHashMemSize = hashMemSize / 2u; } else diff --git a/xmrstak/backend/cpu/autoAdjustHwloc.hpp b/xmrstak/backend/cpu/autoAdjustHwloc.hpp index b6f84c4..ddeb89b 100644 --- a/xmrstak/backend/cpu/autoAdjustHwloc.hpp +++ b/xmrstak/backend/cpu/autoAdjustHwloc.hpp @@ -3,7 +3,7 @@ #include "xmrstak/misc/console.hpp" #include "xmrstak/misc/configEditor.hpp" #include "xmrstak/params.hpp" -#include "../cryptonight.hpp" +#include "xmrstak/backend/cryptonight.hpp" #ifdef _WIN32 #include <windows.h> @@ -28,9 +28,9 @@ public: autoAdjust() { - if(::jconf::inst()->IsCurrencyXMR()) + if(::jconf::inst()->IsCurrencyMonero()) { - hashMemSize = XMR_MEMORY; + hashMemSize = MONERO_MEMORY; halfHashMemSize = hashMemSize / 2u; } else diff --git a/xmrstak/backend/cpu/crypto/cryptonight.h b/xmrstak/backend/cpu/crypto/cryptonight.h index d07050e..631c39a 100644 --- a/xmrstak/backend/cpu/crypto/cryptonight.h +++ b/xmrstak/backend/cpu/crypto/cryptonight.h @@ -7,7 +7,7 @@ extern "C" { #include <stddef.h> #include <inttypes.h> -#include "../../cryptonight.hpp" +#include "xmrstak/backend/cryptonight.hpp" typedef struct { diff --git a/xmrstak/backend/cpu/crypto/cryptonight_common.cpp b/xmrstak/backend/cpu/crypto/cryptonight_common.cpp index 70ad27c..c73dbd8 100644 --- a/xmrstak/backend/cpu/crypto/cryptonight_common.cpp +++ b/xmrstak/backend/cpu/crypto/cryptonight_common.cpp @@ -30,8 +30,8 @@ extern "C" } #include "cryptonight.h" #include "cryptonight_aesni.h" -#include "../../../jconf.hpp" -#include "../../cryptonight.hpp" +#include "xmrstak/backend/cryptonight.hpp" +#include "xmrstak/jconf.hpp" #include <stdio.h> #include <stdlib.h> @@ -197,9 +197,9 @@ size_t cryptonight_init(size_t use_fast_mem, size_t use_mlock, alloc_msg* msg) cryptonight_ctx* cryptonight_alloc_ctx(size_t use_fast_mem, size_t use_mlock, alloc_msg* msg) { size_t hashMemSize; - if(::jconf::inst()->IsCurrencyXMR()) + if(::jconf::inst()->IsCurrencyMonero()) { - hashMemSize = XMR_MEMORY; + hashMemSize = MONERO_MEMORY; } else { @@ -277,9 +277,9 @@ cryptonight_ctx* cryptonight_alloc_ctx(size_t use_fast_mem, size_t use_mlock, al void cryptonight_free_ctx(cryptonight_ctx* ctx) { size_t hashMemSize; - if(::jconf::inst()->IsCurrencyXMR()) + if(::jconf::inst()->IsCurrencyMonero()) { - hashMemSize = XMR_MEMORY; + hashMemSize = MONERO_MEMORY; } else { diff --git a/xmrstak/backend/cpu/minethd.cpp b/xmrstak/backend/cpu/minethd.cpp index 28d641c..d36ebf1 100644 --- a/xmrstak/backend/cpu/minethd.cpp +++ b/xmrstak/backend/cpu/minethd.cpp @@ -201,28 +201,28 @@ bool minethd::self_test() bool bResult = true; - bool useXmr = ::jconf::inst()->IsCurrencyXMR(); - if(useXmr) + bool mineMonero = ::jconf::inst()->IsCurrencyMonero(); + if(mineMonero) { unsigned char out[64]; cn_hash_fun hashf; cn_hash_fun_dbl hashdf; - hashf = func_selector(::jconf::inst()->HaveHardwareAes(), false, useXmr); + hashf = func_selector(::jconf::inst()->HaveHardwareAes(), false, mineMonero); hashf("This is a test", 14, out, ctx0); bResult = memcmp(out, "\xa0\x84\xf0\x1d\x14\x37\xa0\x9c\x69\x85\x40\x1b\x60\xd4\x35\x54\xae\x10\x58\x02\xc5\xf5\xd8\xa9\xb3\x25\x36\x49\xc0\xbe\x66\x05", 32) == 0; - hashf = func_selector(::jconf::inst()->HaveHardwareAes(), true, useXmr); + hashf = func_selector(::jconf::inst()->HaveHardwareAes(), true, mineMonero); hashf("This is a test", 14, out, ctx0); bResult &= memcmp(out, "\xa0\x84\xf0\x1d\x14\x37\xa0\x9c\x69\x85\x40\x1b\x60\xd4\x35\x54\xae\x10\x58\x02\xc5\xf5\xd8\xa9\xb3\x25\x36\x49\xc0\xbe\x66\x05", 32) == 0; - hashdf = func_dbl_selector(::jconf::inst()->HaveHardwareAes(), false, useXmr); + hashdf = func_dbl_selector(::jconf::inst()->HaveHardwareAes(), false, mineMonero); hashdf("The quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy log", 43, out, ctx0, ctx1); bResult &= memcmp(out, "\x3e\xbb\x7f\x9f\x7d\x27\x3d\x7c\x31\x8d\x86\x94\x77\x55\x0c\xc8\x00\xcf\xb1\x1b\x0c\xad\xb7\xff\xbd\xf6\xf8\x9f\x3a\x47\x1c\x59" "\xb4\x77\xd5\x02\xe4\xd8\x48\x7f\x42\xdf\xe3\x8e\xed\x73\x81\x7a\xda\x91\xb7\xe2\x63\xd2\x91\x71\xb6\x5c\x44\x3a\x01\x2a\x41\x22", 64) == 0; - hashdf = func_dbl_selector(::jconf::inst()->HaveHardwareAes(), true, useXmr); + hashdf = func_dbl_selector(::jconf::inst()->HaveHardwareAes(), true, mineMonero); hashdf("The quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy log", 43, out, ctx0, ctx1); bResult &= memcmp(out, "\x3e\xbb\x7f\x9f\x7d\x27\x3d\x7c\x31\x8d\x86\x94\x77\x55\x0c\xc8\x00\xcf\xb1\x1b\x0c\xad\xb7\xff\xbd\xf6\xf8\x9f\x3a\x47\x1c\x59" "\xb4\x77\xd5\x02\xe4\xd8\x48\x7f\x42\xdf\xe3\x8e\xed\x73\x81\x7a\xda\x91\xb7\xe2\x63\xd2\x91\x71\xb6\x5c\x44\x3a\x01\x2a\x41\x22", 64) == 0; @@ -289,7 +289,7 @@ void minethd::consume_work() globalStates::inst().inst().iConsumeCnt++; } -minethd::cn_hash_fun minethd::func_selector(bool bHaveAes, bool bNoPrefetch, bool useXMR) +minethd::cn_hash_fun minethd::func_selector(bool bHaveAes, bool bNoPrefetch, bool mineMonero) { // We have two independent flag bits in the functions // therefore we will build a binary digit and select the @@ -297,13 +297,17 @@ minethd::cn_hash_fun minethd::func_selector(bool bHaveAes, bool bNoPrefetch, boo // Digit order SOFT_AES, NO_PREFETCH, MINER_ALGO static const cn_hash_fun func_table[] = { -#ifndef CONF_NO_XMR - cryptonight_hash<XMR_MASK, XMR_ITER, XMR_MEMORY, false, false>, - cryptonight_hash<XMR_MASK, XMR_ITER, XMR_MEMORY, false, true>, - cryptonight_hash<XMR_MASK, XMR_ITER, XMR_MEMORY, true, false>, - cryptonight_hash<XMR_MASK, XMR_ITER, XMR_MEMORY, true, true> + /* there will be 8 function entries if `CONF_NO_MONERO` and `CONF_NO_AEON` + * is not defined. If one is defined there will be 4 entries. + */ +#ifndef CONF_NO_MONERO + cryptonight_hash<MONERO_MASK, MONERO_ITER, MONERO_MEMORY, false, false>, + cryptonight_hash<MONERO_MASK, MONERO_ITER, MONERO_MEMORY, false, true>, + cryptonight_hash<MONERO_MASK, MONERO_ITER, MONERO_MEMORY, true, false>, + cryptonight_hash<MONERO_MASK, MONERO_ITER, MONERO_MEMORY, true, true> #endif -#if (!defined(CONF_NO_AEON)) && (!defined(CONF_NO_XMR)) +#if (!defined(CONF_NO_AEON)) && (!defined(CONF_NO_MONERO)) + // comma will be added only if Monero and Aeon is build , #endif #ifndef CONF_NO_AEON @@ -317,14 +321,13 @@ minethd::cn_hash_fun minethd::func_selector(bool bHaveAes, bool bNoPrefetch, boo std::bitset<3> digit; digit.set(0, !bNoPrefetch); digit.set(1, !bHaveAes); - //miner algo true = XMR, false = AEON - digit.set(2, useXMR); // define aeon settings -#if defined(CONF_NO_AEON) || defined(CONF_NO_XMR) +#if defined(CONF_NO_AEON) || defined(CONF_NO_MONERO) + // ignore 3rd bit if only on currency is active digit.set(2, 0); #else - digit.set(2, !useXMR); + digit.set(2, !mineMonero); #endif return func_table[digit.to_ulong()]; @@ -344,7 +347,7 @@ void minethd::work_main() uint32_t* piNonce; job_result result; - hash_fun = func_selector(::jconf::inst()->HaveHardwareAes(), bNoPrefetch, ::jconf::inst()->IsCurrencyXMR()); + hash_fun = func_selector(::jconf::inst()->HaveHardwareAes(), bNoPrefetch, ::jconf::inst()->IsCurrencyMonero()); ctx = minethd_alloc_ctx(); piHashVal = (uint64_t*)(result.bResult + 24); @@ -406,7 +409,7 @@ void minethd::work_main() cryptonight_free_ctx(ctx); } -minethd::cn_hash_fun_dbl minethd::func_dbl_selector(bool bHaveAes, bool bNoPrefetch, bool useXMR) +minethd::cn_hash_fun_dbl minethd::func_dbl_selector(bool bHaveAes, bool bNoPrefetch, bool mineMonero) { // We have two independent flag bits in the functions // therefore we will build a binary digit and select the @@ -414,13 +417,17 @@ minethd::cn_hash_fun_dbl minethd::func_dbl_selector(bool bHaveAes, bool bNoPrefe // Digit order SOFT_AES, NO_PREFETCH, MINER_ALGO static const cn_hash_fun_dbl func_table[] = { -#ifndef CONF_NO_XMR - cryptonight_double_hash<XMR_MASK, XMR_ITER, XMR_MEMORY, false, false>, - cryptonight_double_hash<XMR_MASK, XMR_ITER, XMR_MEMORY, false, true>, - cryptonight_double_hash<XMR_MASK, XMR_ITER, XMR_MEMORY, true, false>, - cryptonight_double_hash<XMR_MASK, XMR_ITER, XMR_MEMORY, true, true> + /* there will be 8 function entries if `CONF_NO_MONERO` and `CONF_NO_AEON` + * is not defined. If one is defined there will be 4 entries. + */ +#ifndef CONF_NO_MONERO + cryptonight_double_hash<MONERO_MASK, MONERO_ITER, MONERO_MEMORY, false, false>, + cryptonight_double_hash<MONERO_MASK, MONERO_ITER, MONERO_MEMORY, false, true>, + cryptonight_double_hash<MONERO_MASK, MONERO_ITER, MONERO_MEMORY, true, false>, + cryptonight_double_hash<MONERO_MASK, MONERO_ITER, MONERO_MEMORY, true, true> #endif -#if (!defined(CONF_NO_AEON)) && (!defined(CONF_NO_XMR)) +#if (!defined(CONF_NO_AEON)) && (!defined(CONF_NO_MONERO)) + // comma will be added only if Monero and Aeon is build , #endif #ifndef CONF_NO_AEON @@ -434,14 +441,13 @@ minethd::cn_hash_fun_dbl minethd::func_dbl_selector(bool bHaveAes, bool bNoPrefe std::bitset<3> digit; digit.set(0, !bNoPrefetch); digit.set(1, !bHaveAes); - //miner algo true = XMR, false = AEON - digit.set(2, useXMR); // define aeon settings -#if defined(CONF_NO_AEON) || defined(CONF_NO_XMR) +#if defined(CONF_NO_AEON) || defined(CONF_NO_MONERO) + // ignore 3rd bit if only on currency is active digit.set(2, 0); #else - digit.set(2, !useXMR); + digit.set(2, !mineMonero); #endif return func_table[digit.to_ulong()]; @@ -472,7 +478,7 @@ void minethd::double_work_main() uint32_t iNonce; job_result res; - hash_fun = func_dbl_selector(::jconf::inst()->HaveHardwareAes(), bNoPrefetch, ::jconf::inst()->IsCurrencyXMR()); + hash_fun = func_dbl_selector(::jconf::inst()->HaveHardwareAes(), bNoPrefetch, ::jconf::inst()->IsCurrencyMonero()); ctx0 = minethd_alloc_ctx(); ctx1 = minethd_alloc_ctx(); diff --git a/xmrstak/backend/cpu/minethd.hpp b/xmrstak/backend/cpu/minethd.hpp index 5bd8a4f..670ec8d 100644 --- a/xmrstak/backend/cpu/minethd.hpp +++ b/xmrstak/backend/cpu/minethd.hpp @@ -23,7 +23,7 @@ public: typedef void (*cn_hash_fun)(const void*, size_t, void*, cryptonight_ctx*); - static cn_hash_fun func_selector(bool bHaveAes, bool bNoPrefetch, bool useXMR); + static cn_hash_fun func_selector(bool bHaveAes, bool bNoPrefetch, bool mineMonero); static bool thd_setaffinity(std::thread::native_handle_type h, uint64_t cpu_id); static cryptonight_ctx* minethd_alloc_ctx(); @@ -31,7 +31,7 @@ public: private: typedef void (*cn_hash_fun_dbl)(const void*, size_t, void*, cryptonight_ctx* __restrict, cryptonight_ctx* __restrict); - static cn_hash_fun_dbl func_dbl_selector(bool bHaveAes, bool bNoPrefetch, bool useXMR); + static cn_hash_fun_dbl func_dbl_selector(bool bHaveAes, bool bNoPrefetch, bool mineMonero); minethd(miner_work& pWork, size_t iNo, bool double_work, bool no_prefetch, int64_t affinity); diff --git a/xmrstak/backend/cryptonight.hpp b/xmrstak/backend/cryptonight.hpp index 85e67d8..0ef5ae7 100644 --- a/xmrstak/backend/cryptonight.hpp +++ b/xmrstak/backend/cryptonight.hpp @@ -6,7 +6,7 @@ #define AEON_ITER 0x40000 // define xmr settings -#define XMR_MEMORY 2097152llu -#define XMR_MASK 0x1FFFF0 -#define XMR_ITER 0x80000 +#define MONERO_MEMORY 2097152llu +#define MONERO_MASK 0x1FFFF0 +#define MONERO_ITER 0x80000 diff --git a/xmrstak/backend/nvidia/minethd.cpp b/xmrstak/backend/nvidia/minethd.cpp index 237dcaf..0bc6214 100644 --- a/xmrstak/backend/nvidia/minethd.cpp +++ b/xmrstak/backend/nvidia/minethd.cpp @@ -32,7 +32,8 @@ #include "xmrstak/jconf.hpp" #include "xmrstak/misc/environment.hpp" #include "xmrstak/backend/cpu/hwlocMemory.hpp" -#include "../cryptonight.hpp" +#include "xmrstak/backend/cryptonight.hpp" +#include "xmrstak/misc/utility.hpp" #include <assert.h> #include <cmath> @@ -209,7 +210,7 @@ void minethd::work_main() uint64_t iCount = 0; cryptonight_ctx* cpu_ctx; cpu_ctx = cpu::minethd::minethd_alloc_ctx(); - cn_hash_fun hash_fun = cpu::minethd::func_selector(::jconf::inst()->HaveHardwareAes(), true /*bNoPrefetch*/, ::jconf::inst()->IsCurrencyXMR()); + cn_hash_fun hash_fun = cpu::minethd::func_selector(::jconf::inst()->HaveHardwareAes(), true /*bNoPrefetch*/, ::jconf::inst()->IsCurrencyMonero()); uint32_t iNonce; globalStates::inst().iConsumeCnt++; @@ -220,8 +221,8 @@ void minethd::work_main() std::exit(0); } - bool useXMR = ::jconf::inst()->GetCurrency().compare("xmr") == 0; - bool useAEON = ::jconf::inst()->GetCurrency().compare("aeon") == 0; + bool mineMonero = strcmp_i(::jconf::inst()->GetCurrency(), "monero"); + bool useAEON = strcmp_i(::jconf::inst()->GetCurrency(), "aeon"); while (bQuit == 0) { @@ -260,16 +261,16 @@ void minethd::work_main() uint32_t foundCount; cryptonight_extra_cpu_prepare(&ctx, iNonce); -#ifndef CONF_NO_XMR - if(useXMR) +#ifndef CONF_NO_MONERO + if(mineMonero) { - cryptonight_core_cpu_hash<XMR_ITER, XMR_MASK, 19>(&ctx); + cryptonight_core_cpu_hash<MONERO_ITER, MONERO_MASK, 19>(&ctx); } #endif #ifndef CONF_NO_AEON if(useAEON) { - cryptonight_core_cpu_hash<XMR_ITER, XMR_MASK, 18>(&ctx); + cryptonight_core_cpu_hash<MONERO_ITER, MONERO_MASK, 18>(&ctx); } #endif cryptonight_extra_cpu_final(&ctx, iNonce, oWork.iTarget, &foundCount, foundNonce); diff --git a/xmrstak/backend/nvidia/nvcc_code/cuda_extra.cu b/xmrstak/backend/nvidia/nvcc_code/cuda_extra.cu index 40dcc7e..abca489 100644 --- a/xmrstak/backend/nvidia/nvcc_code/cuda_extra.cu +++ b/xmrstak/backend/nvidia/nvcc_code/cuda_extra.cu @@ -5,7 +5,7 @@ #include <cuda_runtime.h> #include <device_functions.hpp> #include <algorithm> -#include "../../../jconf.hpp" +#include "xmrstak/jconf.hpp" #ifdef __CUDACC__ __constant__ @@ -190,9 +190,9 @@ extern "C" int cryptonight_extra_cpu_init(nvid_ctx* ctx) cudaDeviceSetCacheConfig(cudaFuncCachePreferL1); size_t hashMemSize; - if(::jconf::inst()->IsCurrencyXMR()) + if(::jconf::inst()->IsCurrencyMonero()) { - hashMemSize = XMR_MEMORY; + hashMemSize = MONERO_MEMORY; } else { @@ -355,9 +355,9 @@ extern "C" int cuda_get_deviceinfo(nvid_ctx* ctx) ctx->free_device_memory = freeMemory; size_t hashMemSize; - if(::jconf::inst()->IsCurrencyXMR()) + if(::jconf::inst()->IsCurrencyMonero()) { - hashMemSize = XMR_MEMORY; + hashMemSize = MONERO_MEMORY; } else { diff --git a/xmrstak/backend/nvidia/nvcc_code/cuda_extra.hpp b/xmrstak/backend/nvidia/nvcc_code/cuda_extra.hpp index c622110..055a8bd 100644 --- a/xmrstak/backend/nvidia/nvcc_code/cuda_extra.hpp +++ b/xmrstak/backend/nvidia/nvcc_code/cuda_extra.hpp @@ -1,6 +1,6 @@ #pragma once -#include "../../cryptonight.hpp" +#include "xmrstak/backend/cryptonight.hpp" #ifdef __INTELLISENSE__ #define __CUDA_ARCH__ 520 diff --git a/xmrstak/cli/cli-miner.cpp b/xmrstak/cli/cli-miner.cpp index 054e6db..c15ca56 100644 --- a/xmrstak/cli/cli-miner.cpp +++ b/xmrstak/cli/cli-miner.cpp @@ -31,6 +31,7 @@ #include "xmrstak/params.hpp" #include "xmrstak/misc/configEditor.hpp" #include "xmrstak/version.hpp" +#include "xmrstak/misc/utility.hpp" #ifndef CONF_NO_HTTPD # include "xmrstak/http/httpd.hpp" @@ -64,8 +65,8 @@ void help() cout<<" "<<endl; cout<<" -h, --help show this help"<<endl; cout<<" -c, --config FILE common miner configuration file"<<endl; -#if (!defined(CONF_NO_AEON)) && (!defined(CONF_NO_XMR)) - cout<<" --currency NAME currency to mine: xmr or aeon"<<endl; +#if (!defined(CONF_NO_AEON)) && (!defined(CONF_NO_MONERO)) + cout<<" --currency NAME currency to mine: monero or aeon"<<endl; #endif #ifndef CONF_NO_CPU cout<<" --noCPU disable the CPU miner backend"<<endl; @@ -250,13 +251,13 @@ int main(int argc, char *argv[]) { std::string tmp; #if defined(CONF_NO_AEON) - tmp = "xmr"; -#elif defined(CONF_NO_XMR) + tmp = "monero"; +#elif defined(CONF_NO_MONERO) tmp = "aeon"; #endif - while(tmp.compare("xmr") != 0 && tmp.compare("aeon") != 0) + while(xmrstak::strcmp_i(tmp, "monero") && xmrstak::strcmp_i(tmp, "aeon")) { - std::cout<<"- currency: 'xmr' or 'aeon'"<<std::endl; + std::cout<<"- currency: 'monero' or 'aeon'"<<std::endl; std::cin >> tmp; } currency = tmp; @@ -264,7 +265,7 @@ int main(int argc, char *argv[]) auto& pool = params::inst().poolURL; if(pool.empty()) { - if(currency.compare("xmr") != 0) + if(xmrstak::strcmp_i(currency, "monero")) std::cout<<"- pool address: e.g. pool.usxmrpool.com:3333"<<std::endl; else std::cout<<"- pool address: e.g. mine.aeon-pool.com:5555"<<std::endl; @@ -333,8 +334,8 @@ int main(int argc, char *argv[]) printer::inst()->print_str("'r' - results\n"); printer::inst()->print_str("'c' - connection\n"); printer::inst()->print_str("-------------------------------------------------------------------\n"); - if(::jconf::inst()->IsCurrencyXMR()) - printer::inst()->print_msg(L0,"Start mining: XMR"); + if(::jconf::inst()->IsCurrencyMonero()) + printer::inst()->print_msg(L0,"Start mining: MONERO"); else printer::inst()->print_msg(L0,"Start mining: AEON"); diff --git a/xmrstak/config.tpl b/xmrstak/config.tpl index 5567841..032d483 100644 --- a/xmrstak/config.tpl +++ b/xmrstak/config.tpl @@ -12,7 +12,7 @@ R"===( /* * currency to mine - * allowed values: 'xmr' or 'aeon' + * allowed values: 'monero' or 'aeon' */ "currency" : "CURRENCY", diff --git a/xmrstak/jconf.cpp b/xmrstak/jconf.cpp index fce1751..5ada0d6 100644 --- a/xmrstak/jconf.cpp +++ b/xmrstak/jconf.cpp @@ -27,6 +27,7 @@ #include "xmrstak/misc/console.hpp" #include "xmrstak/misc/jext.hpp" #include "xmrstak/misc/console.hpp" +#include "xmrstak/misc/utility.hpp" #include <stdio.h> #include <stdlib.h> @@ -157,14 +158,14 @@ const std::string jconf::GetCurrency() if(currency.empty()) currency = prv->configValues[sCurrency]->GetString(); if( -#ifndef CONF_NO_XMR - currency.compare("xmr") != 0 +#ifndef CONF_NO_MONERO + xmrstak::strcmp_i(currency, "monero") #else true #endif && #ifndef CONF_NO_AEON - currency.compare("aeon") != 0 + xmrstak::strcmp_i(currency, "aeon") #else true #endif @@ -176,9 +177,9 @@ const std::string jconf::GetCurrency() return currency; } -bool jconf::IsCurrencyXMR() +bool jconf::IsCurrencyMonero() { - if(::jconf::inst()->GetCurrency().compare("xmr") == 0) + if(xmrstak::strcmp_i(::jconf::inst()->GetCurrency(), "monero")) { return true; } diff --git a/xmrstak/jconf.hpp b/xmrstak/jconf.hpp index 96c7691..48b47b5 100644 --- a/xmrstak/jconf.hpp +++ b/xmrstak/jconf.hpp @@ -42,7 +42,7 @@ public: const char* GetPoolPwd(); const char* GetWalletAddress(); const std::string GetCurrency(); - bool IsCurrencyXMR(); + bool IsCurrencyMonero(); uint64_t GetVerboseLevel(); uint64_t GetAutohashTime(); diff --git a/xmrstak/misc/executor.cpp b/xmrstak/misc/executor.cpp index 885961a..b469dc2 100644 --- a/xmrstak/misc/executor.cpp +++ b/xmrstak/misc/executor.cpp @@ -21,7 +21,7 @@ * */ -#include "../jconf.hpp" +#include "xmrstak/jconf.hpp" #include "executor.hpp" #include "xmrstak/net/jpsock.hpp" @@ -184,7 +184,7 @@ void executor::on_sock_ready(size_t pool_id) if(pool_id == dev_pool_id) { - if(::jconf::inst()->IsCurrencyXMR()) + if(::jconf::inst()->IsCurrencyMonero()) { if(!pool->cmd_login("", "")) pool->disconnect(); @@ -362,7 +362,7 @@ void executor::on_switch_pool(size_t pool_id) // as we never receive further events printer::inst()->print_msg(L1, "Connecting to dev pool..."); std::string dev_pool_addr; - if(::jconf::inst()->IsCurrencyXMR()) + if(::jconf::inst()->IsCurrencyMonero()) dev_pool_addr = jconf::inst()->GetTlsSetting() ? "donate.xmr-stak.net:6666" : "donate.xmr-stak.net:3333"; else dev_pool_addr = jconf::inst()->GetTlsSetting() ? "mine.aeon-pool.com:443" : "mine.aeon-pool.com:5555"; diff --git a/xmrstak/misc/utility.cpp b/xmrstak/misc/utility.cpp new file mode 100644 index 0000000..3b1369a --- /dev/null +++ b/xmrstak/misc/utility.cpp @@ -0,0 +1,21 @@ +#include <string> +#include <algorithm> + + +namespace xmrstak +{ + bool strcmp_i(const std::string& str1, const std::string& str2) + { + if(str1.size() != str2.size()) + return false; + else + return (str1.empty() | str2.empty()) ? + false : + std::equal(str1.begin(), str1.end(),str2.begin(), + [](char c1, char c2) + { + return ::tolower(c1) == ::tolower(c2); + } + ); + } +} // namepsace xmrstak diff --git a/xmrstak/misc/utility.hpp b/xmrstak/misc/utility.hpp new file mode 100644 index 0000000..b2e841d --- /dev/null +++ b/xmrstak/misc/utility.hpp @@ -0,0 +1,12 @@ +#pragma once + +#include <string> + +namespace xmrstak +{ + /** case insensitive string compare + * + * @return true if both strings are equal, else false + */ + bool strcmp_i(const std::string& str1, const std::string& str2); +} // namepsace xmrstak -- GitLab