diff --git a/CMakeLists.txt b/CMakeLists.txt index 282faa87..983eed86 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,7 +29,6 @@ set(HEADERS src/common/crypto/keccak.h src/common/interfaces/ICpuInfo.h src/common/Platform.h - src/common/utils/mm_malloc.h src/common/xmrig.h src/core/config/Config_default.h src/core/config/Config_platform.h @@ -37,7 +36,6 @@ set(HEADERS src/core/config/ConfigTransform.h src/core/config/usage.h src/core/Controller.h - src/crypto/common/VirtualMemory.h src/interfaces/IJobResultListener.h src/interfaces/IThread.h src/interfaces/IWorker.h @@ -57,19 +55,21 @@ set(HEADERS ) set(HEADERS_CRYPTO + src/crypto/asm/CryptonightR_template.h src/crypto/c_blake256.h src/crypto/c_groestl.h src/crypto/c_jh.h src/crypto/c_skein.h - src/crypto/CryptoNight.h + src/crypto/common/portable/mm_malloc.h + src/crypto/common/VirtualMemory.h src/crypto/CryptoNight_constants.h src/crypto/CryptoNight_monero.h src/crypto/CryptoNight_test.h + src/crypto/CryptoNight.h src/crypto/groestl_tables.h src/crypto/hash.h src/crypto/skein_port.h src/crypto/soft_aes.h - src/crypto/asm/CryptonightR_template.h ) if (XMRIG_ARM) diff --git a/src/Mem.cpp b/src/Mem.cpp index 9d52b379..714e35a1 100644 --- a/src/Mem.cpp +++ b/src/Mem.cpp @@ -24,7 +24,7 @@ */ -#include "common/utils/mm_malloc.h" +#include "crypto/common/portable/mm_malloc.h" #include "crypto/common/VirtualMemory.h" #include "crypto/CryptoNight_constants.h" #include "crypto/CryptoNight.h" diff --git a/src/Mem_unix.cpp b/src/Mem_unix.cpp index d18b563e..d9c3e31f 100644 --- a/src/Mem_unix.cpp +++ b/src/Mem_unix.cpp @@ -29,8 +29,8 @@ #include "base/io/log/Log.h" -#include "common/utils/mm_malloc.h" #include "common/xmrig.h" +#include "crypto/common/portable/mm_malloc.h" #include "crypto/common/VirtualMemory.h" #include "crypto/CryptoNight.h" #include "Mem.h" diff --git a/src/Mem_win.cpp b/src/Mem_win.cpp index b0af61bb..3e8b6ee7 100644 --- a/src/Mem_win.cpp +++ b/src/Mem_win.cpp @@ -31,8 +31,8 @@ #include "base/io/log/Log.h" -#include "common/utils/mm_malloc.h" #include "common/xmrig.h" +#include "crypto/common/portable/mm_malloc.h" #include "crypto/common/VirtualMemory.h" #include "crypto/CryptoNight_constants.h" #include "crypto/CryptoNight.h" diff --git a/src/common/utils/mm_malloc.h b/src/common/utils/mm_malloc.h deleted file mode 100644 index 30c721a3..00000000 --- a/src/common/utils/mm_malloc.h +++ /dev/null @@ -1,43 +0,0 @@ -/* XMRig - * Copyright 2010 Jeff Garzik - * Copyright 2012-2014 pooler - * Copyright 2014 Lucas Jones - * Copyright 2014-2016 Wolf9466 - * Copyright 2016 Jay D Dee - * Copyright 2017-2018 XMR-Stak , - * Copyright 2016-2018 XMRig , - * - * 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 . - */ - -#ifndef __MM_MALLOC_PORTABLE_H__ -#define __MM_MALLOC_PORTABLE_H__ - - -#ifdef _WIN32 -# ifdef __GNUC__ -# include -# else -# include -# endif -#else -# if defined(XMRIG_ARM) && !defined(__clang__) -# include "aligned_malloc.h" -# else -# include -# endif -#endif - - -#endif /* __MM_MALLOC_PORTABLE_H__ */ diff --git a/src/3rdparty/aligned_malloc.h b/src/crypto/common/portable/mm_malloc.h similarity index 57% rename from src/3rdparty/aligned_malloc.h rename to src/crypto/common/portable/mm_malloc.h index 0b74b17e..34ca7d48 100644 --- a/src/3rdparty/aligned_malloc.h +++ b/src/crypto/common/portable/mm_malloc.h @@ -4,8 +4,9 @@ * Copyright 2014 Lucas Jones * Copyright 2014-2016 Wolf9466 * Copyright 2016 Jay D Dee - * Copyright 2016-2017 XMRig - * + * Copyright 2017-2018 XMR-Stak , + * Copyright 2018-2019 SChernykh + * Copyright 2016-2019 XMRig , * * 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 @@ -21,45 +22,50 @@ * along with this program. If not, see . */ -#ifndef __ALIGNED_MALLOC_H__ -#define __ALIGNED_MALLOC_H__ +#ifndef XMRIG_MM_MALLOC_PORTABLE_H +#define XMRIG_MM_MALLOC_PORTABLE_H +#if defined(XMRIG_ARM) && !defined(__clang__) #include #ifndef __cplusplus -extern int posix_memalign(void **__memptr, size_t __alignment, size_t __size); +extern #else -// Some systems (e.g. those with GNU libc) declare posix_memalign with an -// exception specifier. Via an "egregious workaround" in -// Sema::CheckEquivalentExceptionSpec, Clang accepts the following as a valid -// redeclaration of glibc's declaration. -extern "C" int posix_memalign(void **__memptr, size_t __alignment, size_t __size); +extern "C" #endif +int posix_memalign(void **__memptr, size_t __alignment, size_t __size); static __inline__ void *__attribute__((__always_inline__, __malloc__)) _mm_malloc(size_t __size, size_t __align) { - if (__align == 1) { - return malloc(__size); - } + if (__align == 1) { + return malloc(__size); + } - if (!(__align & (__align - 1)) && __align < sizeof(void *)) - __align = sizeof(void *); + if (!(__align & (__align - 1)) && __align < sizeof(void *)) { + __align = sizeof(void *); + } - void *__mallocedMemory; - if (posix_memalign(&__mallocedMemory, __align, __size)) { - return 0; - } + void *__mallocedMemory; + if (posix_memalign(&__mallocedMemory, __align, __size)) { + return nullptr; + } - return __mallocedMemory; + return __mallocedMemory; } static __inline__ void __attribute__((__always_inline__)) _mm_free(void *__p) { - free(__p); + free(__p); } +#elif defined(_WIN32) && !defined(__GNUC__) +# include +#else +# include +#endif -#endif /* __ALIGNED_MALLOC_H__ */ + +#endif /* XMRIG_MM_MALLOC_PORTABLE_H */