]> git.sesse.net Git - freerainbowtables/blob - BOINC software/BOINC client apps/distrrtgen_cuda/rcuda_ext.h
distrrtgen_cuda code added
[freerainbowtables] / BOINC software / BOINC client apps / distrrtgen_cuda / rcuda_ext.h
1 #ifndef RCUDA_EXT_H
2 #define RCUDA_EXT_H
3
4 #include "rcuda.h"
5 #include "ChainWalkContext.h"
6
7 class CudaCWCExtender {
8 public:
9         CudaCWCExtender(CChainWalkContext *cwc);
10         void Init(void);
11         int IndexToStartPlain(const uint64 nIndex, std::vector<unsigned char>& stPlain);
12
13         inline rcuda::RHash GetHash(void) { return hash; }
14         inline unsigned int* GetPlainDimVec(void) { return &plainDimVec[0]; }
15         inline int GetPlainDimVecSize(void) { return plainDimVec.size(); }
16         inline unsigned char* GetCharSet(void) { return (unsigned char*)plainCharSet.c_str(); }
17         inline int GetCharSetSize(void) { return plainCharSet.size(); }
18         inline uint64 GetPlainSpaceTotal(void) { return CChainWalkContext::m_nPlainSpaceTotal; }
19         inline uint64 GetRainbowTableIndex(void) { return CChainWalkContext::m_nRainbowTableIndex; }
20         inline uint64 GetReduceOffset(void) { return CChainWalkContext::m_nReduceOffset; }
21
22 protected:
23         CChainWalkContext *cwc;
24         rcuda::RHash hash;
25         std::vector<unsigned int> plainDimVec;
26         std::string plainCharSet;
27 };
28
29 #endif //RCUDA_EXT_H