1// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "base/process/process_handle.h"
6
7#include <unistd.h>
8
9namespace base {
10
11ProcessId GetCurrentProcId() {
12  return getpid();
13}
14
15ProcessHandle GetCurrentProcessHandle() {
16  return GetCurrentProcId();
17}
18
19bool OpenProcessHandle(ProcessId pid, ProcessHandle* handle) {
20  // On Posix platforms, process handles are the same as PIDs, so we
21  // don't need to do anything.
22  *handle = pid;
23  return true;
24}
25
26bool OpenPrivilegedProcessHandle(ProcessId pid, ProcessHandle* handle) {
27  // On POSIX permissions are checked for each operation on process,
28  // not when opening a "handle".
29  return OpenProcessHandle(pid, handle);
30}
31
32bool OpenProcessHandleWithAccess(ProcessId pid,
33                                 uint32 access_flags,
34                                 ProcessHandle* handle) {
35  // On POSIX permissions are checked for each operation on process,
36  // not when opening a "handle".
37  return OpenProcessHandle(pid, handle);
38}
39
40void CloseProcessHandle(ProcessHandle process) {
41  // See OpenProcessHandle, nothing to do.
42  return;
43}
44
45ProcessId GetProcId(ProcessHandle process) {
46  return process;
47}
48
49}  // namespace base
50