| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 | 97 |
| 98 | 98 |
| 99 void* OS::Allocate(const size_t requested, | 99 void* OS::Allocate(const size_t requested, |
| 100 size_t* allocated, | 100 size_t* allocated, |
| 101 bool is_executable) { | 101 bool is_executable) { |
| 102 const size_t msize = RoundUp(requested, getpagesize()); | 102 const size_t msize = RoundUp(requested, getpagesize()); |
| 103 int prot = PROT_READ | PROT_WRITE | (is_executable ? PROT_EXEC : 0); | 103 int prot = PROT_READ | PROT_WRITE | (is_executable ? PROT_EXEC : 0); |
| 104 void* mbase = mmap(NULL, msize, prot, MAP_PRIVATE | MAP_ANON, -1, 0); | 104 void* mbase = mmap(NULL, msize, prot, MAP_PRIVATE | MAP_ANON, -1, 0); |
| 105 | 105 |
| 106 if (mbase == MAP_FAILED) { | 106 if (mbase == MAP_FAILED) { |
| 107 LOG(ISOLATE, StringEvent("OS::Allocate", "mmap failed")); | 107 LOG(Isolate::Current(), StringEvent("OS::Allocate", "mmap failed")); |
| 108 return NULL; | 108 return NULL; |
| 109 } | 109 } |
| 110 *allocated = msize; | 110 *allocated = msize; |
| 111 return mbase; | 111 return mbase; |
| 112 } | 112 } |
| 113 | 113 |
| 114 | 114 |
| 115 void OS::DumpBacktrace() { | 115 void OS::DumpBacktrace() { |
| 116 // Currently unsupported. | 116 // Currently unsupported. |
| 117 } | 117 } |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 return new PosixMemoryMappedFile(file, memory, size); | 158 return new PosixMemoryMappedFile(file, memory, size); |
| 159 } | 159 } |
| 160 | 160 |
| 161 | 161 |
| 162 PosixMemoryMappedFile::~PosixMemoryMappedFile() { | 162 PosixMemoryMappedFile::~PosixMemoryMappedFile() { |
| 163 if (memory_) munmap(memory_, size_); | 163 if (memory_) munmap(memory_, size_); |
| 164 fclose(file_); | 164 fclose(file_); |
| 165 } | 165 } |
| 166 | 166 |
| 167 | 167 |
| 168 void OS::LogSharedLibraryAddresses() { | 168 void OS::LogSharedLibraryAddresses(Isolate* isolate) { |
| 169 } | 169 } |
| 170 | 170 |
| 171 | 171 |
| 172 void OS::SignalCodeMovingGC() { | 172 void OS::SignalCodeMovingGC() { |
| 173 } | 173 } |
| 174 | 174 |
| 175 | 175 |
| 176 struct StackWalker { | 176 struct StackWalker { |
| 177 Vector<OS::StackFrame>& frames; | 177 Vector<OS::StackFrame>& frames; |
| 178 int index; | 178 int index; |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 bool VirtualMemory::ReleaseRegion(void* base, size_t size) { | 354 bool VirtualMemory::ReleaseRegion(void* base, size_t size) { |
| 355 return munmap(base, size) == 0; | 355 return munmap(base, size) == 0; |
| 356 } | 356 } |
| 357 | 357 |
| 358 | 358 |
| 359 bool VirtualMemory::HasLazyCommits() { | 359 bool VirtualMemory::HasLazyCommits() { |
| 360 // TODO(alph): implement for the platform. | 360 // TODO(alph): implement for the platform. |
| 361 return false; | 361 return false; |
| 362 } | 362 } |
| 363 | 363 |
| 364 | |
| 365 void OS::SetUp() { | |
| 366 // Seed the random number generator. | |
| 367 // Convert the current time to a 64-bit integer first, before converting it | |
| 368 // to an unsigned. Going directly will cause an overflow and the seed to be | |
| 369 // set to all ones. The seed will be identical for different instances that | |
| 370 // call this setup code within the same millisecond. | |
| 371 uint64_t seed = static_cast<uint64_t>(TimeCurrentMillis()); | |
| 372 srandom(static_cast<unsigned int>(seed)); | |
| 373 } | |
| 374 | |
| 375 | |
| 376 } } // namespace v8::internal | 364 } } // namespace v8::internal |
| OLD | NEW |