Commit 9b1f79de authored by Dan Elphick's avatar Dan Elphick Committed by Commit Bot

Allow marking pages read-only

Add PageRead to PageAccessibilityConfiguration so pages can be marked
read-only.

Matching CL in V8:
https://chromium-review.googlesource.com/c/v8/v8/+/1006756

Bug: v8:7464
Change-Id: I9acdd9d5c00db9b89b1a2103be83fa2dde257b37
Reviewed-on: https://chromium-review.googlesource.com/1013564Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Reviewed-by: default avatarJochen Eisinger <jochen@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553513}
parent afb3f3d4
...@@ -41,6 +41,7 @@ static const size_t kSystemPageBaseMask = ~kSystemPageOffsetMask; ...@@ -41,6 +41,7 @@ static const size_t kSystemPageBaseMask = ~kSystemPageOffsetMask;
enum PageAccessibilityConfiguration { enum PageAccessibilityConfiguration {
PageInaccessible, PageInaccessible,
PageRead,
PageReadWrite, PageReadWrite,
PageReadExecute, PageReadExecute,
// This flag is deprecated and will go away soon. // This flag is deprecated and will go away soon.
......
...@@ -29,6 +29,8 @@ std::atomic<int32_t> s_allocPageErrorCode{0}; ...@@ -29,6 +29,8 @@ std::atomic<int32_t> s_allocPageErrorCode{0};
int GetAccessFlags(PageAccessibilityConfiguration accessibility) { int GetAccessFlags(PageAccessibilityConfiguration accessibility) {
switch (accessibility) { switch (accessibility) {
case PageRead:
return PROT_READ;
case PageReadWrite: case PageReadWrite:
return PROT_READ | PROT_WRITE; return PROT_READ | PROT_WRITE;
case PageReadExecute: case PageReadExecute:
......
...@@ -15,6 +15,8 @@ std::atomic<int32_t> s_allocPageErrorCode{ERROR_SUCCESS}; ...@@ -15,6 +15,8 @@ std::atomic<int32_t> s_allocPageErrorCode{ERROR_SUCCESS};
int GetAccessFlags(PageAccessibilityConfiguration accessibility) { int GetAccessFlags(PageAccessibilityConfiguration accessibility) {
switch (accessibility) { switch (accessibility) {
case PageRead:
return PAGE_READONLY;
case PageReadWrite: case PageReadWrite:
return PAGE_READWRITE; return PAGE_READWRITE;
case PageReadExecute: case PageReadExecute:
......
...@@ -159,6 +159,8 @@ base::LazyInstance<TimeClamper>::Leaky g_time_clamper = ...@@ -159,6 +159,8 @@ base::LazyInstance<TimeClamper>::Leaky g_time_clamper =
base::PageAccessibilityConfiguration GetPageConfig( base::PageAccessibilityConfiguration GetPageConfig(
v8::PageAllocator::Permission permission) { v8::PageAllocator::Permission permission) {
switch (permission) { switch (permission) {
case v8::PageAllocator::Permission::kRead:
return base::PageRead;
case v8::PageAllocator::Permission::kReadWrite: case v8::PageAllocator::Permission::kReadWrite:
return base::PageReadWrite; return base::PageReadWrite;
case v8::PageAllocator::Permission::kReadWriteExecute: case v8::PageAllocator::Permission::kReadWriteExecute:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment