brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · cd9b857 Raw
116 lines · cpp
1//===-- SBHostOS.cpp ------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "lldb/API/SBHostOS.h"10#include "lldb/API/SBError.h"11#include "lldb/Host/Config.h"12#include "lldb/Host/FileSystem.h"13#include "lldb/Host/Host.h"14#include "lldb/Host/HostInfo.h"15#include "lldb/Host/HostNativeThread.h"16#include "lldb/Host/HostThread.h"17#include "lldb/Host/ThreadLauncher.h"18#include "lldb/Utility/FileSpec.h"19#include "lldb/Utility/Instrumentation.h"20 21#include "Plugins/ExpressionParser/Clang/ClangHost.h"22#if LLDB_ENABLE_PYTHON23#include "Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h"24#endif25 26#include "llvm/ADT/SmallString.h"27#include "llvm/Support/Path.h"28 29using namespace lldb;30using namespace lldb_private;31 32SBFileSpec SBHostOS::GetProgramFileSpec() {33  LLDB_INSTRUMENT();34 35  SBFileSpec sb_filespec;36  sb_filespec.SetFileSpec(HostInfo::GetProgramFileSpec());37  return sb_filespec;38}39 40SBFileSpec SBHostOS::GetLLDBPythonPath() {41  LLDB_INSTRUMENT();42 43  return GetLLDBPath(ePathTypePythonDir);44}45 46SBFileSpec SBHostOS::GetLLDBPath(lldb::PathType path_type) {47  LLDB_INSTRUMENT_VA(path_type);48 49  FileSpec fspec;50  switch (path_type) {51  case ePathTypeLLDBShlibDir:52    fspec = HostInfo::GetShlibDir();53    break;54  case ePathTypeSupportExecutableDir:55    fspec = HostInfo::GetSupportExeDir();56    break;57  case ePathTypeHeaderDir:58    fspec = HostInfo::GetHeaderDir();59    break;60  case ePathTypePythonDir:61#if LLDB_ENABLE_PYTHON62    fspec = ScriptInterpreterPython::GetPythonDir();63#endif64    break;65  case ePathTypeLLDBSystemPlugins:66    fspec = HostInfo::GetSystemPluginDir();67    break;68  case ePathTypeLLDBUserPlugins:69    fspec = HostInfo::GetUserPluginDir();70    break;71  case ePathTypeLLDBTempSystemDir:72    fspec = HostInfo::GetProcessTempDir();73    break;74  case ePathTypeGlobalLLDBTempSystemDir:75    fspec = HostInfo::GetGlobalTempDir();76    break;77  case ePathTypeClangDir:78    fspec = GetClangResourceDir();79    break;80  }81 82  SBFileSpec sb_fspec;83  sb_fspec.SetFileSpec(fspec);84  return sb_fspec;85}86 87SBFileSpec SBHostOS::GetUserHomeDirectory() {88  LLDB_INSTRUMENT();89  return HostInfo::GetUserHomeDir();90}91 92lldb::thread_t SBHostOS::ThreadCreate(const char *name,93                                      lldb::thread_func_t thread_function,94                                      void *thread_arg, SBError *error_ptr) {95  LLDB_INSTRUMENT_VA(name, thread_function, thread_arg, error_ptr);96  return LLDB_INVALID_HOST_THREAD;97}98 99void SBHostOS::ThreadCreated(const char *name) { LLDB_INSTRUMENT_VA(name); }100 101bool SBHostOS::ThreadCancel(lldb::thread_t thread, SBError *error_ptr) {102  LLDB_INSTRUMENT_VA(thread, error_ptr);103  return false;104}105 106bool SBHostOS::ThreadDetach(lldb::thread_t thread, SBError *error_ptr) {107  LLDB_INSTRUMENT_VA(thread, error_ptr);108  return false;109}110 111bool SBHostOS::ThreadJoin(lldb::thread_t thread, lldb::thread_result_t *result,112                          SBError *error_ptr) {113  LLDB_INSTRUMENT_VA(thread, result, error_ptr);114  return false;115}116