diff options
author | psychocrypt <psychocrypt@users.noreply.github.com> | 2017-09-24 21:14:35 +0200 |
---|---|---|
committer | psychocrypt <psychocrypt@users.noreply.github.com> | 2017-09-30 23:46:08 +0200 |
commit | 9967fbb0b0031f735d3ab8a275417e59cd28cac9 (patch) | |
tree | 1f8f615114a7547116f545c71d53419d5ae0c04d /cli-miner.cpp | |
parent | 4085d47d03c1762dfc95f893ed0ee86ad9eaee41 (diff) | |
download | xmr-stak-9967fbb0b0031f735d3ab8a275417e59cd28cac9.zip xmr-stak-9967fbb0b0031f735d3ab8a275417e59cd28cac9.tar.gz |
fix windows support
- fix broken windows support
Diffstat (limited to 'cli-miner.cpp')
-rw-r--r-- | cli-miner.cpp | 211 |
1 files changed, 0 insertions, 211 deletions
diff --git a/cli-miner.cpp b/cli-miner.cpp deleted file mode 100644 index d7d2781..0000000 --- a/cli-miner.cpp +++ /dev/null @@ -1,211 +0,0 @@ - /* - * 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 - * 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/>. - * - * Additional permission under GNU GPL version 3 section 7 - * - * If you modify this Program, or any covered work, by linking or combining - * it with OpenSSL (or a modified version of that library), containing parts - * covered by the terms of OpenSSL License and SSLeay License, the licensors - * of this Program grant you additional permission to convey the resulting work. - * - */ - -#include "executor.h" -#include "backend/miner_work.h" -#include "backend/GlobalStates.hpp" -#include "backend/BackendConnector.hpp" -#include "jconf.h" -#include "console.h" -#include "donate-level.h" - -#include "version.h" - -#ifndef CONF_NO_HTTPD -# include "httpd.h" -#endif - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> - -#include <time.h> - -#ifndef CONF_NO_TLS -#include <openssl/ssl.h> -#include <openssl/err.h> -#endif - - -#ifdef _WIN32 -# define strcasecmp _stricmp -#endif // _WIN32 - -void do_benchmark(); - -int main(int argc, char *argv[]) -{ -#ifndef CONF_NO_TLS - SSL_library_init(); - SSL_load_error_strings(); - ERR_load_BIO_strings(); - ERR_load_crypto_strings(); - SSL_load_error_strings(); - OpenSSL_add_all_digests(); -#endif - - srand(time(0)); - - const char* sFilename = "config.txt"; - bool benchmark_mode = false; - - if(argc >= 2) - { - if(strcmp(argv[1], "-h") == 0) - { - printer::inst()->print_msg(L0, "Usage %s [CONFIG FILE]", argv[0]); - win_exit(); - return 0; - } - - if(argc >= 3 && strcasecmp(argv[1], "-c") == 0) - { - sFilename = argv[2]; - } - else if(argc >= 3 && strcasecmp(argv[1], "benchmark_mode") == 0) - { - sFilename = argv[2]; - benchmark_mode = true; - } - else - sFilename = argv[1]; - } - - if(!jconf::inst()->parse_config(sFilename)) - { - win_exit(); - return 0; - } - - if (!xmrstak::BackendConnector::self_test()) - { - win_exit(); - return 0; - } - - if(benchmark_mode) - { - do_benchmark(); - win_exit(); - return 0; - } - -#ifndef CONF_NO_HTTPD - if(jconf::inst()->GetHttpdPort() != 0) - { - if (!httpd::inst()->start_daemon()) - { - win_exit(); - return 0; - } - } -#endif - - printer::inst()->print_str("-------------------------------------------------------------------\n"); - printer::inst()->print_str( XMR_STAK_NAME" " XMR_STAK_VERSION " mining software, CPU Version.\n"); - printer::inst()->print_str("Based on CPU mining code by wolf9466 (heavily optimized by fireice_uk).\n"); -#ifndef CONF_NO_CUDA - printer::inst()->print_str("NVIDIA mining code was written by KlausT and psychocrypt.\n"); -#endif -#ifndef CONF_NO_OPENCL - printer::inst()->print_str("AMD mining code was written by wolf9466.\n"); -#endif - printer::inst()->print_str("Brought to you by fireice_uk and psychocrypt under GPLv3.\n\n"); - char buffer[64]; - snprintf(buffer, sizeof(buffer), "Configurable dev donation level is set to %.1f %%\n\n", fDevDonationLevel * 100.0); - printer::inst()->print_str(buffer); - printer::inst()->print_str("You can use following keys to display reports:\n"); - printer::inst()->print_str("'h' - hashrate\n"); - printer::inst()->print_str("'r' - results\n"); - printer::inst()->print_str("'c' - connection\n"); - printer::inst()->print_str("-------------------------------------------------------------------\n"); - - if(strlen(jconf::inst()->GetOutputFile()) != 0) - printer::inst()->open_logfile(jconf::inst()->GetOutputFile()); - - executor::inst()->ex_start(jconf::inst()->DaemonMode()); - - using namespace std::chrono; - uint64_t lastTime = time_point_cast<milliseconds>(high_resolution_clock::now()).time_since_epoch().count(); - - int key; - while(true) - { - key = get_key(); - - switch(key) - { - case 'h': - executor::inst()->push_event(ex_event(EV_USR_HASHRATE)); - break; - case 'r': - executor::inst()->push_event(ex_event(EV_USR_RESULTS)); - break; - case 'c': - executor::inst()->push_event(ex_event(EV_USR_CONNSTAT)); - break; - default: - break; - } - - uint64_t currentTime = time_point_cast<milliseconds>(high_resolution_clock::now()).time_since_epoch().count(); - - /* Hard guard to make sure we never get called more than twice per second */ - if( currentTime - lastTime < 500) - std::this_thread::sleep_for(std::chrono::milliseconds(500 - (currentTime - lastTime))); - lastTime = currentTime; - } - - return 0; -} - -void do_benchmark() -{ - using namespace std::chrono; - std::vector<xmrstak::IBackend*>* pvThreads; - - printer::inst()->print_msg(L0, "Running a 60 second benchmark..."); - - uint8_t work[76] = {0}; - xmrstak::miner_work oWork = xmrstak::miner_work("", work, sizeof(work), 0, 0, 0); - pvThreads = xmrstak::BackendConnector::thread_starter(oWork); - - uint64_t iStartStamp = time_point_cast<milliseconds>(high_resolution_clock::now()).time_since_epoch().count(); - - std::this_thread::sleep_for(std::chrono::seconds(60)); - - oWork = xmrstak::miner_work(); - xmrstak::GlobalStates::switch_work(oWork); - - double fTotalHps = 0.0; - for (uint32_t i = 0; i < pvThreads->size(); i++) - { - double fHps = pvThreads->at(i)->iHashCount; - fHps /= (pvThreads->at(i)->iTimestamp - iStartStamp) / 1000.0; - - printer::inst()->print_msg(L0, "Thread %u: %.1f H/S", i, fHps); - fTotalHps += fHps; - } - - printer::inst()->print_msg(L0, "Total: %.1f H/S", fTotalHps); -} |