diff options
| author | Ed Maste <emaste@FreeBSD.org> | 2013-08-23 17:46:38 +0000 | 
|---|---|---|
| committer | Ed Maste <emaste@FreeBSD.org> | 2013-08-23 17:46:38 +0000 | 
| commit | f034231a6a1fd5d6395206c1651de8cd9402cca3 (patch) | |
| tree | f561dabc721ad515599172c16da3a4400b7f4aec /source/API/SBHostOS.cpp | |
Notes
Diffstat (limited to 'source/API/SBHostOS.cpp')
| -rw-r--r-- | source/API/SBHostOS.cpp | 85 | 
1 files changed, 85 insertions, 0 deletions
diff --git a/source/API/SBHostOS.cpp b/source/API/SBHostOS.cpp new file mode 100644 index 0000000000000..a8f7db90a1509 --- /dev/null +++ b/source/API/SBHostOS.cpp @@ -0,0 +1,85 @@ +//===-- SBHostOS.cpp --------------------------------------------*- C++ -*-===// +// +//                     The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "lldb/API/SBHostOS.h" +#include "lldb/API/SBError.h" +#include "lldb/Host/FileSpec.h" +#include "lldb/Core/Log.h" +#include "lldb/Host/Host.h" + +using namespace lldb; +using namespace lldb_private; + + + +SBFileSpec +SBHostOS::GetProgramFileSpec () +{ +    SBFileSpec sb_filespec; +    sb_filespec.SetFileSpec (Host::GetProgramFileSpec ()); +    return sb_filespec; +} + +SBFileSpec +SBHostOS::GetLLDBPythonPath () +{ +    SBFileSpec sb_lldb_python_filespec; +    FileSpec lldb_python_spec; +    if (Host::GetLLDBPath (ePathTypePythonDir, lldb_python_spec)) +    { +        sb_lldb_python_filespec.SetFileSpec (lldb_python_spec); +    } +    return sb_lldb_python_filespec; +} + +lldb::thread_t +SBHostOS::ThreadCreate +( +    const char *name, +    void *(*thread_function)(void *), +    void *thread_arg, +    SBError *error_ptr +) +{ +    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API)); + +    if (log) +        log->Printf ("SBHostOS::ThreadCreate (name=\"%s\", thread_function=%p, thread_arg=%p, error_ptr=%p)", name,  +                     thread_function, thread_arg, error_ptr); + +    // FIXME: You should log the return value? + +    return Host::ThreadCreate (name, thread_function, thread_arg, error_ptr ? error_ptr->get() : NULL); +} + +void +SBHostOS::ThreadCreated (const char *name) +{ +    Host::ThreadCreated (name); +} + +bool +SBHostOS::ThreadCancel (lldb::thread_t thread, SBError *error_ptr) +{ +    return Host::ThreadCancel (thread, error_ptr ? error_ptr->get() : NULL); +} + +bool +SBHostOS::ThreadDetach (lldb::thread_t thread, SBError *error_ptr) +{ +    return Host::ThreadDetach (thread, error_ptr ? error_ptr->get() : NULL); +} + +bool +SBHostOS::ThreadJoin (lldb::thread_t thread, void **result, SBError *error_ptr) +{ +    return Host::ThreadJoin (thread, result, error_ptr ? error_ptr->get() : NULL); +} + +  | 
