Lines Matching refs:pMap

710 static void vboxExtHashInitEntries(PVBOXEXT_HASHMAP pMap)
713 pMap->cEntries = 0;
714 for (i = 0; i < RT_ELEMENTS(pMap->aBuckets); ++i)
716 RTListInit(&pMap->aBuckets[i].EntryList);
720 void VBoxExtHashInit(PVBOXEXT_HASHMAP pMap, PFNVBOXEXT_HASHMAP_HASH pfnHash, PFNVBOXEXT_HASHMAP_EQUAL pfnEqual)
722 pMap->pfnHash = pfnHash;
723 pMap->pfnEqual = pfnEqual;
724 vboxExtHashInitEntries(pMap);
744 DECLINLINE(PVBOXEXT_HASHMAP_ENTRY) vboxExtHashSearchEntry(PVBOXEXT_HASHMAP pMap, void *pvKey)
746 uint32_t u32Hash = pMap->pfnHash(pvKey);
748 PVBOXEXT_HASHMAP_BUCKET pBucket = &pMap->aBuckets[u32HashIdx];
755 if (!pMap->pfnEqual(pvKey, pEntry->pvKey))
762 void* VBoxExtHashRemoveEntry(PVBOXEXT_HASHMAP pMap, PVBOXEXT_HASHMAP_ENTRY pEntry)
765 --pMap->cEntries;
766 Assert(pMap->cEntries <= UINT32_MAX/2);
770 static void vboxExtHashPutEntry(PVBOXEXT_HASHMAP pMap, PVBOXEXT_HASHMAP_BUCKET pBucket, PVBOXEXT_HASHMAP_ENTRY pEntry)
773 ++pMap->cEntries;
776 PVBOXEXT_HASHMAP_ENTRY VBoxExtHashRemove(PVBOXEXT_HASHMAP pMap, void *pvKey)
778 PVBOXEXT_HASHMAP_ENTRY pEntry = vboxExtHashSearchEntry(pMap, pvKey);
782 VBoxExtHashRemoveEntry(pMap, pEntry);
786 PVBOXEXT_HASHMAP_ENTRY VBoxExtHashPut(PVBOXEXT_HASHMAP pMap, void *pvKey, PVBOXEXT_HASHMAP_ENTRY pEntry)
788 PVBOXEXT_HASHMAP_ENTRY pOldEntry = VBoxExtHashRemove(pMap, pvKey);
789 uint32_t u32Hash = pMap->pfnHash(pvKey);
793 vboxExtHashPutEntry(pMap, &pMap->aBuckets[u32HashIdx], pEntry);
798 PVBOXEXT_HASHMAP_ENTRY VBoxExtHashGet(PVBOXEXT_HASHMAP pMap, void *pvKey)
800 return vboxExtHashSearchEntry(pMap, pvKey);
803 void VBoxExtHashVisit(PVBOXEXT_HASHMAP pMap, PFNVBOXEXT_HASHMAP_VISITOR pfnVisitor, void *pvVisitor)
806 uint32_t cEntries = pMap->cEntries;
814 PVBOXEXT_HASHMAP_BUCKET pBucket = &pMap->aBuckets[iBucket];
815 Assert(iBucket < RT_ELEMENTS(pMap->aBuckets));
818 if (!pfnVisitor(pMap, pEntry->pvKey, pEntry, pvVisitor))
830 void VBoxExtHashCleanup(PVBOXEXT_HASHMAP pMap, PFNVBOXEXT_HASHMAP_VISITOR pfnVisitor, void *pvVisitor)
832 VBoxExtHashVisit(pMap, pfnVisitor, pvVisitor);
833 vboxExtHashInitEntries(pMap);
836 static DECLCALLBACK(bool) vboxExtCacheCleanupCb(struct VBOXEXT_HASHMAP *pMap, void *pvKey, struct VBOXEXT_HASHMAP_ENTRY *pValue, void *pvVisitor)
838 PVBOXEXT_HASHCACHE pCache = VBOXEXT_HASHCACHE_FROM_MAP(pMap);