63static_assert(std::is_standard_layout<randomx_dataset>(),
"randomx_dataset must be a standard-layout struct");
66#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && defined(_DEBUG)
68#define STR(x) TO_STR(x)
69#pragma message ( __FILE__ "(" STR(__LINE__) ") warning: check std::is_standard_layout<randomx_cache>() is disabled for Debug configuration. JIT mode will crash." )
73static_assert(std::is_standard_layout<randomx_cache>(),
"randomx_cache must be a standard-layout struct");
80 template<
class Allocator>
82 if (dataset->
memory !=
nullptr)
86 template<
class Allocator>
void randomx_argon2_fill_segment_ref(const argon2_instance_t *instance, argon2_position_t position)
Definition: argon2_ref.c:110
randomx_argon2_impl * randomx_argon2_impl_ssse3()
Definition: argon2_ssse3.c:48
void randomx_argon2_impl(const argon2_instance_t *instance, argon2_position_t position)
Definition: argon2.h:238
randomx_argon2_impl * randomx_argon2_impl_avx2()
Definition: argon2_avx2.c:44
Definition: jit_compiler_fallback.hpp:42
Definition: superscalar_program.hpp:37
uint32_t getSize()
Definition: superscalar_program.hpp:46
#define RANDOMX_CACHE_ACCESSES
Definition: configuration.h:44
static int flags
Definition: mdb_load.c:31
Definition: allocator.cpp:35
randomx_argon2_impl * selectArgonImpl(randomx_flags flags)
Definition: dataset.hpp:94
void() DatasetInitFunc(randomx_cache *cache, uint8_t *dataset, uint32_t startBlock, uint32_t endBlock)
Definition: common.hpp:182
void initCache(randomx_cache *cache, const void *key, size_t keySize)
Definition: dataset.cpp:71
void deallocDataset(randomx_dataset *dataset)
Definition: dataset.hpp:81
void() CacheDeallocFunc(randomx_cache *)
Definition: common.hpp:185
void initDataset(randomx_cache *cache, uint8_t *dataset, uint32_t startItem, uint32_t endItem)
Definition: dataset.cpp:192
constexpr uint64_t DatasetSize
Definition: common.hpp:86
void deallocCache(randomx_cache *cache)
Definition: dataset.cpp:61
void initDatasetItem(randomx_cache *cache, uint8_t *out, uint64_t itemNumber)
Definition: dataset.cpp:164
void() DatasetDeallocFunc(randomx_dataset *)
Definition: common.hpp:184
void initCacheCompile(randomx_cache *cache, const void *key, size_t keySize)
Definition: dataset.cpp:142
void() CacheInitializeFunc(randomx_cache *, const void *, size_t)
Definition: common.hpp:186
randomx_flags
Definition: randomx.h:42
@ RANDOMX_FLAG_ARGON2_SSSE3
Definition: randomx.h:49
@ RANDOMX_FLAG_ARGON2_AVX2
Definition: randomx.h:50
unsigned int uint32_t
Definition: stdint.h:126
unsigned char uint8_t
Definition: stdint.h:124
unsigned __int64 uint64_t
Definition: stdint.h:136
Definition: allocator.hpp:36
Definition: dataset.hpp:46
randomx_argon2_impl * argonImpl
Definition: dataset.hpp:55
randomx::SuperscalarProgram programs[RANDOMX_CACHE_ACCESSES]
Definition: dataset.hpp:52
std::vector< uint64_t > reciprocalCache
Definition: dataset.hpp:53
randomx::CacheInitializeFunc * initialize
Definition: dataset.hpp:50
uint8_t * memory
Definition: dataset.hpp:47
bool isInitialized()
Definition: dataset.hpp:57
randomx::DatasetInitFunc * datasetInit
Definition: dataset.hpp:51
randomx::CacheDeallocFunc * dealloc
Definition: dataset.hpp:48
randomx::JitCompiler * jit
Definition: dataset.hpp:49
std::string cacheKey
Definition: dataset.hpp:54
Definition: dataset.hpp:40
randomx::DatasetDeallocFunc * dealloc
Definition: dataset.hpp:42
uint8_t * memory
Definition: dataset.hpp:41
randomx_cache * cache
Definition: tests.cpp:19