1*30fdc8d8SChris Lattner //===-- ScriptInterpreter.cpp -----------------------------------*- C++ -*-===//
2*30fdc8d8SChris Lattner //
3*30fdc8d8SChris Lattner //                     The LLVM Compiler Infrastructure
4*30fdc8d8SChris Lattner //
5*30fdc8d8SChris Lattner // This file is distributed under the University of Illinois Open Source
6*30fdc8d8SChris Lattner // License. See LICENSE.TXT for details.
7*30fdc8d8SChris Lattner //
8*30fdc8d8SChris Lattner //===----------------------------------------------------------------------===//
9*30fdc8d8SChris Lattner 
10*30fdc8d8SChris Lattner #include "lldb/Interpreter/ScriptInterpreter.h"
11*30fdc8d8SChris Lattner 
12*30fdc8d8SChris Lattner #include <string>
13*30fdc8d8SChris Lattner #include <stdlib.h>
14*30fdc8d8SChris Lattner #include <stdio.h>
15*30fdc8d8SChris Lattner 
16*30fdc8d8SChris Lattner #include "lldb/Core/Error.h"
17*30fdc8d8SChris Lattner #include "lldb/Core/Stream.h"
18*30fdc8d8SChris Lattner #include "lldb/Core/StringList.h"
19*30fdc8d8SChris Lattner #include "lldb/Interpreter/CommandReturnObject.h"
20*30fdc8d8SChris Lattner 
21*30fdc8d8SChris Lattner #include "PseudoTerminal.h"
22*30fdc8d8SChris Lattner 
23*30fdc8d8SChris Lattner using namespace lldb;
24*30fdc8d8SChris Lattner using namespace lldb_private;
25*30fdc8d8SChris Lattner 
26*30fdc8d8SChris Lattner ScriptInterpreter::ScriptInterpreter (ScriptLanguage script_lang) :
27*30fdc8d8SChris Lattner     m_script_lang (script_lang),
28*30fdc8d8SChris Lattner     m_interpreter_pty ()
29*30fdc8d8SChris Lattner {
30*30fdc8d8SChris Lattner     if (m_interpreter_pty.OpenFirstAvailableMaster (O_RDWR|O_NOCTTY, NULL, 0))
31*30fdc8d8SChris Lattner     {
32*30fdc8d8SChris Lattner         const char *slave_name = m_interpreter_pty.GetSlaveName(NULL, 0);
33*30fdc8d8SChris Lattner         if (slave_name)
34*30fdc8d8SChris Lattner             m_pty_slave_name.assign(slave_name);
35*30fdc8d8SChris Lattner     }
36*30fdc8d8SChris Lattner }
37*30fdc8d8SChris Lattner 
38*30fdc8d8SChris Lattner ScriptInterpreter::~ScriptInterpreter ()
39*30fdc8d8SChris Lattner {
40*30fdc8d8SChris Lattner     m_interpreter_pty.CloseMasterFileDescriptor();
41*30fdc8d8SChris Lattner }
42*30fdc8d8SChris Lattner 
43*30fdc8d8SChris Lattner const char *
44*30fdc8d8SChris Lattner ScriptInterpreter::GetScriptInterpreterPtyName ()
45*30fdc8d8SChris Lattner {
46*30fdc8d8SChris Lattner     return m_pty_slave_name.c_str();
47*30fdc8d8SChris Lattner }
48*30fdc8d8SChris Lattner 
49*30fdc8d8SChris Lattner int
50*30fdc8d8SChris Lattner ScriptInterpreter::GetMasterFileDescriptor ()
51*30fdc8d8SChris Lattner {
52*30fdc8d8SChris Lattner     return m_interpreter_pty.GetMasterFileDescriptor();
53*30fdc8d8SChris Lattner }
54*30fdc8d8SChris Lattner 
55*30fdc8d8SChris Lattner void
56*30fdc8d8SChris Lattner ScriptInterpreter::CollectDataForBreakpointCommandCallback
57*30fdc8d8SChris Lattner (
58*30fdc8d8SChris Lattner     BreakpointOptions *bp_options,
59*30fdc8d8SChris Lattner     CommandReturnObject &result
60*30fdc8d8SChris Lattner )
61*30fdc8d8SChris Lattner {
62*30fdc8d8SChris Lattner     result.SetStatus (eReturnStatusFailed);
63*30fdc8d8SChris Lattner     result.AppendError ("ScriptInterpreter::GetScriptCommands(StringList &) is not implemented.");
64*30fdc8d8SChris Lattner }
65*30fdc8d8SChris Lattner 
66*30fdc8d8SChris Lattner 
67