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