#ifndef PARTITION_ALLOC_PARTITION_SUPERPAGE_EXTENT_ENTRY_H_
#define PARTITION_ALLOC_PARTITION_SUPERPAGE_EXTENT_ENTRY_H_
#include <cstdint>
#include "partition_alloc/address_pool_manager.h"
#include "partition_alloc/address_pool_manager_types.h"
#include "partition_alloc/partition_alloc_constants.h"
#include "partition_alloc/partition_alloc_forward.h"
#include "partition_alloc/partition_dcheck_helper.h"
#include "partition_alloc/reservation_offset_table.h"
namespace partition_alloc::internal {
template <MetadataKind kind>
struct PartitionSuperPageExtentEntry;
template <MetadataKind kind>
struct PartitionSuperPageExtentEntryBase { … };
template <MetadataKind kind>
struct PartitionSuperPageExtentEntry;
template <>
struct PartitionSuperPageExtentEntry<MetadataKind::kReadOnly>
: public PartitionSuperPageExtentEntryBase<MetadataKind::kReadOnly> { … };
template <>
struct PartitionSuperPageExtentEntry<MetadataKind::kWritable>
: public PartitionSuperPageExtentEntryBase<MetadataKind::kWritable> { … };
static_assert …;
static_assert …;
static_assert …;
PA_ALWAYS_INLINE uintptr_t SuperPagesBeginFromExtent(
const PartitionSuperPageExtentEntry<MetadataKind::kReadOnly>* extent) { … }
PA_ALWAYS_INLINE uintptr_t SuperPagesEndFromExtent(
const PartitionSuperPageExtentEntry<MetadataKind::kReadOnly>* extent) { … }
}
#endif