OLD | NEW |
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 Linux goes here. For the POSIX-compatible | 5 // Platform-specific code for Linux goes here. For the POSIX-compatible |
6 // parts, the implementation is in platform-posix.cc. | 6 // parts, the implementation is in platform-posix.cc. |
7 | 7 |
8 #include <pthread.h> | 8 #include <pthread.h> |
9 #include <semaphore.h> | 9 #include <semaphore.h> |
10 #include <signal.h> | 10 #include <signal.h> |
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
368 | 368 |
369 bool VirtualMemory::UncommitRegion(void* base, size_t size) { | 369 bool VirtualMemory::UncommitRegion(void* base, size_t size) { |
370 return mmap(base, | 370 return mmap(base, |
371 size, | 371 size, |
372 PROT_NONE, | 372 PROT_NONE, |
373 MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE | MAP_FIXED, | 373 MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE | MAP_FIXED, |
374 kMmapFd, | 374 kMmapFd, |
375 kMmapFdOffset) != MAP_FAILED; | 375 kMmapFdOffset) != MAP_FAILED; |
376 } | 376 } |
377 | 377 |
378 bool VirtualMemory::ReleasePartialRegion(void* base, size_t size, | |
379 void* free_start, size_t free_size) { | |
380 #if defined(LEAK_SANITIZER) | |
381 __lsan_unregister_root_region(base, size); | |
382 __lsan_register_root_region(base, size - free_size); | |
383 #endif | |
384 return munmap(free_start, free_size) == 0; | |
385 } | |
386 | 378 |
387 bool VirtualMemory::ReleaseRegion(void* base, size_t size) { | 379 bool VirtualMemory::ReleaseRegion(void* base, size_t size) { |
388 #if defined(LEAK_SANITIZER) | 380 #if defined(LEAK_SANITIZER) |
389 __lsan_unregister_root_region(base, size); | 381 __lsan_unregister_root_region(base, size); |
390 #endif | 382 #endif |
391 return munmap(base, size) == 0; | 383 return munmap(base, size) == 0; |
392 } | 384 } |
393 | 385 |
394 | 386 |
395 bool VirtualMemory::HasLazyCommits() { | 387 bool VirtualMemory::HasLazyCommits() { |
396 return true; | 388 return true; |
397 } | 389 } |
398 | 390 |
399 } // namespace base | 391 } // namespace base |
400 } // namespace v8 | 392 } // namespace v8 |
OLD | NEW |