#ifndef PARTITION_ALLOC_PARTITION_ADDRESS_SPACE_H_
#define PARTITION_ALLOC_PARTITION_ADDRESS_SPACE_H_
#include <cstddef>
#include <utility>
#include "partition_alloc/address_pool_manager_types.h"
#include "partition_alloc/build_config.h"
#include "partition_alloc/buildflags.h"
#include "partition_alloc/page_allocator_constants.h"
#include "partition_alloc/partition_alloc_base/bits.h"
#include "partition_alloc/partition_alloc_base/compiler_specific.h"
#include "partition_alloc/partition_alloc_base/component_export.h"
#include "partition_alloc/partition_alloc_base/notreached.h"
#include "partition_alloc/partition_alloc_check.h"
#include "partition_alloc/partition_alloc_config.h"
#include "partition_alloc/partition_alloc_constants.h"
#include "partition_alloc/partition_alloc_forward.h"
#include "partition_alloc/thread_isolation/alignment.h"
#if PA_BUILDFLAG(ENABLE_THREAD_ISOLATION)
#include "partition_alloc/thread_isolation/thread_isolation.h"
#endif
#if PA_BUILDFLAG(HAS_64_BIT_POINTERS)
namespace partition_alloc {
namespace internal {
class PA_COMPONENT_EXPORT(PARTITION_ALLOC) PartitionAddressSpace { … };
PA_ALWAYS_INLINE PartitionAddressSpace::PoolInfo GetPoolInfo(
uintptr_t address) { … }
PA_ALWAYS_INLINE pool_handle GetPool(uintptr_t address) { … }
PA_ALWAYS_INLINE uintptr_t OffsetInBRPPool(uintptr_t address) { … }
}
PA_ALWAYS_INLINE bool IsManagedByPartitionAlloc(uintptr_t address) { … }
PA_ALWAYS_INLINE bool IsManagedByPartitionAllocRegularPool(uintptr_t address) { … }
PA_ALWAYS_INLINE bool IsManagedByPartitionAllocBRPPool(uintptr_t address) { … }
#if PA_BUILDFLAG(GLUE_CORE_POOLS)
PA_ALWAYS_INLINE bool IsManagedByPartitionAllocCorePools(uintptr_t address) { … }
#endif
PA_ALWAYS_INLINE bool IsManagedByPartitionAllocConfigurablePool(
uintptr_t address) { … }
#if PA_BUILDFLAG(ENABLE_THREAD_ISOLATION)
PA_ALWAYS_INLINE bool IsManagedByPartitionAllocThreadIsolatedPool(
uintptr_t address) { … }
#endif
PA_ALWAYS_INLINE bool IsConfigurablePoolAvailable() { … }
}
#endif
#endif