Lines Matching refs:BackRefBlock

28 struct BackRefBlock : public BlockI {  struct
29 BackRefBlock *nextForUse; // the next in the chain of blocks with free items argument
33 BackRefBlock *nextRawMemBlock; argument
41 BackRefBlock(const BackRefBlock *blockToUse, intptr_t num) : in BackRefBlock() function
51 …void zeroSet() { memset(static_cast<void*>(this+1), 0, BackRefBlock::bytes-sizeof(BackRefBlock)); } in zeroSet() argument
56 static const int BR_MAX_CNT = (BackRefBlock::bytes-sizeof(BackRefBlock))/sizeof(void*);
70 static const size_t mainSize = BackRefMain::bytes+leaves*BackRefBlock::bytes;
76 std::atomic<BackRefBlock*> active; // if defined, use it for allocations
77 std::atomic<BackRefBlock*> listForUse; // the chain of data blocks with free items
78 BackRefBlock *allRawMemBlocks;
82 BackRefBlock *backRefBl[1]; // the real size of the array is dataSz
84 BackRefBlock *findFreeBlock();
85 void addToForUseList(BackRefBlock *bl);
86 void initEmptyBackRefBlock(BackRefBlock *newBl);
91 = 1+(BackRefMain::bytes-sizeof(BackRefMain))/sizeof(BackRefBlock*);
111BackRefBlock *bl = (BackRefBlock*)((uintptr_t)main + BackRefMain::bytes + i*BackRefBlock::bytes); in initBackRefMain()
128 … for (BackRefBlock *curr = backRefMain.load(std::memory_order_relaxed)->allRawMemBlocks; curr; ) { in destroyBackRefMain()
129 BackRefBlock *next = curr->nextRawMemBlock; in destroyBackRefMain()
141 void BackRefMain::addToForUseList(BackRefBlock *bl) in addToForUseList()
148 void BackRefMain::initEmptyBackRefBlock(BackRefBlock *newBl) in initEmptyBackRefBlock()
151 new (newBl) BackRefBlock(newBl, nextLU); in initEmptyBackRefBlock()
162 static_assert(!(blockSpaceSize % BackRefBlock::bytes), in requestNewSpace()
173 BackRefBlock *newBl = (BackRefBlock*)backend->getBackRefSpace(blockSpaceSize, &isRawMemUsed); in requestNewSpace()
177 for (BackRefBlock *bl = newBl; (uintptr_t)bl < (uintptr_t)newBl + blockSpaceSize; in requestNewSpace()
178 bl = (BackRefBlock*)((uintptr_t)bl + BackRefBlock::bytes)) { in requestNewSpace()
191 int blocksToUse = min(numOfUnusedIdxs, blockSpaceSize / BackRefBlock::bytes); in requestNewSpace()
199 …for (BackRefBlock *bl = newBl; blocksToUse>0; bl = (BackRefBlock*)((uintptr_t)bl + BackRefBlock::b… in requestNewSpace()
210 BackRefBlock *BackRefMain::findFreeBlock() in findFreeBlock()
212 BackRefBlock* active_block = active.load(std::memory_order_acquire); in findFreeBlock()
248 + sizeof(BackRefBlock) + backRefIdx.getOffset() * sizeof(std::atomic<void*>) in getBackRef()
258 …+ sizeof(BackRefBlock) + backRefIdx.getOffset() * sizeof(void*)))->store(newPtr, std::memory_order… in setBackRef()
263 BackRefBlock *blockToUse; in newBackRef()
290 < (uintptr_t)blockToUse+sizeof(BackRefBlock), in newBackRef()
311 ((uintptr_t)toUse - ((uintptr_t)blockToUse + sizeof(BackRefBlock)))/sizeof(void*); in newBackRef()
325BackRefBlock *currBlock = backRefMain.load(std::memory_order_relaxed)->backRefBl[backRefIdx.getMai… in removeBackRef()
326 …d::atomic<void*>& backRefEntry = *(std::atomic<void*>*)((uintptr_t)currBlock + sizeof(BackRefBlock) in removeBackRef()