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