mirror of
https://github.com/RKX1209/nsemu.git
synced 2024-05-23 06:27:50 -04:00
42 lines
1.4 KiB
C++
42 lines
1.4 KiB
C++
/* nsemu - LGPL - Copyright 2018 rkx1209<rkx1209dev@gmail.com> */
|
|
#include "Nsemu.hpp"
|
|
#include "IpcStubs.hpp"
|
|
uint32_t SmService::Initialize() {
|
|
return 0;
|
|
}
|
|
|
|
uint32_t SmService::GetService(ServiceName _name, IpcService*& service) {
|
|
std::string name = (char *) _name;
|
|
if (IPC::services.find(name) == IPC::services.end()) {
|
|
ns_print("Unknown service name %s\n", name.c_str());
|
|
//return 0xC15; //error code
|
|
return 0x415; //error code
|
|
}
|
|
service = IPC::services[name];
|
|
ns_print("Found: %s => %p\n", name.c_str(), (void *)service);
|
|
return 0;
|
|
}
|
|
|
|
uint32_t SmService::RegisterService(ServiceName _name, IpcService*& service) {
|
|
std::string name = (char *) _name;
|
|
IpcService *new_srv = new IpcService();
|
|
ns_print("Registering service %s\n", _name);
|
|
IPC::services[name] = new_srv;
|
|
service = new_srv;
|
|
return 0;
|
|
}
|
|
|
|
uint32_t SmService::UnregisterService(ServiceName _name) {
|
|
std::string name = (char *) _name;
|
|
auto it = IPC::services.find(name);
|
|
if (it == IPC::services.end()) {
|
|
ns_print("Unknown service name %s\n", _name);
|
|
return 0xC15; //error code
|
|
}
|
|
IpcService *srv = it->second;
|
|
ns_print("Unregistering service %s\n", _name);
|
|
delete srv;
|
|
IPC::services.erase(it);
|
|
return 0;
|
|
}
|