17 parent_space->allocation_granularity(),
base,
18 total_size, parent_space->max_page_permissions()),
19 mapped_size_(mapped_size),
20 parent_space_(parent_space),
21 region_allocator_(
base, mapped_size, parent_space_->page_size()) {
43 return RoundDown(addr, allocation_granularity());
68 static constexpr int kMaxAttempts = 10;
69 for (
int i = 0;
i < kMaxAttempts;
i++) {
113 static constexpr int kMaxAttempts = 10;
114 for (
int i = 0;
i < kMaxAttempts;
i++) {
173std::unique_ptr<v8::VirtualAddressSpace>
175 Address hint,
size_t size,
size_t alignment,
virtual V8_WARN_UNUSED_RESULT bool DiscardSystemPages(Address address, size_t size)
virtual void FreePages(Address address, size_t size)=0
virtual V8_WARN_UNUSED_RESULT bool AllocateGuardRegion(Address address, size_t size)=0
virtual V8_WARN_UNUSED_RESULT bool RecommitPages(Address address, size_t size, PagePermissions permissions)=0
virtual V8_WARN_UNUSED_RESULT Address AllocatePages(Address hint, size_t size, size_t alignment, PagePermissions permissions)=0
virtual void FreeSharedPages(Address address, size_t size)=0
virtual void FreeGuardRegion(Address address, size_t size)=0
virtual V8_WARN_UNUSED_RESULT bool SetPagePermissions(Address address, size_t size, PagePermissions permissions)=0
virtual V8_WARN_UNUSED_RESULT Address AllocateSharedPages(Address hint, size_t size, PagePermissions permissions, PlatformSharedMemoryHandle handle, uint64_t offset)=0
virtual V8_WARN_UNUSED_RESULT bool DecommitPages(Address address, size_t size)=0
size_t mapped_size() const
bool CanAllocateSubspaces() override
void FreeSharedPages(Address address, size_t size) override
bool AllocateGuardRegion(Address address, size_t size) override
bool IsUsableSizeForUnmappedRegion(size_t size) const
bool DiscardSystemPages(Address address, size_t size) override
size_t unmapped_size() const
~EmulatedVirtualAddressSubspace() override
void SetRandomSeed(int64_t seed) override
bool RecommitPages(Address address, size_t size, PagePermissions permissions) override
bool SetPagePermissions(Address address, size_t size, PagePermissions permissions) override
RegionAllocator region_allocator_
Address AllocatePages(Address hint, size_t size, size_t alignment, PagePermissions permissions) override
bool Contains(Address outer_start, size_t outer_size, Address inner_start, size_t inner_size) const
Address AllocateSharedPages(Address hint, size_t size, PagePermissions permissions, PlatformSharedMemoryHandle handle, uint64_t offset) override
std::unique_ptr< v8::VirtualAddressSpace > AllocateSubspace(Address hint, size_t size, size_t alignment, PagePermissions max_page_permissions) override
const size_t mapped_size_
v8::VirtualAddressSpace * parent_space_
void FreeGuardRegion(Address address, size_t size) override
bool DecommitPages(Address address, size_t size) override
bool UnmappedRegionContains(Address addr, size_t length) const
Address RandomPageAddress() override
void FreePages(Address address, size_t size) override
RandomNumberGenerator rng_
EmulatedVirtualAddressSubspace(v8::VirtualAddressSpace *parent_space, Address base, size_t mapped_size, size_t total_size)
bool MappedRegionContains(Address addr, size_t length) const
void SetSeed(int64_t seed)
int64_t NextInt64() V8_WARN_UNUSED_RESULT
Address AllocateRegion(size_t size)
bool AllocateRegionAt(Address requested_address, size_t size, RegionState region_state=RegionState::kAllocated)
size_t FreeRegion(Address address)
static constexpr Address kAllocationFailure
ZoneVector< RpoNumber > & result
constexpr bool IsPowerOfTwo(T value)
constexpr Address kNullAddress
intptr_t PlatformSharedMemoryHandle
#define DCHECK_GE(v1, v2)
#define CHECK_EQ(lhs, rhs)
#define DCHECK(condition)
constexpr T RoundDown(T x, intptr_t m)