| 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 |