Lines Matching defs:Header

72       Chunk::UnpackedHeader Header;
73 Chunk::loadHeader(Allocator.Cookie, Ptr, &Header);
74 if (UNLIKELY(Header.State != Chunk::State::Quarantined))
77 Header.State = Chunk::State::Available;
78 Chunk::storeHeader(Allocator.Cookie, Ptr, &Header);
82 void *BlockBegin = Allocator::getBlockBegin(Ptr, &Header);
83 Cache.deallocate(Header.ClassId, BlockBegin);
99 Chunk::UnpackedHeader Header = {};
100 Header.ClassId = QuarantineClassId & Chunk::ClassIdMask;
101 Header.SizeOrUnusedBytes = sizeof(QuarantineBatch);
102 Header.State = Chunk::State::Allocated;
103 Chunk::storeHeader(Allocator.Cookie, Ptr, &Header);
118 Chunk::UnpackedHeader Header;
119 Chunk::loadHeader(Allocator.Cookie, Ptr, &Header);
121 if (UNLIKELY(Header.State != Chunk::State::Allocated))
123 DCHECK_EQ(Header.ClassId, QuarantineClassId);
124 DCHECK_EQ(Header.Offset, 0);
125 DCHECK_EQ(Header.SizeOrUnusedBytes, sizeof(QuarantineBatch));
127 Header.State = Chunk::State::Available;
128 Chunk::storeHeader(Allocator.Cookie, Ptr, &Header);
460 Chunk::UnpackedHeader Header;
461 Chunk::loadHeader(Cookie, Ptr, &Header);
463 if (UNLIKELY(Header.State != Chunk::State::Allocated))
468 if (UNLIKELY(Header.OriginOrWasZeroed != Origin)) {
470 if (Header.OriginOrWasZeroed != Chunk::Origin::Memalign ||
473 Header.OriginOrWasZeroed, Origin);
477 const uptr Size = getSize(Ptr, &Header);
483 quarantineOrDeallocateChunk(Options, TaggedPtr, &Header, Size);
521 Chunk::UnpackedHeader Header;
522 Chunk::loadHeader(Cookie, OldPtr, &Header);
524 if (UNLIKELY(Header.State != Chunk::State::Allocated))
531 if (UNLIKELY(Header.OriginOrWasZeroed != Chunk::Origin::Malloc))
533 Header.OriginOrWasZeroed,
537 void *BlockBegin = getBlockBegin(OldTaggedPtr, &Header);
540 const uptr ClassId = Header.ClassId;
544 OldSize = Header.SizeOrUnusedBytes;
548 Header.SizeOrUnusedBytes);
568 Header.SizeOrUnusedBytes =
573 Chunk::storeHeader(Cookie, OldPtr, &Header);
595 quarantineOrDeallocateChunk(Options, OldTaggedPtr, &Header, OldSize);
685 Chunk::UnpackedHeader Header;
691 if (!getChunkFromBlock(Block, &Chunk, &Header) &&
692 !getChunkFromBlock(addHeaderTag(Block), &Chunk, &Header))
695 if (!getChunkFromBlock(addHeaderTag(Block), &Chunk, &Header))
698 if (Header.State == Chunk::State::Allocated) {
704 Callback(TaggedChunk, getSize(reinterpret_cast<void *>(Chunk), &Header),
768 Chunk::UnpackedHeader Header;
769 Chunk::loadHeader(Cookie, Ptr, &Header);
772 if (UNLIKELY(Header.State != Chunk::State::Allocated))
775 return getSize(Ptr, &Header);
798 Chunk::UnpackedHeader Header;
799 return Chunk::isValid(Cookie, Ptr, &Header) &&
800 Header.State == Chunk::State::Allocated;
1027 Chunk::UnpackedHeader Header = {};
1032 Header.Offset = MaxOffset & Chunk::OffsetMask;
1033 if (UNLIKELY(Header.Offset != MaxOffset))
1042 Header.SizeOrUnusedBytes = MaxSizeOrUnusedBytes;
1043 if (UNLIKELY(Header.SizeOrUnusedBytes != MaxSizeOrUnusedBytes))
1047 Header.ClassId = LargestClassId;
1048 if (UNLIKELY(Header.ClassId != LargestClassId))
1053 Chunk::UnpackedHeader *Header) {
1056 (static_cast<uptr>(Header->Offset) << MinAlignmentLog));
1060 inline uptr getSize(const void *Ptr, Chunk::UnpackedHeader *Header) {
1061 const uptr SizeOrUnusedBytes = Header->SizeOrUnusedBytes;
1062 if (LIKELY(Header->ClassId))
1066 return SecondaryT::getBlockEnd(getBlockBegin(Ptr, Header)) -
1088 Chunk::UnpackedHeader Header = {};
1099 Header.Offset = (Offset >> MinAlignmentLog) & Chunk::OffsetMask;
1102 Header.ClassId = ClassId & Chunk::ClassIdMask;
1103 Header.State = Chunk::State::Allocated;
1104 Header.OriginOrWasZeroed = Origin & Chunk::OriginMask;
1105 Header.SizeOrUnusedBytes = SizeOrUnusedBytes & Chunk::SizeOrUnusedBytesMask;
1107 &Header);
1142 Chunk::UnpackedHeader Header;
1158 // (1) Header was reclaimed, data was partially reclaimed.
1159 // (2) Header was not reclaimed, all data was reclaimed (e.g. because
1161 // (3) Header was not reclaimed, data was partially reclaimed.
1181 if (getChunkFromBlock(BlockUptr, &PrevUserPtr, &Header) &&
1184 uptr PrevEnd = TaggedUserPtr + Header.SizeOrUnusedBytes;
1190 if (UNLIKELY(FillContents != NoFill && !Header.OriginOrWasZeroed)) {
1220 Chunk::UnpackedHeader Header = {};
1231 Header.Offset = (Offset >> MinAlignmentLog) & Chunk::OffsetMask;
1234 Header.ClassId = ClassId & Chunk::ClassIdMask;
1235 Header.State = Chunk::State::Allocated;
1236 Header.OriginOrWasZeroed = Origin & Chunk::OriginMask;
1237 Header.SizeOrUnusedBytes = SizeOrUnusedBytes & Chunk::SizeOrUnusedBytesMask;
1238 Chunk::storeHeader(Cookie, Ptr, &Header);
1244 Chunk::UnpackedHeader *Header,
1252 !Header->ClassId;
1254 Header->State = Chunk::State::Available;
1256 Header->State = Chunk::State::Quarantined;
1259 Header->OriginOrWasZeroed = 0U;
1261 Header->OriginOrWasZeroed =
1262 Header->ClassId && !TSDRegistry.getDisableMemInit();
1265 Chunk::storeHeader(Cookie, Ptr, Header);
1273 BlockBegin = getBlockBegin(Ptr, Header);
1275 BlockBegin = retagBlock(Options, TaggedPtr, Ptr, Header, Size, true);
1278 const uptr ClassId = Header->ClassId;
1296 retagBlock(Options, TaggedPtr, Ptr, Header, Size, false);
1304 Chunk::UnpackedHeader *Header, const uptr Size,
1310 if (Header->ClassId && !TSDRegistry.getDisableMemInit()) {
1313 Options, reinterpret_cast<uptr>(getBlockBegin(Ptr, Header)),
1314 Header->ClassId);
1322 void *BlockBegin = getBlockBegin(Ptr, Header);
1323 if (BypassQuarantine && !Header->ClassId) {
1332 Chunk::UnpackedHeader *Header) {
1335 return Chunk::isValid(Cookie, reinterpret_cast<void *>(*Chunk), Header);
1499 Chunk::UnpackedHeader *Header, const u32 **Data,
1511 *Header = *reinterpret_cast<const Chunk::UnpackedHeader *>(
1517 if (Header->SizeOrUnusedBytes == 0)
1531 Chunk::UnpackedHeader Header;
1534 if (!ReadBlock(BlockAddr, &ChunkAddr, &Header, &Data, &Tag) ||
1535 Header.State != Chunk::State::Allocated || Tag != FaultAddrTag)
1542 R->allocation_size = Header.SizeOrUnusedBytes;