mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-05 22:47:03 +00:00
[orbis-kernel] impi: implement create server/client/session
This commit is contained in:
parent
37295c16a1
commit
8e376c465e
7 changed files with 408 additions and 64 deletions
|
|
@ -116,14 +116,22 @@ public:
|
|||
return {};
|
||||
}
|
||||
|
||||
std::pair<IpmiServer *, bool> createIpmiServer(utils::kstring name) {
|
||||
std::pair<Ref<IpmiServer>, ErrorCode> createIpmiServer(utils::kstring name) {
|
||||
std::lock_guard lock(m_sem_mtx);
|
||||
auto [it, inserted] = mIpmiServers.try_emplace(std::move(name), nullptr);
|
||||
if (inserted) {
|
||||
it->second = knew<IpmiServer>(it->first);
|
||||
|
||||
if (!inserted) {
|
||||
return {it->second, ErrorCode::EXIST};
|
||||
}
|
||||
|
||||
return {it->second.get(), inserted};
|
||||
it->second = knew<IpmiServer>(it->first);
|
||||
|
||||
if (it->second == nullptr) {
|
||||
mIpmiServers.erase(it);
|
||||
return {nullptr, ErrorCode::NOMEM};
|
||||
}
|
||||
|
||||
return {it->second, {}};
|
||||
}
|
||||
|
||||
Ref<IpmiServer> findIpmiServer(std::string_view name) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue