Path: blob/main/contrib/llvm-project/lldb/source/Target/OperatingSystem.cpp
39587 views
//===-- OperatingSystem.cpp -----------------------------------------------===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//78#include "lldb/Target/OperatingSystem.h"9#include "lldb/Core/PluginManager.h"10#include "lldb/Target/Thread.h"1112using namespace lldb;13using namespace lldb_private;1415OperatingSystem *OperatingSystem::FindPlugin(Process *process,16const char *plugin_name) {17OperatingSystemCreateInstance create_callback = nullptr;18if (plugin_name) {19create_callback =20PluginManager::GetOperatingSystemCreateCallbackForPluginName(21plugin_name);22if (create_callback) {23std::unique_ptr<OperatingSystem> instance_up(24create_callback(process, true));25if (instance_up)26return instance_up.release();27}28} else {29for (uint32_t idx = 0;30(create_callback =31PluginManager::GetOperatingSystemCreateCallbackAtIndex(idx)) !=32nullptr;33++idx) {34std::unique_ptr<OperatingSystem> instance_up(35create_callback(process, false));36if (instance_up)37return instance_up.release();38}39}40return nullptr;41}4243OperatingSystem::OperatingSystem(Process *process) : m_process(process) {}4445bool OperatingSystem::IsOperatingSystemPluginThread(46const lldb::ThreadSP &thread_sp) {47if (thread_sp)48return thread_sp->IsOperatingSystemPluginThread();49return false;50}515253