// Copyright 2017 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/process_handle.h" #include #include #include #include "base/logging.h" namespace base { ProcessId GetCurrentProcId() { return GetProcId(GetCurrentProcessHandle()); } ProcessHandle GetCurrentProcessHandle() { // Note that zx_process_self() returns a real handle, and ownership is not // transferred to the caller (i.e. this should never be closed). return zx_process_self(); } ProcessId GetProcId(ProcessHandle process) { zx_info_handle_basic_t basic; zx_status_t status = zx_object_get_info(process, ZX_INFO_HANDLE_BASIC, &basic, sizeof(basic), nullptr, nullptr); if (status != ZX_OK) { DLOG(ERROR) << "zx_object_get_info failed: " << zx_status_get_string(status); return ZX_KOID_INVALID; } return basic.koid; } } // namespace base