From dc87ef60620b48ef9b3482583380850ff32bcc2d Mon Sep 17 00:00:00 2001
From: XMRig <support@xmrig.com>
Date: Sat, 13 Jul 2019 19:10:17 +0700
Subject: [PATCH] Removed xmrig.h.

---
 CMakeLists.txt                        |  1 -
 src/Mem_unix.cpp                      |  1 -
 src/Mem_win.cpp                       |  1 -
 src/base/kernel/config/BaseConfig.h   |  1 -
 src/common/xmrig.h                    | 78 ---------------------------
 src/core/config/Config.cpp            | 20 +++----
 src/core/config/Config.h              |  9 ++--
 src/crypto/cn/CnHash.h                | 16 +++++-
 src/crypto/cn/CryptoNight_monero.h    |  1 -
 src/crypto/common/Assembly.h          |  1 -
 src/net/strategies/DonateStrategy.cpp |  1 -
 src/workers/CpuThreadLegacy.cpp       | 38 ++++++-------
 src/workers/CpuThreadLegacy.h         | 11 ++--
 13 files changed, 53 insertions(+), 126 deletions(-)
 delete mode 100644 src/common/xmrig.h

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a6adda763..48946c7ed 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -27,7 +27,6 @@ set(HEADERS
     "${HEADERS_BACKEND}"
     src/api/interfaces/IApiListener.h
     src/App.h
-    src/common/xmrig.h
     src/core/config/Config_default.h
     src/core/config/Config_platform.h
     src/core/config/Config.h
diff --git a/src/Mem_unix.cpp b/src/Mem_unix.cpp
index 9bdce0f5a..4dc13e939 100644
--- a/src/Mem_unix.cpp
+++ b/src/Mem_unix.cpp
@@ -29,7 +29,6 @@
 
 
 #include "base/io/log/Log.h"
-#include "common/xmrig.h"
 #include "crypto/common/portable/mm_malloc.h"
 #include "crypto/common/VirtualMemory.h"
 #include "crypto/cn/CryptoNight.h"
diff --git a/src/Mem_win.cpp b/src/Mem_win.cpp
index 34460e9d0..56b4521d0 100644
--- a/src/Mem_win.cpp
+++ b/src/Mem_win.cpp
@@ -31,7 +31,6 @@
 
 
 #include "base/io/log/Log.h"
-#include "common/xmrig.h"
 #include "crypto/common/portable/mm_malloc.h"
 #include "crypto/common/VirtualMemory.h"
 #include "crypto/cn/CryptoNight.h"
diff --git a/src/base/kernel/config/BaseConfig.h b/src/base/kernel/config/BaseConfig.h
index 48d7c2cfc..c5cf29a36 100644
--- a/src/base/kernel/config/BaseConfig.h
+++ b/src/base/kernel/config/BaseConfig.h
@@ -29,7 +29,6 @@
 #include "base/kernel/interfaces/IConfig.h"
 #include "base/net/http/Http.h"
 #include "base/net/stratum/Pools.h"
-#include "common/xmrig.h"
 
 
 struct option;
diff --git a/src/common/xmrig.h b/src/common/xmrig.h
deleted file mode 100644
index 169c4c1fa..000000000
--- a/src/common/xmrig.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* XMRig
- * Copyright 2010      Jeff Garzik <jgarzik@pobox.com>
- * Copyright 2012-2014 pooler      <pooler@litecoinpool.org>
- * Copyright 2014      Lucas Jones <https://github.com/lucasjones>
- * Copyright 2014-2016 Wolf9466    <https://github.com/OhGodAPet>
- * Copyright 2016      Jay D Dee   <jayddee246@gmail.com>
- * Copyright 2017-2018 XMR-Stak    <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
- * Copyright 2018-2019 SChernykh   <https://github.com/SChernykh>
- * Copyright 2016-2019 XMRig       <https://github.com/xmrig>, <support@xmrig.com>
- *
- *   This program is free software: you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation, either version 3 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef XMRIG_XMRIG_H
-#define XMRIG_XMRIG_H
-
-
-namespace xmrig
-{
-
-
-//--av=1 For CPUs with hardware AES.
-//--av=2 Lower power mode (double hash) of 1.
-//--av=3 Software AES implementation.
-//--av=4 Lower power mode (double hash) of 3.
-enum AlgoVariant {
-    AV_AUTO,        // --av=0 Automatic mode.
-    AV_SINGLE,      // --av=1  Single hash mode
-    AV_DOUBLE,      // --av=2  Double hash mode
-    AV_SINGLE_SOFT, // --av=3  Single hash mode (Software AES)
-    AV_DOUBLE_SOFT, // --av=4  Double hash mode (Software AES)
-    AV_TRIPLE,      // --av=5  Triple hash mode
-    AV_QUAD,        // --av=6  Quard hash mode
-    AV_PENTA,       // --av=7  Penta hash mode
-    AV_TRIPLE_SOFT, // --av=8  Triple hash mode (Software AES)
-    AV_QUAD_SOFT,   // --av=9  Quard hash mode  (Software AES)
-    AV_PENTA_SOFT,  // --av=10 Penta hash mode  (Software AES)
-    AV_MAX
-};
-
-
-enum AlgoVerify {
-    VERIFY_HW_AES   = 1,
-    VERIFY_SOFT_AES = 2
-};
-
-
-enum AesMode {
-    AES_AUTO,
-    AES_HW,
-    AES_SOFT
-};
-
-
-enum OclVendor {
-    OCL_VENDOR_UNKNOWN = -2,
-    OCL_VENDOR_MANUAL  = -1,
-    OCL_VENDOR_AMD     = 0,
-    OCL_VENDOR_NVIDIA  = 1,
-    OCL_VENDOR_INTEL   = 2
-};
-
-
-} /* namespace xmrig */
-
-
-#endif /* XMRIG_XMRIG_H */
diff --git a/src/core/config/Config.cpp b/src/core/config/Config.cpp
index 784e171c7..02ef9c90b 100644
--- a/src/core/config/Config.cpp
+++ b/src/core/config/Config.cpp
@@ -40,7 +40,7 @@
 
 
 xmrig::Config::Config() :
-    m_algoVariant(AV_AUTO),
+    m_algoVariant(CnHash::AV_AUTO),
     m_shouldSave(false)
 {
 }
@@ -131,7 +131,7 @@ bool xmrig::Config::finalize()
         return true;
     }
 
