130fdc8d8SChris Lattner //===-- SBHostOS.cpp --------------------------------------------*- C++ -*-===//
230fdc8d8SChris Lattner //
330fdc8d8SChris Lattner //                     The LLVM Compiler Infrastructure
430fdc8d8SChris Lattner //
530fdc8d8SChris Lattner // This file is distributed under the University of Illinois Open Source
630fdc8d8SChris Lattner // License. See LICENSE.TXT for details.
730fdc8d8SChris Lattner //
830fdc8d8SChris Lattner //===----------------------------------------------------------------------===//
930fdc8d8SChris Lattner 
1030fdc8d8SChris Lattner #include "lldb/API/SBHostOS.h"
1130fdc8d8SChris Lattner #include "lldb/API/SBError.h"
1230fdc8d8SChris Lattner #include "lldb/Core/FileSpec.h"
13ceb6b139SCaroline Tice #include "lldb/Core/Log.h"
1430fdc8d8SChris Lattner #include "lldb/Host/Host.h"
1530fdc8d8SChris Lattner 
1630fdc8d8SChris Lattner using namespace lldb;
1730fdc8d8SChris Lattner using namespace lldb_private;
1830fdc8d8SChris Lattner 
1930fdc8d8SChris Lattner 
2030fdc8d8SChris Lattner 
2130fdc8d8SChris Lattner SBFileSpec
2230fdc8d8SChris Lattner SBHostOS::GetProgramFileSpec ()
2330fdc8d8SChris Lattner {
2430fdc8d8SChris Lattner     SBFileSpec sb_filespec;
2530fdc8d8SChris Lattner     sb_filespec.SetFileSpec (Host::GetProgramFileSpec ());
2630fdc8d8SChris Lattner     return sb_filespec;
2730fdc8d8SChris Lattner }
2830fdc8d8SChris Lattner 
2930fdc8d8SChris Lattner lldb::thread_t
3030fdc8d8SChris Lattner SBHostOS::ThreadCreate
3130fdc8d8SChris Lattner (
3230fdc8d8SChris Lattner     const char *name,
3330fdc8d8SChris Lattner     void *(*thread_function)(void *),
3430fdc8d8SChris Lattner     void *thread_arg,
3530fdc8d8SChris Lattner     SBError *error_ptr
3630fdc8d8SChris Lattner )
3730fdc8d8SChris Lattner {
38*2d4edfbcSGreg Clayton     LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
39ceb6b139SCaroline Tice 
40ceb6b139SCaroline Tice     if (log)
41cfd1acedSGreg Clayton         log->Printf ("SBHostOS::ThreadCreate (name=\"%s\", thread_function=%p, thread_arg=%p, error_ptr=%p)", name,
42750cd175SCaroline Tice                      thread_function, thread_arg, error_ptr);
43ceb6b139SCaroline Tice 
44ceb6b139SCaroline Tice     // CAROLINE: FIXME: You need to log a return value?
45ceb6b139SCaroline Tice 
4630fdc8d8SChris Lattner     return Host::ThreadCreate (name, thread_function, thread_arg, error_ptr ? error_ptr->get() : NULL);
4730fdc8d8SChris Lattner }
4830fdc8d8SChris Lattner 
4930fdc8d8SChris Lattner void
5030fdc8d8SChris Lattner SBHostOS::ThreadCreated (const char *name)
5130fdc8d8SChris Lattner {
5230fdc8d8SChris Lattner     Host::ThreadCreated (name);
5330fdc8d8SChris Lattner }
5430fdc8d8SChris Lattner 
5530fdc8d8SChris Lattner bool
5630fdc8d8SChris Lattner SBHostOS::ThreadCancel (lldb::thread_t thread, SBError *error_ptr)
5730fdc8d8SChris Lattner {
5830fdc8d8SChris Lattner     return Host::ThreadCancel (thread, error_ptr ? error_ptr->get() : NULL);
5930fdc8d8SChris Lattner }
6030fdc8d8SChris Lattner 
6130fdc8d8SChris Lattner bool
6230fdc8d8SChris Lattner SBHostOS::ThreadDetach (lldb::thread_t thread, SBError *error_ptr)
6330fdc8d8SChris Lattner {
6430fdc8d8SChris Lattner     return Host::ThreadDetach (thread, error_ptr ? error_ptr->get() : NULL);
6530fdc8d8SChris Lattner }
6630fdc8d8SChris Lattner 
6730fdc8d8SChris Lattner bool
6830fdc8d8SChris Lattner SBHostOS::ThreadJoin (lldb::thread_t thread, void **result, SBError *error_ptr)
6930fdc8d8SChris Lattner {
7030fdc8d8SChris Lattner     return Host::ThreadJoin (thread, result, error_ptr ? error_ptr->get() : NULL);
7130fdc8d8SChris Lattner }
7230fdc8d8SChris Lattner 
7330fdc8d8SChris Lattner 
74