v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
page-allocator.h
Go to the documentation of this file.
1
// Copyright 2017 the V8 project authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#ifndef V8_BASE_PAGE_ALLOCATOR_H_
6
#define V8_BASE_PAGE_ALLOCATOR_H_
7
8
#include <memory>
9
10
#include "
include/v8-platform.h
"
11
#include "
src/base/base-export.h
"
12
#include "
src/base/compiler-specific.h
"
13
14
namespace
v8
{
15
namespace
base
{
16
17
class
SharedMemory;
18
19
class
V8_BASE_EXPORT
PageAllocator
20
:
public
NON_EXPORTED_BASE
(::v8::PageAllocator) {
21
public
:
22
PageAllocator
();
23
~PageAllocator
()
override
=
default
;
24
25
size_t
AllocatePageSize
()
override
{
return
allocate_page_size_; }
26
27
size_t
CommitPageSize
()
override
{
return
commit_page_size_; }
28
29
void
SetRandomMmapSeed(int64_t seed)
override
;
30
31
void
* GetRandomMmapAddr()
override
;
32
33
void
* AllocatePages(
void
* hint,
size_t
size,
size_t
alignment,
34
PageAllocator::Permission
access)
override
;
35
36
bool
CanAllocateSharedPages()
override
;
37
38
std::unique_ptr<v8::PageAllocator::SharedMemory> AllocateSharedPages(
39
size_t
size,
const
void
* original_address)
override
;
40
41
bool
FreePages(
void
* address,
size_t
size)
override
;
42
43
bool
ReleasePages(
void
* address,
size_t
size,
size_t
new_size)
override
;
44
45
bool
SetPermissions(
void
* address,
size_t
size,
46
PageAllocator::Permission
access)
override
;
47
48
bool
RecommitPages(
void
* address,
size_t
size,
49
PageAllocator::Permission
access)
override
;
50
51
bool
DiscardSystemPages(
void
* address,
size_t
size)
override
;
52
53
bool
DecommitPages(
void
* address,
size_t
size)
override
;
54
55
bool
SealPages(
void
* address,
size_t
size)
override
;
56
57
private
:
58
friend
class
v8::base::SharedMemory
;
59
60
void
* RemapShared(
void
* old_address,
void
* new_address,
size_t
size);
61
62
const
size_t
allocate_page_size_
;
63
const
size_t
commit_page_size_
;
64
};
65
66
}
// namespace base
67
}
// namespace v8
68
#endif
// V8_BASE_PAGE_ALLOCATOR_H_
base-export.h
V8_BASE_EXPORT
#define V8_BASE_EXPORT
Definition
base-export.h:26
v8::PageAllocator::Permission
Permission
Definition
v8-platform.h:486
v8::base::PageAllocator
Definition
page-allocator.h:20
v8::base::PageAllocator::allocate_page_size_
const size_t allocate_page_size_
Definition
page-allocator.h:62
v8::base::PageAllocator::AllocatePageSize
size_t AllocatePageSize() override
Definition
page-allocator.h:25
v8::base::PageAllocator::CommitPageSize
size_t CommitPageSize() override
Definition
page-allocator.h:27
v8::base::PageAllocator::commit_page_size_
const size_t commit_page_size_
Definition
page-allocator.h:63
v8::base::PageAllocator::~PageAllocator
~PageAllocator() override=default
v8::base::SharedMemory
Definition
page-allocator.cc:73
base
OpIndex base
Definition
instruction-selector-ia32.cc:65
v8
Definition
api-arguments-inl.h:19
compiler-specific.h
NON_EXPORTED_BASE
#define NON_EXPORTED_BASE(code)
Definition
compiler-specific.h:93
v8-platform.h
src
base
page-allocator.h
Generated on Sun Apr 6 2025 21:08:50 for v8 by
1.12.0