#include "lldb/Host/Terminal.h"
#include "lldb/Host/Config.h"
#include "lldb/Host/PosixApi.h"
#include "llvm/ADT/STLExtras.h"
#include <csignal>
#include <fcntl.h>
#include <optional>
#if LLDB_ENABLE_TERMIOS
#include <termios.h>
#endif
usingnamespacelldb_private;
struct Terminal::Data { … };
bool Terminal::IsATerminal() const { … }
#if !LLDB_ENABLE_TERMIOS
static llvm::Error termiosMissingError() {
return llvm::createStringError(llvm::inconvertibleErrorCode(),
"termios support missing in LLDB");
}
#endif
llvm::Expected<Terminal::Data> Terminal::GetData() { … }
llvm::Error Terminal::SetData(const Terminal::Data &data) { … }
llvm::Error Terminal::SetEcho(bool enabled) { … }
llvm::Error Terminal::SetCanonical(bool enabled) { … }
llvm::Error Terminal::SetRaw() { … }
#if LLDB_ENABLE_TERMIOS
static std::optional<speed_t> baudRateToConst(unsigned int baud_rate) { … }
#endif
llvm::Error Terminal::SetBaudRate(unsigned int baud_rate) { … }
llvm::Error Terminal::SetStopBits(unsigned int stop_bits) { … }
llvm::Error Terminal::SetParity(Terminal::Parity parity) { … }
llvm::Error Terminal::SetParityCheck(Terminal::ParityCheck parity_check) { … }
llvm::Error Terminal::SetHardwareFlowControl(bool enabled) { … }
TerminalState::TerminalState(Terminal term, bool save_process_group)
: … { … }
TerminalState::~TerminalState() { … }
void TerminalState::Clear() { … }
bool TerminalState::Save(Terminal term, bool save_process_group) { … }
bool TerminalState::Restore() const { … }
bool TerminalState::IsValid() const { … }
bool TerminalState::TFlagsIsValid() const { … }
bool TerminalState::TTYStateIsValid() const { … }
bool TerminalState::ProcessGroupIsValid() const { … }