diff --git a/Makefile.am b/Makefile.am index 0c41690f..3a1ab7e0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -46,6 +46,7 @@ sgminer_SOURCES += darkcoin.c darkcoin.h sgminer_SOURCES += qubitcoin.c qubitcoin.h sgminer_SOURCES += quarkcoin.c quarkcoin.h sgminer_SOURCES += myriadcoin-groestl.c myriadcoin-groestl.h +sgminer_SOURCES += marucoin.c marucoin.h sgminer_SOURCES += kernel/*.cl bin_SCRIPTS = $(top_srcdir)/kernel/*.cl diff --git a/configure.ac b/configure.ac index bd59827e..99c934f0 100644 --- a/configure.ac +++ b/configure.ac @@ -349,6 +349,7 @@ AC_DEFINE_UNQUOTED([DARKCOIN_KERNNAME], ["darkcoin"], [Filename for DarkCoin opt AC_DEFINE_UNQUOTED([QUBITCOIN_KERNNAME], ["qubitcoin"], [Filename for QubitCoin optimised kernel]) AC_DEFINE_UNQUOTED([QUARKCOIN_KERNNAME], ["quarkcoin"], [Filename for QuarkCoin optimised kernel]) AC_DEFINE_UNQUOTED([MYRIADCOIN_GROESTL_KERNNAME], ["myriadcoin-groestl"], [Filename for MyriadCoin-Groestl optimised kernel]) +AC_DEFINE_UNQUOTED([MARUCOIN_KERNNAME], ["marucoin"], [Filename for MaruCoin optimised kernel]) AC_SUBST(OPENCL_LIBS) AC_SUBST(OPENCL_FLAGS) diff --git a/driver-opencl.c b/driver-opencl.c index 664f7e7e..1a62df41 100644 --- a/driver-opencl.c +++ b/driver-opencl.c @@ -215,6 +215,8 @@ static enum cl_kernels select_kernel(char *arg) return KL_QUARKCOIN; if (!strcmp(arg, MYRIADCOIN_GROESTL_KERNNAME)) return KL_MYRIADCOIN_GROESTL; + if (!strcmp(arg, MARUCOIN_KERNNAME)) + return KL_MARUCOIN; return KL_NONE; } @@ -1367,6 +1369,9 @@ static bool opencl_thread_prepare(struct thr_info *thr) case KL_MYRIADCOIN_GROESTL: cgpu->kname = MYRIADCOIN_GROESTL_KERNNAME; break; + case KL_MARUCOIN: + cgpu->kname = MARUCOIN_KERNNAME; + break; default: break; } @@ -1406,6 +1411,7 @@ static bool opencl_thread_init(struct thr_info *thr) case KL_QUBITCOIN: case KL_QUARKCOIN: case KL_MYRIADCOIN_GROESTL: + case KL_MARUCOIN: thrdata->queue_kernel_parameters = &queue_sph_kernel; break; default: diff --git a/miner.h b/miner.h index 8ef6bbc9..5d3a77dc 100644 --- a/miner.h +++ b/miner.h @@ -383,6 +383,7 @@ enum cl_kernels { KL_ZUIKKIS, KL_QUARKCOIN, // kernels starting from this will have difficulty calculated by using quarkcoin algorithm KL_QUBITCOIN, + KL_MARUCOIN, KL_DARKCOIN, // kernels starting from this will have difficulty calculated by using bitcoin algorithm KL_MYRIADCOIN_GROESTL, }; diff --git a/ocl.c b/ocl.c index 3bdd5b21..2c68037a 100644 --- a/ocl.c +++ b/ocl.c @@ -474,6 +474,11 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize) strcpy(filename, MYRIADCOIN_GROESTL_KERNNAME".cl"); strcpy(binaryfilename, MYRIADCOIN_GROESTL_KERNNAME); break; + case KL_MARUCOIN: + applog(LOG_WARNING, "Kernel marucoin is experimental."); + strcpy(filename, MARUCOIN_KERNNAME".cl"); + strcpy(binaryfilename, MARUCOIN_KERNNAME); + break; case KL_NONE: /* Shouldn't happen */ break; } diff --git a/sgminer.c b/sgminer.c index 4723b2ef..78e034cd 100644 --- a/sgminer.c +++ b/sgminer.c @@ -4239,6 +4239,9 @@ void write_config(FILE *fcfg) case KL_MYRIADCOIN_GROESTL: fprintf(fcfg, MYRIADCOIN_GROESTL_KERNNAME); break; + case KL_MARUCOIN: + fprintf(fcfg, MARUCOIN_KERNNAME); + break; } } @@ -6055,6 +6058,9 @@ static void rebuild_nonce(struct work *work, uint32_t nonce) case KL_MYRIADCOIN_GROESTL: myriadcoin_groestl_regenhash(work); break; + case KL_MARUCOIN: + marucoin_regenhash(work); + break; default: scrypt_regenhash(work); break;