Lines Matching refs:Header

91   static inline void *getBackendPtr(const void *Ptr, UnpackedHeader *Header) {  in getBackendPtr()  argument
93 getHeaderSize() - (Header->Offset << MinAlignmentLog)); in getBackendPtr()
98 static inline uptr getUsableSize(const void *Ptr, UnpackedHeader *Header) { in getUsableSize() argument
99 const uptr ClassId = Header->ClassId; in getUsableSize()
102 (Header->Offset << MinAlignmentLog); in getUsableSize()
104 getBackendPtr(Ptr, Header)) - getHeaderSize(); in getUsableSize()
108 static inline uptr getSize(const void *Ptr, UnpackedHeader *Header) { in getSize() argument
109 const uptr SizeOrUnusedBytes = Header->SizeOrUnusedBytes; in getSize()
110 if (Header->ClassId) in getSize()
113 getBackendPtr(Ptr, Header)) - getHeaderSize() - SizeOrUnusedBytes; in getSize()
117 static inline u16 computeChecksum(const void *Ptr, UnpackedHeader *Header) { in computeChecksum() argument
118 UnpackedHeader ZeroChecksumHeader = *Header; in computeChecksum()
183 UnpackedHeader Header; in Recycle() local
184 Chunk::loadHeader(Ptr, &Header); in Recycle()
185 if (UNLIKELY(Header.State != ChunkQuarantine)) in Recycle()
187 UnpackedHeader NewHeader = Header; in Recycle()
189 Chunk::compareExchangeHeader(Ptr, &NewHeader, &Header); in Recycle()
190 void *BackendPtr = Chunk::getBackendPtr(Ptr, &Header); in Recycle()
191 if (Header.ClassId) in Recycle()
192 getBackend().deallocatePrimary(Cache_, BackendPtr, Header.ClassId); in Recycle()
371 UnpackedHeader Header = {}; in allocate() local
379 Header.Offset = (AlignedUserPtr - UserPtr) >> MinAlignmentLog; in allocate()
383 Header.State = ChunkAllocated; in allocate()
384 Header.AllocType = Type; in allocate()
386 Header.ClassId = ClassId; in allocate()
387 Header.SizeOrUnusedBytes = Size; in allocate()
395 Header.SizeOrUnusedBytes = PageSize - TrailingBytes; in allocate()
398 Chunk::storeHeader(Ptr, &Header); in allocate()
407 void quarantineOrDeallocateChunk(void *Ptr, UnpackedHeader *Header, in quarantineOrDeallocateChunk()
411 UnpackedHeader NewHeader = *Header; in quarantineOrDeallocateChunk()
413 Chunk::compareExchangeHeader(Ptr, &NewHeader, Header); in quarantineOrDeallocateChunk()
414 void *BackendPtr = Chunk::getBackendPtr(Ptr, Header); in quarantineOrDeallocateChunk()
415 if (Header->ClassId) { in quarantineOrDeallocateChunk()
419 Header->ClassId); in quarantineOrDeallocateChunk()
431 const uptr EstimatedSize = Size + (Header->Offset << MinAlignmentLog); in quarantineOrDeallocateChunk()
432 UnpackedHeader NewHeader = *Header; in quarantineOrDeallocateChunk()
434 Chunk::compareExchangeHeader(Ptr, &NewHeader, Header); in quarantineOrDeallocateChunk()
469 UnpackedHeader Header; in deallocate() local
470 Chunk::loadHeader(Ptr, &Header); in deallocate()
471 if (UNLIKELY(Header.State != ChunkAllocated)) in deallocate()
475 if (Header.AllocType != Type) { in deallocate()
477 if (Header.AllocType != FromMemalign || Type != FromMalloc) in deallocate()
482 const uptr Size = Chunk::getSize(Ptr, &Header); in deallocate()
489 quarantineOrDeallocateChunk(Ptr, &Header, Size); in deallocate()
555 UnpackedHeader Header; in getUsableSize() local
556 Chunk::loadHeader(Ptr, &Header); in getUsableSize()
558 if (UNLIKELY(Header.State != ChunkAllocated)) in getUsableSize()
560 return Chunk::getUsableSize(Ptr, &Header); in getUsableSize()
613 UnpackedHeader Header = {}; in performSanityChecks() local
618 Header.Offset = MaxOffset; in performSanityChecks()
619 if (Header.Offset != MaxOffset) in performSanityChecks()
627 Header.SizeOrUnusedBytes = MaxSizeOrUnusedBytes; in performSanityChecks()
628 if (Header.SizeOrUnusedBytes != MaxSizeOrUnusedBytes) in performSanityChecks()
632 Header.ClassId = LargestClassId; in performSanityChecks()
633 if (Header.ClassId != LargestClassId) in performSanityChecks()