1 //===-- DarwinProcessLauncher.h ---------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef DarwinProcessLauncher_h
11 #define DarwinProcessLauncher_h
12 
13 // C headers
14 #include <mach/machine.h>
15 #include <sys/types.h>
16 
17 // C++ headers
18 #include <functional>
19 
20 // LLDB headers
21 #include "lldb/lldb-enumerations.h"
22 #include "lldb/lldb-forward.h"
23 
24 #include "LaunchFlavor.h"
25 
26 namespace lldb_private {
27 namespace darwin_process_launcher {
28 // =============================================================================
29 /// Launches a process for debugging.
30 ///
31 /// @param[inout] launch_info
32 ///     Specifies details about the process to launch (e.g. path, architecture,
33 ///     etc.).  On output, includes the launched ProcessID (pid).
34 ///
35 /// @param[out] pty_master_fd
36 ///     Returns the master side of the pseudo-terminal used to communicate
37 ///     with stdin/stdout from the launched process.  May be nullptr.
38 ///
39 /// @param[out] launch_flavor
40 ///     Contains the launch flavor used when launching the process.
41 // =============================================================================
42 Status
43 LaunchInferior(ProcessLaunchInfo &launch_info, int *pty_master_fd,
44                lldb_private::process_darwin::LaunchFlavor *launch_flavor);
45 
46 } // darwin_process_launcher
47 } // lldb_private
48 
49 #endif /* DarwinProcessLauncher_h */
50