Function typedefs without pointer

This commit is contained in:
tevador 2019-04-28 18:17:29 +02:00
parent 7f6bdd9a52
commit cf72ed79c7
3 changed files with 14 additions and 14 deletions

View file

@ -113,11 +113,11 @@ namespace randomx {
fpu_reg_t a[RegistersCount / 2];
};
typedef void(*DatasetReadFunc)(addr_t, MemoryRegisters&, int_reg_t(&reg)[RegistersCount]);
typedef void(*ProgramFunc)(RegisterFile&, MemoryRegisters&, uint8_t* /* scratchpad */, uint64_t);
typedef void(*DatasetInitFunc)(randomx_cache* cache, uint8_t* dataset, uint32_t startBlock, uint32_t endBlock);
typedef void(DatasetReadFunc)(addr_t, MemoryRegisters&, int_reg_t(&reg)[RegistersCount]);
typedef void(ProgramFunc)(RegisterFile&, MemoryRegisters&, uint8_t* /* scratchpad */, uint64_t);
typedef void(DatasetInitFunc)(randomx_cache* cache, uint8_t* dataset, uint32_t startBlock, uint32_t endBlock);
typedef void(*DatasetDeallocFunc)(randomx_dataset*);
typedef void(*CacheDeallocFunc)(randomx_cache*);
typedef void(*CacheInitializeFunc)(randomx_cache*, const void*, size_t);
typedef void(DatasetDeallocFunc)(randomx_dataset*);
typedef void(CacheDeallocFunc)(randomx_cache*);
typedef void(CacheInitializeFunc)(randomx_cache*, const void*, size_t);
}

View file

@ -29,7 +29,7 @@ along with RandomX. If not, see<http://www.gnu.org/licenses/>.
/* Global scope for C binding */
struct randomx_dataset {
uint8_t* memory = nullptr;
randomx::DatasetDeallocFunc dealloc;
randomx::DatasetDeallocFunc* dealloc;
};
namespace randomx {
@ -39,10 +39,10 @@ namespace randomx {
/* Global scope for C binding */
struct randomx_cache {
uint8_t* memory = nullptr;
randomx::CacheDeallocFunc dealloc;
randomx::CacheDeallocFunc* dealloc;
randomx::JitCompilerX86* jit;
randomx::CacheInitializeFunc initialize;
randomx::DatasetInitFunc datasetInit;
randomx::CacheInitializeFunc* initialize;
randomx::DatasetInitFunc* datasetInit;
randomx::SuperscalarProgram programs[RANDOMX_CACHE_ACCESSES];
std::vector<uint64_t> reciprocalCache;
};

View file

@ -45,11 +45,11 @@ namespace randomx {
template<size_t N>
void generateSuperscalarHash(SuperscalarProgram (&programs)[N], std::vector<uint64_t> &);
void generateDatasetInitCode();
ProgramFunc getProgramFunc() {
return (ProgramFunc)code;
ProgramFunc* getProgramFunc() {
return (ProgramFunc*)code;
}
DatasetInitFunc getDatasetInitFunc() {
return (DatasetInitFunc)code;
DatasetInitFunc* getDatasetInitFunc() {
return (DatasetInitFunc*)code;
}
uint8_t* getCode() {
return code;