���� JFIF �� � ( %"1"%)+...383,7(-.-
![]() Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20 System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64 User : apache ( 48) PHP Version : 7.4.20 Disable Function : NONE Directory : /home/real/node-v13.0.1/deps/v8/src/base/platform/ |
// Copyright 2012 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Platform-specific code for MacOS goes here. For the POSIX-compatible // parts, the implementation is in platform-posix.cc. #include <dlfcn.h> #include <mach/mach_init.h> #include <mach-o/dyld.h> #include <mach-o/getsect.h> #include <sys/mman.h> #include <unistd.h> #include <AvailabilityMacros.h> #include <errno.h> #include <libkern/OSAtomic.h> #include <mach/mach.h> #include <mach/semaphore.h> #include <mach/task.h> #include <mach/vm_statistics.h> #include <pthread.h> #include <semaphore.h> #include <signal.h> #include <stdarg.h> #include <stdlib.h> #include <string.h> #include <sys/resource.h> #include <sys/sysctl.h> #include <sys/time.h> #include <sys/types.h> #include <cmath> #undef MAP_TYPE #include "src/base/macros.h" #include "src/base/platform/platform-posix-time.h" #include "src/base/platform/platform-posix.h" #include "src/base/platform/platform.h" namespace v8 { namespace base { std::vector<OS::SharedLibraryAddress> OS::GetSharedLibraryAddresses() { std::vector<SharedLibraryAddress> result; unsigned int images_count = _dyld_image_count(); for (unsigned int i = 0; i < images_count; ++i) { const mach_header* header = _dyld_get_image_header(i); if (header == nullptr) continue; #if V8_HOST_ARCH_X64 uint64_t size; char* code_ptr = getsectdatafromheader_64( reinterpret_cast<const mach_header_64*>(header), SEG_TEXT, SECT_TEXT, &size); #else unsigned int size; char* code_ptr = getsectdatafromheader(header, SEG_TEXT, SECT_TEXT, &size); #endif if (code_ptr == nullptr) continue; const intptr_t slide = _dyld_get_image_vmaddr_slide(i); const uintptr_t start = reinterpret_cast<uintptr_t>(code_ptr) + slide; result.push_back(SharedLibraryAddress(_dyld_get_image_name(i), start, start + size, slide)); } return result; } void OS::SignalCodeMovingGC() {} TimezoneCache* OS::CreateTimezoneCache() { return new PosixDefaultTimezoneCache(); } void OS::AdjustSchedulingParams() { #if V8_TARGET_ARCH_X64 || V8_TARGET_ARCH_IA32 { // Check availability of scheduling params. uint32_t val = 0; size_t valSize = sizeof(val); int rc = sysctlbyname("kern.tcsm_available", &val, &valSize, NULL, 0); if (rc < 0 || !val) return; } { // Adjust scheduling params. uint32_t val = 1; int rc = sysctlbyname("kern.tcsm_enable", NULL, NULL, &val, sizeof(val)); DCHECK_GE(rc, 0); USE(rc); } #endif } } // namespace base } // namespace v8