// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/process_util.h" #include #include #include #include #include #include #include #include #include #include #include #include #include "base/logging.h" #include "base/string_tokenizer.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_split.h" #include "base/strings/string_util.h" #include "base/sys_info.h" namespace base { ProcessId GetParentProcessId(ProcessHandle process) { struct kinfo_proc info; size_t length; int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process }; if (sysctl(mib, arraysize(mib), &info, &length, NULL, 0) < 0) return -1; return info.ki_ppid; } FilePath GetProcessExecutablePath(ProcessHandle process) { char pathname[PATH_MAX]; size_t length; int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, process }; length = sizeof(pathname); if (sysctl(mib, arraysize(mib), pathname, &length, NULL, 0) < 0 || length == 0) { return FilePath(); } return FilePath(std::string(pathname)); } void EnableTerminationOnOutOfMemory() { DLOG(WARNING) << "Not feasible."; } void EnableTerminationOnHeapCorruption() { // Nothing to do. } bool AdjustOOMScore(ProcessId process, int score) { NOTIMPLEMENTED(); return false; } } // namespace base