Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(146)

Side by Side Diff: src/base/platform/platform-posix.cc

Issue 2396433008: [wasm] Add guard regions to end of WebAssembly.Memory buffers (Closed)
Patch Set: Cleanup Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Platform-specific code for POSIX goes here. This is not a platform on its 5 // Platform-specific code for POSIX goes here. This is not a platform on its
6 // own, but contains the parts which are the same across the POSIX platforms 6 // own, but contains the parts which are the same across the POSIX platforms
7 // Linux, MacOS, FreeBSD, OpenBSD, NetBSD and QNX. 7 // Linux, MacOS, FreeBSD, OpenBSD, NetBSD and QNX.
8 8
9 #include <errno.h> 9 #include <errno.h>
10 #include <limits.h> 10 #include <limits.h>
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 // Create guard pages. 122 // Create guard pages.
123 void OS::Guard(void* address, const size_t size) { 123 void OS::Guard(void* address, const size_t size) {
124 #if V8_OS_CYGWIN 124 #if V8_OS_CYGWIN
125 DWORD oldprotect; 125 DWORD oldprotect;
126 VirtualProtect(address, size, PAGE_NOACCESS, &oldprotect); 126 VirtualProtect(address, size, PAGE_NOACCESS, &oldprotect);
127 #else 127 #else
128 mprotect(address, size, PROT_NONE); 128 mprotect(address, size, PROT_NONE);
129 #endif 129 #endif
130 } 130 }
131 131
132 // Make a region of memory readable and writable.
133 void OS::Unprotect(void* address, const size_t size) {
Michael Lippautz 2016/10/27 14:41:50 Maybe we should have OS::Protect as a dual functio
Eric Holk 2016/10/28 16:20:13 I think I'd probably do OS::Protect and take flags
134 #if V8_OS_CYGWIN
135 DWORD oldprotect;
136 VirtualProtect(address, size, PAGE_READWRITE, &oldprotect);
137 #else
138 mprotect(address, size, PROT_READ | PROT_WRITE);
139 #endif
140 }
132 141
133 static LazyInstance<RandomNumberGenerator>::type 142 static LazyInstance<RandomNumberGenerator>::type
134 platform_random_number_generator = LAZY_INSTANCE_INITIALIZER; 143 platform_random_number_generator = LAZY_INSTANCE_INITIALIZER;
135 144
136 145
137 void OS::Initialize(int64_t random_seed, bool hard_abort, 146 void OS::Initialize(int64_t random_seed, bool hard_abort,
138 const char* const gc_fake_mmap) { 147 const char* const gc_fake_mmap) {
139 if (random_seed) { 148 if (random_seed) {
140 platform_random_number_generator.Pointer()->SetSeed(random_seed); 149 platform_random_number_generator.Pointer()->SetSeed(random_seed);
141 } 150 }
(...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after
742 751
743 void Thread::SetThreadLocal(LocalStorageKey key, void* value) { 752 void Thread::SetThreadLocal(LocalStorageKey key, void* value) {
744 pthread_key_t pthread_key = LocalKeyToPthreadKey(key); 753 pthread_key_t pthread_key = LocalKeyToPthreadKey(key);
745 int result = pthread_setspecific(pthread_key, value); 754 int result = pthread_setspecific(pthread_key, value);
746 DCHECK_EQ(0, result); 755 DCHECK_EQ(0, result);
747 USE(result); 756 USE(result);
748 } 757 }
749 758
750 } // namespace base 759 } // namespace base
751 } // namespace v8 760 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698