Lines Matching refs:pMap

712 static void vboxExtHashInitEntries(PVBOXEXT_HASHMAP pMap)
715 pMap->cEntries = 0;
716 for (i = 0; i < RT_ELEMENTS(pMap->aBuckets); ++i)
718 RTListInit(&pMap->aBuckets[i].EntryList);
722 void VBoxExtHashInit(PVBOXEXT_HASHMAP pMap, PFNVBOXEXT_HASHMAP_HASH pfnHash, PFNVBOXEXT_HASHMAP_EQUAL pfnEqual)
724 pMap->pfnHash = pfnHash;
725 pMap->pfnEqual = pfnEqual;
726 vboxExtHashInitEntries(pMap);
746 DECLINLINE(PVBOXEXT_HASHMAP_ENTRY) vboxExtHashSearchEntry(PVBOXEXT_HASHMAP pMap, void *pvKey)
748 uint32_t u32Hash = pMap->pfnHash(pvKey);
750 PVBOXEXT_HASHMAP_BUCKET pBucket = &pMap->aBuckets[u32HashIdx];
757 if (!pMap->pfnEqual(pvKey, pEntry->pvKey))
764 void* VBoxExtHashRemoveEntry(PVBOXEXT_HASHMAP pMap, PVBOXEXT_HASHMAP_ENTRY pEntry)
767 --pMap->cEntries;
768 Assert(pMap->cEntries <= UINT32_MAX/2);
772 static void vboxExtHashPutEntry(PVBOXEXT_HASHMAP pMap, PVBOXEXT_HASHMAP_BUCKET pBucket, PVBOXEXT_HASHMAP_ENTRY pEntry)
775 ++pMap->cEntries;
778 PVBOXEXT_HASHMAP_ENTRY VBoxExtHashRemove(PVBOXEXT_HASHMAP pMap, void *pvKey)
780 PVBOXEXT_HASHMAP_ENTRY pEntry = vboxExtHashSearchEntry(pMap, pvKey);
784 VBoxExtHashRemoveEntry(pMap, pEntry);
788 PVBOXEXT_HASHMAP_ENTRY VBoxExtHashPut(PVBOXEXT_HASHMAP pMap, void *pvKey, PVBOXEXT_HASHMAP_ENTRY pEntry)
790 PVBOXEXT_HASHMAP_ENTRY pOldEntry = VBoxExtHashRemove(pMap, pvKey);
791 uint32_t u32Hash = pMap->pfnHash(pvKey);
795 vboxExtHashPutEntry(pMap, &pMap->aBuckets[u32HashIdx], pEntry);
800 PVBOXEXT_HASHMAP_ENTRY VBoxExtHashGet(PVBOXEXT_HASHMAP pMap, void *pvKey)
802 return vboxExtHashSearchEntry(pMap, pvKey);
805 void VBoxExtHashVisit(PVBOXEXT_HASHMAP pMap, PFNVBOXEXT_HASHMAP_VISITOR pfnVisitor, void *pvVisitor)
808 uint32_t cEntries = pMap->cEntries;
816 PVBOXEXT_HASHMAP_BUCKET pBucket = &pMap->aBuckets[iBucket];
817 Assert(iBucket < RT_ELEMENTS(pMap->aBuckets));
820 if (!pfnVisitor(pMap, pEntry->pvKey, pEntry, pvVisitor))
832 void VBoxExtHashCleanup(PVBOXEXT_HASHMAP pMap, PFNVBOXEXT_HASHMAP_VISITOR pfnVisitor, void *pvVisitor)
834 VBoxExtHashVisit(pMap, pfnVisitor, pvVisitor);
835 vboxExtHashInitEntries(pMap);
838 static DECLCALLBACK(bool) vboxExtCacheCleanupCb(struct VBOXEXT_HASHMAP *pMap, void *pvKey, struct VBOXEXT_HASHMAP_ENTRY *pValue, void *pvVisitor)
840 PVBOXEXT_HASHCACHE pCache = VBOXEXT_HASHCACHE_FROM_MAP(pMap);