1*6777b538SAndroid Build Coastguard Worker // Copyright 2017 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #include "base/process/process_handle.h" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker #include <lib/zx/process.h> 8*6777b538SAndroid Build Coastguard Worker #include <zircon/process.h> 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker #include "base/fuchsia/koid.h" 11*6777b538SAndroid Build Coastguard Worker #include "base/logging.h" 12*6777b538SAndroid Build Coastguard Worker 13*6777b538SAndroid Build Coastguard Worker namespace base { 14*6777b538SAndroid Build Coastguard Worker GetCurrentProcId()15*6777b538SAndroid Build Coastguard WorkerProcessId GetCurrentProcId() { 16*6777b538SAndroid Build Coastguard Worker return GetProcId(GetCurrentProcessHandle()); 17*6777b538SAndroid Build Coastguard Worker } 18*6777b538SAndroid Build Coastguard Worker GetCurrentProcessHandle()19*6777b538SAndroid Build Coastguard WorkerProcessHandle GetCurrentProcessHandle() { 20*6777b538SAndroid Build Coastguard Worker // Note that zx_process_self() returns a real handle, and ownership is not 21*6777b538SAndroid Build Coastguard Worker // transferred to the caller (i.e. this should never be closed). 22*6777b538SAndroid Build Coastguard Worker return zx_process_self(); 23*6777b538SAndroid Build Coastguard Worker } 24*6777b538SAndroid Build Coastguard Worker GetProcId(ProcessHandle process)25*6777b538SAndroid Build Coastguard WorkerProcessId GetProcId(ProcessHandle process) { 26*6777b538SAndroid Build Coastguard Worker return GetKoid(*zx::unowned_process(process)).value_or(ZX_KOID_INVALID); 27*6777b538SAndroid Build Coastguard Worker } 28*6777b538SAndroid Build Coastguard Worker 29*6777b538SAndroid Build Coastguard Worker } // namespace base 30