Home | History | Annotate | Download | only in process
      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 
      9 namespace base {
     10 
     11 ProcessId GetCurrentProcId() {
     12   return getpid();
     13 }
     14 
     15 ProcessHandle GetCurrentProcessHandle() {
     16   return GetCurrentProcId();
     17 }
     18 
     19 bool 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 
     26 bool 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 
     32 bool 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 
     40 void CloseProcessHandle(ProcessHandle process) {
     41   // See OpenProcessHandle, nothing to do.
     42   return;
     43 }
     44 
     45 ProcessId GetProcId(ProcessHandle process) {
     46   return process;
     47 }
     48 
     49 }  // namespace base
     50