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);
457 Chunk::UnpackedHeader Header;
458 Chunk::loadHeader(Cookie, Ptr, &Header);
460 if (UNLIKELY(Header.State != Chunk::State::Allocated))
465 if (UNLIKELY(Header.OriginOrWasZeroed != Origin)) {
467 if (Header.OriginOrWasZeroed != Chunk::Origin::Memalign ||
470 Header.OriginOrWasZeroed, Origin);
474 const uptr Size = getSize(Ptr, &Header);
480 quarantineOrDeallocateChunk(Options, TaggedPtr, &Header, Size);
518 Chunk::UnpackedHeader Header;
519 Chunk::loadHeader(Cookie, OldPtr, &Header);
521 if (UNLIKELY(Header.State != Chunk::State::Allocated))
528 if (UNLIKELY(Header.OriginOrWasZeroed != Chunk::Origin::Malloc))
530 Header.OriginOrWasZeroed,
534 void *BlockBegin = getBlockBegin(OldTaggedPtr, &Header);
537 const uptr ClassId = Header.ClassId;
541 OldSize = Header.SizeOrUnusedBytes;
545 Header.SizeOrUnusedBytes);
565 Header.SizeOrUnusedBytes =
570 Chunk::storeHeader(Cookie, OldPtr, &Header);
592 quarantineOrDeallocateChunk(Options, OldTaggedPtr, &Header, OldSize);
682 Chunk::UnpackedHeader Header;
688 if (!getChunkFromBlock(Block, &Chunk, &Header) &&
689 !getChunkFromBlock(addHeaderTag(Block), &Chunk, &Header))
692 if (!getChunkFromBlock(addHeaderTag(Block), &Chunk, &Header))
695 if (Header.State == Chunk::State::Allocated) {
701 Callback(TaggedChunk, getSize(reinterpret_cast<void *>(Chunk), &Header),
765 Chunk::UnpackedHeader Header;
766 Chunk::loadHeader(Cookie, Ptr, &Header);
769 if (UNLIKELY(Header.State != Chunk::State::Allocated))
772 return getSize(Ptr, &Header);
792 Chunk::UnpackedHeader Header;
793 return Chunk::isValid(Cookie, Ptr, &Header) &&
794 Header.State == Chunk::State::Allocated;
1021 Chunk::UnpackedHeader Header = {};
1026 Header.Offset = MaxOffset & Chunk::OffsetMask;
1027 if (UNLIKELY(Header.Offset != MaxOffset))
1036 Header.SizeOrUnusedBytes = MaxSizeOrUnusedBytes;
1037 if (UNLIKELY(Header.SizeOrUnusedBytes != MaxSizeOrUnusedBytes))
1041 Header.ClassId = LargestClassId;
1042 if (UNLIKELY(Header.ClassId != LargestClassId))
1047 Chunk::UnpackedHeader *Header) {
1050 (static_cast<uptr>(Header->Offset) << MinAlignmentLog));
1054 inline uptr getSize(const void *Ptr, Chunk::UnpackedHeader *Header) {
1055 const uptr SizeOrUnusedBytes = Header->SizeOrUnusedBytes;
1056 if (LIKELY(Header->ClassId))
1060 return SecondaryT::getBlockEnd(getBlockBegin(Ptr, Header)) -
1082 Chunk::UnpackedHeader Header = {};
1093 Header.Offset = (Offset >> MinAlignmentLog) & Chunk::OffsetMask;
1096 Header.ClassId = ClassId & Chunk::ClassIdMask;
1097 Header.State = Chunk::State::Allocated;
1098 Header.OriginOrWasZeroed = Origin & Chunk::OriginMask;
1099 Header.SizeOrUnusedBytes = SizeOrUnusedBytes & Chunk::SizeOrUnusedBytesMask;
1101 &Header);
1136 Chunk::UnpackedHeader Header;
1152 // (1) Header was reclaimed, data was partially reclaimed.
1153 // (2) Header was not reclaimed, all data was reclaimed (e.g. because
1155 // (3) Header was not reclaimed, data was partially reclaimed.
1175 if (getChunkFromBlock(BlockUptr, &PrevUserPtr, &Header) &&
1178 uptr PrevEnd = TaggedUserPtr + Header.SizeOrUnusedBytes;
1184 if (UNLIKELY(FillContents != NoFill && !Header.OriginOrWasZeroed)) {
1214 Chunk::UnpackedHeader Header = {};
1225 Header.Offset = (Offset >> MinAlignmentLog) & Chunk::OffsetMask;
1228 Header.ClassId = ClassId & Chunk::ClassIdMask;
1229 Header.State = Chunk::State::Allocated;
1230 Header.OriginOrWasZeroed = Origin & Chunk::OriginMask;
1231 Header.SizeOrUnusedBytes = SizeOrUnusedBytes & Chunk::SizeOrUnusedBytesMask;
1232 Chunk::storeHeader(Cookie, Ptr, &Header);
1238 Chunk::UnpackedHeader *Header,
1246 !Header->ClassId;
1248 Header->State = Chunk::State::Available;
1250 Header->State = Chunk::State::Quarantined;
1254 Header->OriginOrWasZeroed = 0U;
1257 BlockBegin = getBlockBegin(Ptr, Header);
1259 Header->OriginOrWasZeroed =
1260 Header->ClassId && !TSDRegistry.getDisableMemInit();
1262 retagBlock(Options, TaggedPtr, Ptr, Header, Size, BypassQuarantine);
1265 Chunk::storeHeader(Cookie, Ptr, Header);
1268 const uptr ClassId = Header->ClassId;
1292 Chunk::UnpackedHeader *Header, const uptr Size,
1298 if (Header->ClassId && !TSDRegistry.getDisableMemInit()) {
1301 Options, reinterpret_cast<uptr>(getBlockBegin(Ptr, Header)),
1302 Header->ClassId);
1310 void *BlockBegin = getBlockBegin(Ptr, Header);
1311 if (BypassQuarantine && !Header->ClassId) {
1320 Chunk::UnpackedHeader *Header) {
1323 return Chunk::isValid(Cookie, reinterpret_cast<void *>(*Chunk), Header);
1487 Chunk::UnpackedHeader *Header, const u32 **Data,
1499 *Header = *reinterpret_cast<const Chunk::UnpackedHeader *>(
1505 if (Header->SizeOrUnusedBytes == 0)
1519 Chunk::UnpackedHeader Header;
1522 if (!ReadBlock(BlockAddr, &ChunkAddr, &Header, &Data, &Tag) ||
1523 Header.State != Chunk::State::Allocated || Tag != FaultAddrTag)
1530 R->allocation_size = Header.SizeOrUnusedBytes;