-
Notifications
You must be signed in to change notification settings - Fork 8
/
lib_interface.h
47 lines (32 loc) · 1.26 KB
/
lib_interface.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/* Copyright @ 2016 Pavel Moravec */
#ifndef ZCEQ_SOLVER_H_LIB_INTERFACE_H_
#define ZCEQ_SOLVER_H_LIB_INTERFACE_H_
extern "C" {
typedef struct {
char data[1344];
} Solution;
typedef struct {
unsigned int data[512];
} ExpandedSolution;
typedef struct HeaderAndNonce {
char data[140];
} HeaderAndNonce;
typedef struct ZcEquihashSolverT ZcEquihashSolver;
ZcEquihashSolver* CreateSolver(void);
void DestroySolver(ZcEquihashSolver* solver);
int FindSolutions(ZcEquihashSolver* solver, HeaderAndNonce* inputs,
Solution solutions[], int max_solutions);
int ValidateSolution(ZcEquihashSolver* solver, HeaderAndNonce* inputs, Solution* solutions);
void RunBenchmark(long long nonce_start, int iterations);
bool ExpandedToMinimal(Solution* minimal, ExpandedSolution* expanded);
bool MinimalToExpanded(ExpandedSolution* expanded, Solution* minimal);
// Officially requested interface for solver challenge.
int SolverFunction(const unsigned char* input,
bool (*validBlock)(void*, const unsigned char*),
void* validBlockData,
bool (*cancelled)(void*),
void* cancelledData,
int numThreads,
int n, int k);
}
#endif // ZCEQ_SOLVER_H_LIB_INTERFACE_H_