|
|
@ -31,7 +31,7 @@ public: |
|
|
|
|
|
|
|
|
class IRequest final : public ServiceFramework<IRequest> { |
|
|
class IRequest final : public ServiceFramework<IRequest> { |
|
|
public: |
|
|
public: |
|
|
explicit IRequest() : ServiceFramework("IRequest") { |
|
|
|
|
|
|
|
|
explicit IRequest(Core::System& system) : ServiceFramework("IRequest") { |
|
|
static const FunctionInfo functions[] = { |
|
|
static const FunctionInfo functions[] = { |
|
|
{0, &IRequest::GetRequestState, "GetRequestState"}, |
|
|
{0, &IRequest::GetRequestState, "GetRequestState"}, |
|
|
{1, &IRequest::GetResult, "GetResult"}, |
|
|
{1, &IRequest::GetResult, "GetResult"}, |
|
|
@ -61,7 +61,7 @@ public: |
|
|
}; |
|
|
}; |
|
|
RegisterHandlers(functions); |
|
|
RegisterHandlers(functions); |
|
|
|
|
|
|
|
|
auto& kernel = Core::System::GetInstance().Kernel(); |
|
|
|
|
|
|
|
|
auto& kernel = system.Kernel(); |
|
|
event1 = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Automatic, |
|
|
event1 = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Automatic, |
|
|
"IRequest:Event1"); |
|
|
"IRequest:Event1"); |
|
|
event2 = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Automatic, |
|
|
event2 = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Automatic, |
|
|
@ -130,7 +130,7 @@ public: |
|
|
|
|
|
|
|
|
class IGeneralService final : public ServiceFramework<IGeneralService> { |
|
|
class IGeneralService final : public ServiceFramework<IGeneralService> { |
|
|
public: |
|
|
public: |
|
|
IGeneralService(); |
|
|
|
|
|
|
|
|
IGeneralService(Core::System& system); |
|
|
|
|
|
|
|
|
private: |
|
|
private: |
|
|
void GetClientId(Kernel::HLERequestContext& ctx) { |
|
|
void GetClientId(Kernel::HLERequestContext& ctx) { |
|
|
@ -155,7 +155,7 @@ private: |
|
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1}; |
|
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1}; |
|
|
|
|
|
|
|
|
rb.Push(RESULT_SUCCESS); |
|
|
rb.Push(RESULT_SUCCESS); |
|
|
rb.PushIpcInterface<IRequest>(); |
|
|
|
|
|
|
|
|
rb.PushIpcInterface<IRequest>(system); |
|
|
} |
|
|
} |
|
|
void RemoveNetworkProfile(Kernel::HLERequestContext& ctx) { |
|
|
void RemoveNetworkProfile(Kernel::HLERequestContext& ctx) { |
|
|
LOG_WARNING(Service_NIFM, "(STUBBED) called"); |
|
|
LOG_WARNING(Service_NIFM, "(STUBBED) called"); |
|
|
@ -198,9 +198,11 @@ private: |
|
|
rb.Push(RESULT_SUCCESS); |
|
|
rb.Push(RESULT_SUCCESS); |
|
|
rb.Push<u8>(0); |
|
|
rb.Push<u8>(0); |
|
|
} |
|
|
} |
|
|
|
|
|
Core::System& system; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
IGeneralService::IGeneralService() : ServiceFramework("IGeneralService") { |
|
|
|
|
|
|
|
|
IGeneralService::IGeneralService(Core::System& system) |
|
|
|
|
|
: ServiceFramework("IGeneralService"), system(system) { |
|
|
static const FunctionInfo functions[] = { |
|
|
static const FunctionInfo functions[] = { |
|
|
{1, &IGeneralService::GetClientId, "GetClientId"}, |
|
|
{1, &IGeneralService::GetClientId, "GetClientId"}, |
|
|
{2, &IGeneralService::CreateScanRequest, "CreateScanRequest"}, |
|
|
{2, &IGeneralService::CreateScanRequest, "CreateScanRequest"}, |
|
|
@ -245,7 +247,8 @@ IGeneralService::IGeneralService() : ServiceFramework("IGeneralService") { |
|
|
|
|
|
|
|
|
class NetworkInterface final : public ServiceFramework<NetworkInterface> { |
|
|
class NetworkInterface final : public ServiceFramework<NetworkInterface> { |
|
|
public: |
|
|
public: |
|
|
explicit NetworkInterface(const char* name) : ServiceFramework{name} { |
|
|
|
|
|
|
|
|
explicit NetworkInterface(const char* name, Core::System& system) |
|
|
|
|
|
: ServiceFramework{name}, system(system) { |
|
|
static const FunctionInfo functions[] = { |
|
|
static const FunctionInfo functions[] = { |
|
|
{4, &NetworkInterface::CreateGeneralServiceOld, "CreateGeneralServiceOld"}, |
|
|
{4, &NetworkInterface::CreateGeneralServiceOld, "CreateGeneralServiceOld"}, |
|
|
{5, &NetworkInterface::CreateGeneralService, "CreateGeneralService"}, |
|
|
{5, &NetworkInterface::CreateGeneralService, "CreateGeneralService"}, |
|
|
@ -258,7 +261,7 @@ public: |
|
|
|
|
|
|
|
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1}; |
|
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1}; |
|
|
rb.Push(RESULT_SUCCESS); |
|
|
rb.Push(RESULT_SUCCESS); |
|
|
rb.PushIpcInterface<IGeneralService>(); |
|
|
|
|
|
|
|
|
rb.PushIpcInterface<IGeneralService>(system); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void CreateGeneralService(Kernel::HLERequestContext& ctx) { |
|
|
void CreateGeneralService(Kernel::HLERequestContext& ctx) { |
|
|
@ -266,14 +269,17 @@ public: |
|
|
|
|
|
|
|
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1}; |
|
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1}; |
|
|
rb.Push(RESULT_SUCCESS); |
|
|
rb.Push(RESULT_SUCCESS); |
|
|
rb.PushIpcInterface<IGeneralService>(); |
|
|
|
|
|
|
|
|
rb.PushIpcInterface<IGeneralService>(system); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
|
Core::System& system; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
void InstallInterfaces(SM::ServiceManager& service_manager) { |
|
|
|
|
|
std::make_shared<NetworkInterface>("nifm:a")->InstallAsService(service_manager); |
|
|
|
|
|
std::make_shared<NetworkInterface>("nifm:s")->InstallAsService(service_manager); |
|
|
|
|
|
std::make_shared<NetworkInterface>("nifm:u")->InstallAsService(service_manager); |
|
|
|
|
|
|
|
|
void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system) { |
|
|
|
|
|
std::make_shared<NetworkInterface>("nifm:a", system)->InstallAsService(service_manager); |
|
|
|
|
|
std::make_shared<NetworkInterface>("nifm:s", system)->InstallAsService(service_manager); |
|
|
|
|
|
std::make_shared<NetworkInterface>("nifm:u", system)->InstallAsService(service_manager); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} // namespace Service::NIFM
|
|
|
} // namespace Service::NIFM
|