5#ifndef V8_HEAP_PAGE_METADATA_H_
6#define V8_HEAP_PAGE_METADATA_H_
82 template <
typename Callback>
107 template <RememberedSetType remembered_set>
110 if (typed_slot_set !=
nullptr) {
115 template <RememberedSetType remembered_set>
120 if (typed_slot_set !=
nullptr) {
136struct hash<
i::PageMetadata*> :
hash<i::MemoryChunkMetadata*> {};
138struct hash<const
i::PageMetadata*> :
hash<const i::MemoryChunkMetadata*> {};
static V8_INLINE MemoryChunk * FromAddress(Address addr)
static V8_INLINE constexpr bool IsAligned(Address address)
TypedSlotSet * typed_slot_set()
heap::ListNode< MutablePageMetadata > list_node_
static MutablePageMetadata * cast(MemoryChunkMetadata *metadata)
std::unique_ptr< ActiveSystemPages > active_system_pages_
FreeListCategory ** categories_
PageMetadata * prev_page()
V8_EXPORT_PRIVATE size_t AvailableInFreeList()
size_t AvailableInFreeListFromAllocatedBytes()
void MarkEvacuationCandidate()
void AllocateFreeListCategories()
PageMetadata * next_page()
void ForAllFreeListCategories(Callback callback)
void AssertNoTypedSlotsInFreeMemory(const TypedSlotSet::FreeRangesMap &ranges)
static PageMetadata * cast(MutablePageMetadata *metadata)
static PageMetadata * ConvertNewToOld(PageMetadata *old_page, FreeMode free_mode)
FreeListCategory * free_list_category(FreeListCategoryType type)
void ClearTypedSlotsInFreeMemory(const TypedSlotSet::FreeRangesMap &ranges)
static V8_INLINE PageMetadata * FromAllocationAreaAddress(Address address)
PageMetadata(Heap *heap, BaseSpace *space, size_t size, Address area_start, Address area_end, VirtualMemory reservation)
static PageMetadata * cast(MemoryChunkMetadata *metadata)
void ClearEvacuationCandidate()
const PageMetadata * prev_page() const
V8_EXPORT_PRIVATE void MarkNeverAllocateForTesting()
void InitializeFreeListCategories()
static bool IsAlignedToPageSize(Address addr)
void ReleaseFreeListCategories()
static V8_INLINE PageMetadata * FromHeapObject(Tagged< HeapObject > o)
static bool OnSamePage(Address address1, Address address2)
static V8_INLINE PageMetadata * FromAddress(Address addr)
void DestroyBlackArea(Address start, Address end)
const PageMetadata * next_page() const
ActiveSystemPages * active_system_pages()
V8_EXPORT_PRIVATE void CreateBlackArea(Address start, Address end)
std::map< uint32_t, uint32_t > FreeRangesMap
void ClearInvalidSlots(const FreeRangesMap &invalid_ranges)
void AssertNoInvalidSlots(const FreeRangesMap &invalid_ranges)
int32_t FreeListCategoryType
#define DCHECK_IMPLIES(v1, v2)
#define DCHECK_GE(v1, v2)
#define V8_EXPORT_PRIVATE