Lines Matching defs:ClassId

62   static uptr getSizeByClassId(uptr ClassId) {
63 return (ClassId == SizeClassMap::BatchClassId)
65 : SizeClassMap::getSizeByClassId(ClassId);
170 CompactPtrT compactPtr(UNUSED uptr ClassId, uptr Ptr) const {
174 void *decompactPtr(UNUSED uptr ClassId, CompactPtrT CompactPtr) const {
197 u16 popBlocks(CacheT *C, uptr ClassId, CompactPtrT *ToArray,
199 DCHECK_LT(ClassId, NumClasses);
200 SizeClassInfo *Sci = getSizeClassInfo(ClassId);
203 u16 PopCount = popBlocksImpl(C, ClassId, Sci, ToArray, MaxBlockCount);
205 if (UNLIKELY(!populateFreeList(C, ClassId, Sci)))
207 PopCount = popBlocksImpl(C, ClassId, Sci, ToArray, MaxBlockCount);
215 void pushBlocks(CacheT *C, uptr ClassId, CompactPtrT *Array, u32 Size) {
216 DCHECK_LT(ClassId, NumClasses);
219 SizeClassInfo *Sci = getSizeClassInfo(ClassId);
220 if (ClassId == SizeClassMap::BatchClassId) {
246 pushBlocksImpl(C, ClassId, Sci, Array, Size, SameGroup);
347 uptr tryReleaseToOS(uptr ClassId, ReleaseToOS ReleaseType) {
348 SizeClassInfo *Sci = getSizeClassInfo(ClassId);
352 return releaseToOSMaybe(Sci, ClassId, ReleaseType);
449 uptr allocateRegion(SizeClassInfo *Sci, uptr ClassId) REQUIRES(Sci->Mutex) {
450 DCHECK_LT(ClassId, NumClasses);
467 PossibleRegions.set(RegionIndex, static_cast<u8>(ClassId + 1U));
472 SizeClassInfo *getSizeClassInfo(uptr ClassId) {
473 DCHECK_LT(ClassId, NumClasses);
474 return &SizeClassInfoArray[ClassId];
605 void pushBlocksImpl(CacheT *C, uptr ClassId, SizeClassInfo *Sci,
608 DCHECK_NE(ClassId, SizeClassMap::BatchClassId);
715 u16 popBlocksImpl(CacheT *C, uptr ClassId, SizeClassInfo *Sci,
725 DCHECK_EQ(ClassId, SizeClassMap::BatchClassId);
752 const u16 PopCount = ClassId == SizeClassMap::BatchClassId
764 if (ClassId != SizeClassMap::BatchClassId)
776 if (ClassId != SizeClassMap::BatchClassId)
785 NOINLINE bool populateFreeList(CacheT *C, uptr ClassId, SizeClassInfo *Sci)
799 Region = allocateRegion(Sci, ClassId);
807 const uptr Size = getSizeByClassId(ClassId);
832 if (ClassId != SizeClassMap::BatchClassId) {
838 pushBlocksImpl(C, ClassId, Sci, ShuffleArray + I - N, N,
848 pushBlocksImpl(C, ClassId, Sci, &ShuffleArray[NumberOfBlocks - N], N,
877 void getStats(ScopedString *Str, uptr ClassId, SizeClassInfo *Sci)
881 const uptr BlockSize = getSizeByClassId(ClassId);
894 ClassId, getSizeByClassId(ClassId), Sci->AllocatedUser >> 10,
901 void getSizeClassFragmentationInfo(SizeClassInfo *Sci, uptr ClassId,
903 const uptr BlockSize = getSizeByClassId(ClassId);
908 auto SkipRegion = [this, First, ClassId](uptr RegionIndex) {
910 return (PossibleRegions[First + RegionIndex] - 1U) != ClassId;
916 markFreeBlocks(Sci, ClassId, BlockSize, Base, NumberOfRegions,
947 ClassId, BlockSize, InUseBlocks, TotalBlocks, InUsePages,
951 NOINLINE uptr releaseToOSMaybe(SizeClassInfo *Sci, uptr ClassId,
954 const uptr BlockSize = getSizeByClassId(ClassId);
987 PageReleaseContext Context = markFreeBlocks(Sci, ClassId, BlockSize, Base,
996 auto SkipRegion = [this, First, ClassId](uptr RegionIndex) {
998 return (PossibleRegions[First + RegionIndex] - 1U) != ClassId;
1074 PageReleaseContext markFreeBlocks(SizeClassInfo *Sci, const uptr ClassId,
1082 compactPtrGroupBase(compactPtr(ClassId, Sci->CurrentRegion));
1164 // Track the regions in use, 0 is unused, otherwise store ClassId + 1.