OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // This file/namespace contains utility functions for enumerating, ending and | 5 // This file/namespace contains utility functions for enumerating, ending and |
6 // computing statistics of processes. | 6 // computing statistics of processes. |
7 | 7 |
8 #ifndef BASE_PROCESS_UTIL_H_ | 8 #ifndef BASE_PROCESS_UTIL_H_ |
9 #define BASE_PROCESS_UTIL_H_ | 9 #define BASE_PROCESS_UTIL_H_ |
10 | 10 |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 typedef int* LaunchSynchronizationHandle; | 233 typedef int* LaunchSynchronizationHandle; |
234 #endif // defined(OS_MACOSX) | 234 #endif // defined(OS_MACOSX) |
235 | 235 |
236 // Options for launching a subprocess that are passed to LaunchProcess(). | 236 // Options for launching a subprocess that are passed to LaunchProcess(). |
237 // The default constructor constructs the object with default options. | 237 // The default constructor constructs the object with default options. |
238 struct LaunchOptions { | 238 struct LaunchOptions { |
239 LaunchOptions() : wait(false), | 239 LaunchOptions() : wait(false), |
240 #if defined(OS_WIN) | 240 #if defined(OS_WIN) |
241 start_hidden(false), inherit_handles(false), as_user(NULL), | 241 start_hidden(false), inherit_handles(false), as_user(NULL), |
242 empty_desktop_name(false), job_handle(NULL), | 242 empty_desktop_name(false), job_handle(NULL), |
| 243 stdin_handle(NULL), |
| 244 stdout_handle(NULL), |
| 245 stderr_handle(NULL), |
243 force_breakaway_from_job_(false) | 246 force_breakaway_from_job_(false) |
244 #else | 247 #else |
245 environ(NULL), fds_to_remap(NULL), maximize_rlimits(NULL), | 248 environ(NULL), fds_to_remap(NULL), maximize_rlimits(NULL), |
246 new_process_group(false) | 249 new_process_group(false) |
247 #if defined(OS_LINUX) | 250 #if defined(OS_LINUX) |
248 , clone_flags(0) | 251 , clone_flags(0) |
249 #endif // OS_LINUX | 252 #endif // OS_LINUX |
250 #if defined(OS_CHROMEOS) | 253 #if defined(OS_CHROMEOS) |
251 , ctrl_terminal_fd(-1) | 254 , ctrl_terminal_fd(-1) |
252 #endif // OS_CHROMEOS | 255 #endif // OS_CHROMEOS |
(...skipping 22 matching lines...) Expand all Loading... |
275 UserTokenHandle as_user; | 278 UserTokenHandle as_user; |
276 | 279 |
277 // If true, use an empty string for the desktop name. | 280 // If true, use an empty string for the desktop name. |
278 bool empty_desktop_name; | 281 bool empty_desktop_name; |
279 | 282 |
280 // If non-NULL, launches the application in that job object. The process will | 283 // If non-NULL, launches the application in that job object. The process will |
281 // be terminated immediately and LaunchProcess() will fail if assignment to | 284 // be terminated immediately and LaunchProcess() will fail if assignment to |
282 // the job object fails. | 285 // the job object fails. |
283 HANDLE job_handle; | 286 HANDLE job_handle; |
284 | 287 |
| 288 // Handles for the redirection of stdin, stdout and stderr. The handles must |
| 289 // be inheritable. If either |stdout_handle| or |stderr_handle| is set then |
| 290 // |stdin_handle| must be set too (i.e. stdin must always be redirected if any |
| 291 // other stream is redirected). The |inherit_handles| flag must be set to |
| 292 // true if any of these handles is set. |
| 293 HANDLE stdin_handle; |
| 294 HANDLE stdout_handle; |
| 295 HANDLE stderr_handle; |
| 296 |
285 // If set to true, ensures that the child process is launched with the | 297 // If set to true, ensures that the child process is launched with the |
286 // CREATE_BREAKAWAY_FROM_JOB flag which allows it to breakout of the parent | 298 // CREATE_BREAKAWAY_FROM_JOB flag which allows it to breakout of the parent |
287 // job if any. | 299 // job if any. |
288 bool force_breakaway_from_job_; | 300 bool force_breakaway_from_job_; |
289 #else | 301 #else |
290 // If non-NULL, set/unset environment variables. | 302 // If non-NULL, set/unset environment variables. |
291 // See documentation of AlterEnvironment(). | 303 // See documentation of AlterEnvironment(). |
292 // This pointer is owned by the caller and must live through the | 304 // This pointer is owned by the caller and must live through the |
293 // call to LaunchProcess(). | 305 // call to LaunchProcess(). |
294 const EnvironmentVector* environ; | 306 const EnvironmentVector* environ; |
(...skipping 588 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
883 // YOUR CODE IS LIKELY TO BE REVERTED. THANK YOU. | 895 // YOUR CODE IS LIKELY TO BE REVERTED. THANK YOU. |
884 // | 896 // |
885 // TODO(shess): Weird place to put it, but this is where the OOM | 897 // TODO(shess): Weird place to put it, but this is where the OOM |
886 // killer currently lives. | 898 // killer currently lives. |
887 BASE_EXPORT void* UncheckedMalloc(size_t size); | 899 BASE_EXPORT void* UncheckedMalloc(size_t size); |
888 #endif // defined(OS_MACOSX) | 900 #endif // defined(OS_MACOSX) |
889 | 901 |
890 } // namespace base | 902 } // namespace base |
891 | 903 |
892 #endif // BASE_PROCESS_UTIL_H_ | 904 #endif // BASE_PROCESS_UTIL_H_ |
OLD | NEW |