-    const AlgoVariant av = getAlgoVariant();
+    const CnHash::AlgoVariant av = getAlgoVariant();
     m_threads.mode = m_threads.count ? Simple : Automatic;
 
     const size_t size = CpuThreadLegacy::multiway(av) * CnAlgo<>::memory(algorithm) / 1024; // FIXME MEMORY
@@ -158,8 +158,8 @@ bool xmrig::Config::finalize()
 
 void xmrig::Config::setAlgoVariant(int av)
 {
-    if (av >= AV_AUTO && av < AV_MAX) {
-        m_algoVariant = static_cast<AlgoVariant>(av);
+    if (av >= CnHash::AV_AUTO && av < CnHash::AV_MAX) {
+        m_algoVariant = static_cast<CnHash::AlgoVariant>(av);
     }
 }
 
@@ -192,7 +192,7 @@ void xmrig::Config::setThreads(const rapidjson::Value &threads)
 }
 
 
-xmrig::AlgoVariant xmrig::Config::getAlgoVariant() const
+xmrig::CnHash::AlgoVariant xmrig::Config::getAlgoVariant() const
 {
 #   ifdef XMRIG_ALGO_CN_LITE
 //    if (m_algorithm.algo() == xmrig::CRYPTONIGHT_LITE) { // FIXME
@@ -200,8 +200,8 @@ xmrig::AlgoVariant xmrig::Config::getAlgoVariant() const
 //    }
 #   endif
 
-    if (m_algoVariant <= AV_AUTO || m_algoVariant >= AV_MAX) {
-        return Cpu::info()->hasAES() ? AV_SINGLE : AV_SINGLE_SOFT;
+    if (m_algoVariant <= CnHash::AV_AUTO || m_algoVariant >= CnHash::AV_MAX) {
+        return Cpu::info()->hasAES() ? CnHash::AV_SINGLE : CnHash::AV_SINGLE_SOFT;
     }
 
 //    if (m_safe && !Cpu::info()->hasAES() && m_algoVariant <= AV_DOUBLE) {
@@ -213,10 +213,10 @@ xmrig::AlgoVariant xmrig::Config::getAlgoVariant() const
 
 
 #ifdef XMRIG_ALGO_CN_LITE
-xmrig::AlgoVariant xmrig::Config::getAlgoVariantLite() const
+xmrig::CnHash::AlgoVariant xmrig::Config::getAlgoVariantLite() const
 {
-    if (m_algoVariant <= AV_AUTO || m_algoVariant >= AV_MAX) {
-        return Cpu::info()->hasAES() ? AV_DOUBLE : AV_DOUBLE_SOFT;
+    if (m_algoVariant <= CnHash::AV_AUTO || m_algoVariant >= CnHash::AV_MAX) {
+        return Cpu::info()->hasAES() ? CnHash::AV_DOUBLE : CnHash::AV_DOUBLE_SOFT;
     }
 
 //    if (m_safe && !Cpu::info()->hasAES() && m_algoVariant <= AV_DOUBLE) {
diff --git a/src/core/config/Config.h b/src/core/config/Config.h
index 7b7658921..aa547796f 100644
--- a/src/core/config/Config.h
+++ b/src/core/config/Config.h
@@ -32,7 +32,6 @@
 
 #include "backend/cpu/CpuConfig.h"
 #include "base/kernel/config/BaseConfig.h"
-#include "common/xmrig.h"
 #include "rapidjson/fwd.h"
 #include "workers/CpuThreadLegacy.h"
 
@@ -58,7 +57,7 @@ public:
     bool read(const IJsonReader &reader, const char *fileName) override;
     void getJSON(rapidjson::Document &doc) const override;
 
-    inline AlgoVariant algoVariant() const               { return m_algoVariant; }
+    inline CnHash::AlgoVariant algoVariant() const       { return m_algoVariant; }
     inline bool isShouldSave() const                     { return (m_shouldSave || m_upgrade || m_cpu.isShouldSave()) && isAutoSave(); }
     inline const CpuConfig &cpu() const                  { return m_cpu; }
     inline const std::vector<IThread *> &threads() const { return m_threads.list; }
@@ -70,9 +69,9 @@ private:
     void setAlgoVariant(int av);
     void setThreads(const rapidjson::Value &threads);
 
-    AlgoVariant getAlgoVariant() const;
+    CnHash::AlgoVariant getAlgoVariant() const;
 #   ifdef XMRIG_ALGO_CN_LITE
-    AlgoVariant getAlgoVariantLite() const;
+    CnHash::AlgoVariant getAlgoVariantLite() const;
 #   endif
 
     struct Threads
@@ -87,7 +86,7 @@ private:
     };
 
 
-    AlgoVariant m_algoVariant;
+    CnHash::AlgoVariant m_algoVariant;
     bool m_shouldSave;
     CpuConfig m_cpu;
     Threads m_threads;
diff --git a/src/crypto/cn/CnHash.h b/src/crypto/cn/CnHash.h
index b57bff4cd..fdfcc9f3d 100644
--- a/src/crypto/cn/CnHash.h
+++ b/src/crypto/cn/CnHash.h
@@ -31,7 +31,6 @@
 #include <stdint.h>
 
 
-#include "common/xmrig.h"
 #include "crypto/cn/CnAlgo.h"
 #include "crypto/common/Assembly.h"
 
@@ -49,6 +48,21 @@ typedef void (*cn_mainloop_fun)(cryptonight_ctx **ctx);
 class CnHash
 {
 public:
+    enum AlgoVariant {
+        AV_AUTO,        // --av=0 Automatic mode.
+        AV_SINGLE,      // --av=1  Single hash mode
+        AV_DOUBLE,      // --av=2  Double hash mode
+        AV_SINGLE_SOFT, // --av=3  Single hash mode (Software AES)
+        AV_DOUBLE_SOFT, // --av=4  Double hash mode (Software AES)
+        AV_TRIPLE,      // --av=5  Triple hash mode
+        AV_QUAD,        // --av=6  Quard hash mode
+        AV_PENTA,       // --av=7  Penta hash mode
+        AV_TRIPLE_SOFT, // --av=8  Triple hash mode (Software AES)
+        AV_QUAD_SOFT,   // --av=9  Quard hash mode  (Software AES)
+        AV_PENTA_SOFT,  // --av=10 Penta hash mode  (Software AES)
+        AV_MAX
+    };
+
     CnHash();
 
     cn_hash_fun fn(const Algorithm &algorithm, AlgoVariant av, Assembly::Id assembly) const;
diff --git a/src/crypto/cn/CryptoNight_monero.h b/src/crypto/cn/CryptoNight_monero.h
index 13948dcd9..dc012bdc7 100644
--- a/src/crypto/cn/CryptoNight_monero.h
+++ b/src/crypto/cn/CryptoNight_monero.h
@@ -178,7 +178,6 @@
 #endif
 #endif
 
-#include "common/xmrig.h"
 #include "crypto/cn/r/variant4_random_math.h"
 
 #define VARIANT4_RANDOM_MATH_INIT(part) \
diff --git a/src/crypto/common/Assembly.h b/src/crypto/common/Assembly.h
index afd8a5366..5ea29e11e 100644
--- a/src/crypto/common/Assembly.h
+++ b/src/crypto/common/Assembly.h
@@ -26,7 +26,6 @@
 #define XMRIG_ASSEMBLY_H
 
 
-#include "common/xmrig.h"
 #include "rapidjson/fwd.h"
 
 
diff --git a/src/net/strategies/DonateStrategy.cpp b/src/net/strategies/DonateStrategy.cpp
index 78c7acc5d..2d0a5b43e 100644
--- a/src/net/strategies/DonateStrategy.cpp
+++ b/src/net/strategies/DonateStrategy.cpp
@@ -33,7 +33,6 @@
 #include "base/net/stratum/strategies/SinglePoolStrategy.h"
 #include "base/tools/Buffer.h"
 #include "base/tools/Timer.h"
-#include "common/xmrig.h"
 #include "core/config/Config.h"
 #include "core/Controller.h"
 #include "crypto/common/keccak.h"
diff --git a/src/workers/CpuThreadLegacy.cpp b/src/workers/CpuThreadLegacy.cpp
index df9b99041..b8e338397 100644
--- a/src/workers/CpuThreadLegacy.cpp
+++ b/src/workers/CpuThreadLegacy.cpp
@@ -38,7 +38,7 @@
 static const xmrig::CnHash cnHash;
 
 
-xmrig::CpuThreadLegacy::CpuThreadLegacy(size_t index, Algorithm algorithm, AlgoVariant av, Multiway multiway, int64_t affinity, int priority, bool softAES, bool prefetch, Assembly assembly) :
+xmrig::CpuThreadLegacy::CpuThreadLegacy(size_t index, Algorithm algorithm, CnHash::AlgoVariant av, Multiway multiway, int64_t affinity, int priority, bool softAES, bool prefetch, Assembly assembly) :
     m_algorithm(algorithm),
     m_av(av),
     m_assembly(assembly),
@@ -59,15 +59,15 @@ xmrig::cn_hash_fun xmrig::CpuThreadLegacy::fn(const Algorithm &algorithm) const
 
 
 
-bool xmrig::CpuThreadLegacy::isSoftAES(AlgoVariant av)
+bool xmrig::CpuThreadLegacy::isSoftAES(CnHash::AlgoVariant av)
 {
-    return av == AV_SINGLE_SOFT || av == AV_DOUBLE_SOFT || av > AV_PENTA;
+    return av == CnHash::AV_SINGLE_SOFT || av == CnHash::AV_DOUBLE_SOFT || av > CnHash::AV_PENTA;
 }
 
 
-xmrig::CpuThreadLegacy *xmrig::CpuThreadLegacy::createFromAV(size_t index, const Algorithm &algorithm, AlgoVariant av, int64_t affinity, int priority, Assembly assembly)
+xmrig::CpuThreadLegacy *xmrig::CpuThreadLegacy::createFromAV(size_t index, const Algorithm &algorithm, CnHash::AlgoVariant av, int64_t affinity, int priority, Assembly assembly)
 {
-    assert(av > AV_AUTO && av < AV_MAX);
+    assert(av > CnHash::AV_AUTO && av < CnHash::AV_MAX);
 
     int64_t cpuId = -1L;
 
@@ -94,7 +94,7 @@ xmrig::CpuThreadLegacy *xmrig::CpuThreadLegacy::createFromAV(size_t index, const
 
 xmrig::CpuThreadLegacy *xmrig::CpuThreadLegacy::createFromData(size_t index, const Algorithm &algorithm, const CpuThreadLegacy::Data &data, int priority, bool softAES)
 {
-    int av                  = AV_AUTO;
+    int av                  = CnHash::AV_AUTO;
     const Multiway multiway = data.multiway;
 
     if (multiway <= DoubleWay) {
@@ -104,9 +104,9 @@ xmrig::CpuThreadLegacy *xmrig::CpuThreadLegacy::createFromData(size_t index, con
         av = softAES ? (multiway + 5) : (multiway + 2);
     }
 
-    assert(av > AV_AUTO && av < AV_MAX);
+    assert(av > CnHash::AV_AUTO && av < CnHash::AV_MAX);
 
-    return new CpuThreadLegacy(index, algorithm, static_cast<AlgoVariant>(av), multiway, data.affinity, priority, softAES, false, data.assembly);
+    return new CpuThreadLegacy(index, algorithm, static_cast<CnHash::AlgoVariant>(av), multiway, data.affinity, priority, softAES, false, data.assembly);
 }
 
 
@@ -140,27 +140,27 @@ xmrig::CpuThreadLegacy::Data xmrig::CpuThreadLegacy::parse(const rapidjson::Valu
 }
 
 
-xmrig::IThread::Multiway xmrig::CpuThreadLegacy::multiway(AlgoVariant av)
+xmrig::IThread::Multiway xmrig::CpuThreadLegacy::multiway(CnHash::AlgoVariant av)
 {
     switch (av) {
-    case AV_SINGLE:
-    case AV_SINGLE_SOFT:
+    case CnHash::AV_SINGLE:
+    case CnHash::AV_SINGLE_SOFT:
         return SingleWay;
 
-    case AV_DOUBLE_SOFT:
-    case AV_DOUBLE:
+    case CnHash::AV_DOUBLE_SOFT:
+    case CnHash::AV_DOUBLE:
         return DoubleWay;
 
-    case AV_TRIPLE_SOFT:
-    case AV_TRIPLE:
+    case CnHash::AV_TRIPLE_SOFT:
+    case CnHash::AV_TRIPLE:
         return TripleWay;
 
-    case AV_QUAD_SOFT:
-    case AV_QUAD:
+    case CnHash::AV_QUAD_SOFT:
+    case CnHash::AV_QUAD:
         return QuadWay;
 
-    case AV_PENTA_SOFT:
-    case AV_PENTA:
+    case CnHash::AV_PENTA_SOFT:
+    case CnHash::AV_PENTA:
         return PentaWay;
 
     default:
diff --git a/src/workers/CpuThreadLegacy.h b/src/workers/CpuThreadLegacy.h
index ed69d8ac7..4553295c7 100644
--- a/src/workers/CpuThreadLegacy.h
+++ b/src/workers/CpuThreadLegacy.h
@@ -26,7 +26,6 @@
 #define XMRIG_CPUTHREADLEGACY_H
 
 
-#include "common/xmrig.h"
 #include "crypto/cn/CnHash.h"
 #include "interfaces/IThread.h"
 
@@ -59,15 +58,15 @@ public:
     };
 
 
-    CpuThreadLegacy(size_t index, Algorithm algorithm, AlgoVariant av, Multiway multiway, int64_t affinity, int priority, bool softAES, bool prefetch, Assembly assembly);
+    CpuThreadLegacy(size_t index, Algorithm algorithm, CnHash::AlgoVariant av, Multiway multiway, int64_t affinity, int priority, bool softAES, bool prefetch, Assembly assembly);
 
     cn_hash_fun fn(const Algorithm &algorithm) const;
 
-    static bool isSoftAES(AlgoVariant av);
-    static CpuThreadLegacy *createFromAV(size_t index, const Algorithm &algorithm, AlgoVariant av, int64_t affinity, int priority, Assembly assembly);
+    static bool isSoftAES(CnHash::AlgoVariant av);
+    static CpuThreadLegacy *createFromAV(size_t index, const Algorithm &algorithm, CnHash::AlgoVariant av, int64_t affinity, int priority, Assembly assembly);
     static CpuThreadLegacy *createFromData(size_t index, const Algorithm &algorithm, const CpuThreadLegacy::Data &data, int priority, bool softAES);
     static Data parse(const rapidjson::Value &object);
-    static Multiway multiway(AlgoVariant av);
+    static Multiway multiway(CnHash::AlgoVariant av);
 
     inline bool isPrefetch() const               { return m_prefetch; }
     inline bool isSoftAES() const                { return m_softAES; }
@@ -92,7 +91,7 @@ protected:
 
 private:
     const Algorithm m_algorithm;
-    const AlgoVariant m_av;
+    const CnHash::AlgoVariant m_av;
     const Assembly m_assembly;
     const bool m_prefetch;
     const bool m_softAES;