| // Copyright (c) 2013 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. | 
 |  | 
 | #ifndef BASE_PROCESS_PROCESS_HANDLE_H_ | 
 | #define BASE_PROCESS_PROCESS_HANDLE_H_ | 
 |  | 
 | #include "base/base_export.h" | 
 | #include "base/basictypes.h" | 
 | #include "base/files/file_path.h" | 
 | #include "build/build_config.h" | 
 |  | 
 | #include <sys/types.h> | 
 | #if defined(OS_WIN) | 
 | #include <windows.h> | 
 | #endif | 
 |  | 
 | namespace base { | 
 |  | 
 | // ProcessHandle is a platform specific type which represents the underlying OS | 
 | // handle to a process. | 
 | // ProcessId is a number which identifies the process in the OS. | 
 | #if defined(OS_WIN) | 
 | typedef HANDLE ProcessHandle; | 
 | typedef DWORD ProcessId; | 
 | typedef HANDLE UserTokenHandle; | 
 | const ProcessHandle kNullProcessHandle = NULL; | 
 | const ProcessId kNullProcessId = 0; | 
 | #elif defined(OS_POSIX) | 
 | // On POSIX, our ProcessHandle will just be the PID. | 
 | typedef pid_t ProcessHandle; | 
 | typedef pid_t ProcessId; | 
 | const ProcessHandle kNullProcessHandle = 0; | 
 | const ProcessId kNullProcessId = 0; | 
 | #endif  // defined(OS_WIN) | 
 |  | 
 | // Returns the id of the current process. | 
 | BASE_EXPORT ProcessId GetCurrentProcId(); | 
 |  | 
 | // Returns the ProcessHandle of the current process. | 
 | BASE_EXPORT ProcessHandle GetCurrentProcessHandle(); | 
 |  | 
 | // Returns the unique ID for the specified process. This is functionally the | 
 | // same as Windows' GetProcessId(), but works on versions of Windows before | 
 | // Win XP SP1 as well. | 
 | // DEPRECATED. New code should be using Process::Pid() instead. | 
 | BASE_EXPORT ProcessId GetProcId(ProcessHandle process); | 
 |  | 
 | #if defined(OS_POSIX) | 
 | // Returns the path to the executable of the given process. | 
 | BASE_EXPORT FilePath GetProcessExecutablePath(ProcessHandle process); | 
 |  | 
 | // Returns the ID for the parent of the given process. | 
 | BASE_EXPORT ProcessId GetParentProcessId(ProcessHandle process); | 
 | #endif | 
 |  | 
 | }  // namespace base | 
 |  | 
 | #endif  // BASE_PROCESS_PROCESS_HANDLE_H_ |