Sync changes with AMD miner.
This commit is contained in:
parent
e8d6514bd3
commit
f7b029eb05
9 changed files with 217 additions and 3 deletions
|
@ -29,6 +29,7 @@ set(HEADERS
|
||||||
src/common/interfaces/IStrategy.h
|
src/common/interfaces/IStrategy.h
|
||||||
src/common/interfaces/IStrategyListener.h
|
src/common/interfaces/IStrategyListener.h
|
||||||
src/common/interfaces/IWatcherListener.h
|
src/common/interfaces/IWatcherListener.h
|
||||||
|
src/common/log/BasicLog.h
|
||||||
src/common/log/ConsoleLog.h
|
src/common/log/ConsoleLog.h
|
||||||
src/common/log/FileLog.h
|
src/common/log/FileLog.h
|
||||||
src/common/log/Log.h
|
src/common/log/Log.h
|
||||||
|
@ -94,6 +95,7 @@ set(SOURCES
|
||||||
src/common/Console.cpp
|
src/common/Console.cpp
|
||||||
src/common/crypto/Algorithm.cpp
|
src/common/crypto/Algorithm.cpp
|
||||||
src/common/crypto/keccak.cpp
|
src/common/crypto/keccak.cpp
|
||||||
|
src/common/log/BasicLog.cpp
|
||||||
src/common/log/ConsoleLog.cpp
|
src/common/log/ConsoleLog.cpp
|
||||||
src/common/log/FileLog.cpp
|
src/common/log/FileLog.cpp
|
||||||
src/common/log/Log.cpp
|
src/common/log/Log.cpp
|
||||||
|
|
|
@ -41,6 +41,12 @@ inline void keccak(const uint8_t *in, size_t inlen, uint8_t *md)
|
||||||
keccak(in, static_cast<int>(inlen), md, 200);
|
keccak(in, static_cast<int>(inlen), md, 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
inline void keccak(const char *in, size_t inlen, uint8_t *md)
|
||||||
|
{
|
||||||
|
keccak(reinterpret_cast<const uint8_t *>(in), static_cast<int>(inlen), md, 200);
|
||||||
|
}
|
||||||
|
|
||||||
// update the state
|
// update the state
|
||||||
void keccakf(uint64_t st[25], int norounds);
|
void keccakf(uint64_t st[25], int norounds);
|
||||||
|
|
||||||
|
|
|
@ -83,6 +83,9 @@ public:
|
||||||
OclAffinity = 1401,
|
OclAffinity = 1401,
|
||||||
OclDevices = 1402,
|
OclDevices = 1402,
|
||||||
OclLaunch = 1403,
|
OclLaunch = 1403,
|
||||||
|
OclCache = 1404,
|
||||||
|
OclPrint = 1405,
|
||||||
|
OclLoader = 1406,
|
||||||
|
|
||||||
// xmrig-proxy
|
// xmrig-proxy
|
||||||
AccessLogFileKey = 'A',
|
AccessLogFileKey = 'A',
|
||||||
|
|
89
src/common/log/BasicLog.cpp
Normal file
89
src/common/log/BasicLog.cpp
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
/* 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 2016-2018 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
# include <winsock2.h>
|
||||||
|
# include <windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#include "common/log/BasicLog.h"
|
||||||
|
#include "common/log/Log.h"
|
||||||
|
|
||||||
|
|
||||||
|
BasicLog::BasicLog()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BasicLog::message(Level level, const char* fmt, va_list args)
|
||||||
|
{
|
||||||
|
time_t now = time(nullptr);
|
||||||
|
tm stime;
|
||||||
|
|
||||||
|
# ifdef _WIN32
|
||||||
|
localtime_s(&stime, &now);
|
||||||
|
# else
|
||||||
|
localtime_r(&now, &stime);
|
||||||
|
# endif
|
||||||
|
|
||||||
|
snprintf(m_fmt, sizeof(m_fmt) - 1, "[%d-%02d-%02d %02d:%02d:%02d]%s %s%s",
|
||||||
|
stime.tm_year + 1900,
|
||||||
|
stime.tm_mon + 1,
|
||||||
|
stime.tm_mday,
|
||||||
|
stime.tm_hour,
|
||||||
|
stime.tm_min,
|
||||||
|
stime.tm_sec,
|
||||||
|
Log::colorByLevel(level, false),
|
||||||
|
fmt,
|
||||||
|
Log::endl(false)
|
||||||
|
);
|
||||||
|
|
||||||
|
print(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BasicLog::text(const char* fmt, va_list args)
|
||||||
|
{
|
||||||
|
snprintf(m_fmt, sizeof(m_fmt) - 1, "%s%s", fmt, Log::endl(false));
|
||||||
|
|
||||||
|
print(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BasicLog::print(va_list args)
|
||||||
|
{
|
||||||
|
if (vsnprintf(m_buf, sizeof(m_buf) - 1, m_fmt, args) <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
fputs(m_buf, stdout);
|
||||||
|
fflush(stdout);
|
||||||
|
}
|
55
src/common/log/BasicLog.h
Normal file
55
src/common/log/BasicLog.h
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
/* 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 2016-2018 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 __BASICLOG_H__
|
||||||
|
#define __BASICLOG_H__
|
||||||
|
|
||||||
|
|
||||||
|
#include <uv.h>
|
||||||
|
|
||||||
|
|
||||||
|
#include "common/interfaces/ILogBackend.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace xmrig {
|
||||||
|
class Controller;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class BasicLog : public ILogBackend
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
BasicLog();
|
||||||
|
|
||||||
|
void message(Level level, const char *fmt, va_list args) override;
|
||||||
|
void text(const char *fmt, va_list args) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool isWritable() const;
|
||||||
|
void print(va_list args);
|
||||||
|
|
||||||
|
char m_buf[kBufferSize];
|
||||||
|
char m_fmt[256];
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* __BASICLOG_H__ */
|
|
@ -30,6 +30,7 @@
|
||||||
|
|
||||||
|
|
||||||
#include "common/interfaces/ILogBackend.h"
|
#include "common/interfaces/ILogBackend.h"
|
||||||
|
#include "common/log/BasicLog.h"
|
||||||
#include "common/log/Log.h"
|
#include "common/log/Log.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -109,6 +110,14 @@ const char *Log::endl(bool isColors)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Log::defaultInit()
|
||||||
|
{
|
||||||
|
m_self = new Log();
|
||||||
|
|
||||||
|
add(new BasicLog());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Log::~Log()
|
Log::~Log()
|
||||||
{
|
{
|
||||||
for (auto backend : m_backends) {
|
for (auto backend : m_backends) {
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
class Log
|
class Log
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static inline Log* i() { assert(m_self != nullptr); return m_self; }
|
static inline Log* i() { if (!m_self) { defaultInit(); } return m_self; }
|
||||||
static inline void add(ILogBackend *backend) { i()->m_backends.push_back(backend); }
|
static inline void add(ILogBackend *backend) { i()->m_backends.push_back(backend); }
|
||||||
static inline void init() { if (!m_self) { new Log(); } }
|
static inline void init() { if (!m_self) { new Log(); } }
|
||||||
static inline void release() { assert(m_self != nullptr); delete m_self; }
|
static inline void release() { assert(m_self != nullptr); delete m_self; }
|
||||||
|
@ -46,6 +46,7 @@ public:
|
||||||
|
|
||||||
static const char *colorByLevel(ILogBackend::Level level, bool isColors = true);
|
static const char *colorByLevel(ILogBackend::Level level, bool isColors = true);
|
||||||
static const char *endl(bool isColors = true);
|
static const char *endl(bool isColors = true);
|
||||||
|
static void defaultInit();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
inline Log() {
|
inline Log() {
|
||||||
|
@ -68,6 +69,8 @@ private:
|
||||||
#define RED(x) "\x1B[0;31m" x "\x1B[0m"
|
#define RED(x) "\x1B[0;31m" x "\x1B[0m"
|
||||||
#define GREEN_BOLD(x) "\x1B[1;32m" x "\x1B[0m"
|
#define GREEN_BOLD(x) "\x1B[1;32m" x "\x1B[0m"
|
||||||
#define GREEN(x) "\x1B[0;32m" x "\x1B[0m"
|
#define GREEN(x) "\x1B[0;32m" x "\x1B[0m"
|
||||||
|
#define YELLOW(x) "\x1B[0;33m" x "\x1B[0m"
|
||||||
|
#define YELLOW_BOLD(x) "\x1B[1;33m" x "\x1B[0m"
|
||||||
#define MAGENTA_BOLD(x) "\x1B[1;35m" x "\x1B[0m"
|
#define MAGENTA_BOLD(x) "\x1B[1;35m" x "\x1B[0m"
|
||||||
#define MAGENTA(x) "\x1B[0;35m" x "\x1B[0m"
|
#define MAGENTA(x) "\x1B[0;35m" x "\x1B[0m"
|
||||||
#define CYAN_BOLD(x) "\x1B[1;36m" x "\x1B[0m"
|
#define CYAN_BOLD(x) "\x1B[1;36m" x "\x1B[0m"
|
||||||
|
|
47
src/common/utils/timestamp.h
Normal file
47
src/common/utils/timestamp.h
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
/* 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 2016-2018 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 __TIMESTAMP_H__
|
||||||
|
#define __TIMESTAMP_H__
|
||||||
|
|
||||||
|
|
||||||
|
#include <chrono>
|
||||||
|
|
||||||
|
|
||||||
|
namespace xmrig {
|
||||||
|
|
||||||
|
|
||||||
|
int64_t currentMSecsSinceEpoch()
|
||||||
|
{
|
||||||
|
using namespace std::chrono;
|
||||||
|
if (high_resolution_clock::is_steady) {
|
||||||
|
return time_point_cast<milliseconds>(high_resolution_clock::now()).time_since_epoch().count();
|
||||||
|
}
|
||||||
|
|
||||||
|
return time_point_cast<milliseconds>(steady_clock::now()).time_since_epoch().count();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} /* namespace xmrig */
|
||||||
|
|
||||||
|
#endif /* __TIMESTAMP_H__ */
|
|
@ -33,7 +33,7 @@ enum Algo {
|
||||||
INVALID_ALGO = -1,
|
INVALID_ALGO = -1,
|
||||||
CRYPTONIGHT, /* CryptoNight (Monero) */
|
CRYPTONIGHT, /* CryptoNight (Monero) */
|
||||||
CRYPTONIGHT_LITE, /* CryptoNight-Lite (AEON) */
|
CRYPTONIGHT_LITE, /* CryptoNight-Lite (AEON) */
|
||||||
CRYPTONIGHT_HEAVY /* CryptoNight-Heavy (SUMO) */
|
CRYPTONIGHT_HEAVY /* CryptoNight-Heavy (RYO) */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ enum Variant {
|
||||||
VARIANT_XTL = 3, // Modified CryptoNight variant 1 (Stellite only)
|
VARIANT_XTL = 3, // Modified CryptoNight variant 1 (Stellite only)
|
||||||
VARIANT_MSR = 4, // Modified CryptoNight variant 1 (Masari only)
|
VARIANT_MSR = 4, // Modified CryptoNight variant 1 (Masari only)
|
||||||
VARIANT_XHV = 5, // Modified CryptoNight-Heavy (Haven Protocol only)
|
VARIANT_XHV = 5, // Modified CryptoNight-Heavy (Haven Protocol only)
|
||||||
VARIANT_XAO = 6, // Modified CryptoNight variant 1 (Alloy only)
|
VARIANT_XAO = 6, // Modified CryptoNight variant 0 (Alloy only)
|
||||||
VARIANT_RTO = 7, // Modified CryptoNight variant 1 (Arto only)
|
VARIANT_RTO = 7, // Modified CryptoNight variant 1 (Arto only)
|
||||||
VARIANT_MAX
|
VARIANT_MAX
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue