|
|
|
@ -3,6 +3,7 @@
|
|
|
|
|
// Refer to the license.txt file included.
|
|
|
|
|
|
|
|
|
|
#include "core/hle/ipc_helpers.h"
|
|
|
|
|
#include "core/hle/kernel/event.h"
|
|
|
|
|
#include "core/hle/service/nifm/nifm.h"
|
|
|
|
|
#include "core/hle/service/nifm/nifm_a.h"
|
|
|
|
|
#include "core/hle/service/nifm/nifm_s.h"
|
|
|
|
@ -28,9 +29,9 @@ class IRequest final : public ServiceFramework<IRequest> {
|
|
|
|
|
public:
|
|
|
|
|
explicit IRequest() : ServiceFramework("IRequest") {
|
|
|
|
|
static const FunctionInfo functions[] = {
|
|
|
|
|
{0, nullptr, "GetRequestState"},
|
|
|
|
|
{1, nullptr, "GetResult"},
|
|
|
|
|
{2, nullptr, "GetSystemEventReadableHandles"},
|
|
|
|
|
{0, &IRequest::GetRequestState, "GetRequestState"},
|
|
|
|
|
{1, &IRequest::GetResult, "GetResult"},
|
|
|
|
|
{2, &IRequest::GetSystemEventReadableHandles, "GetSystemEventReadableHandles"},
|
|
|
|
|
{3, nullptr, "Cancel"},
|
|
|
|
|
{4, nullptr, "Submit"},
|
|
|
|
|
{5, nullptr, "SetRequirement"},
|
|
|
|
@ -55,7 +56,32 @@ public:
|
|
|
|
|
{25, nullptr, "UnregisterSocketDescriptor"},
|
|
|
|
|
};
|
|
|
|
|
RegisterHandlers(functions);
|
|
|
|
|
|
|
|
|
|
event1 = Kernel::Event::Create(Kernel::ResetType::OneShot, "IRequest:Event1");
|
|
|
|
|
event2 = Kernel::Event::Create(Kernel::ResetType::OneShot, "IRequest:Event2");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
void GetRequestState(Kernel::HLERequestContext& ctx) {
|
|
|
|
|
LOG_WARNING(Service_NIFM, "(STUBBED) called");
|
|
|
|
|
IPC::ResponseBuilder rb{ctx, 3};
|
|
|
|
|
rb.Push(RESULT_SUCCESS);
|
|
|
|
|
rb.Push<u32>(0);
|
|
|
|
|
}
|
|
|
|
|
void GetResult(Kernel::HLERequestContext& ctx) {
|
|
|
|
|
LOG_WARNING(Service_NIFM, "(STUBBED) called");
|
|
|
|
|
IPC::ResponseBuilder rb{ctx, 3};
|
|
|
|
|
rb.Push(RESULT_SUCCESS);
|
|
|
|
|
rb.Push<u32>(0);
|
|
|
|
|
}
|
|
|
|
|
void GetSystemEventReadableHandles(Kernel::HLERequestContext& ctx) {
|
|
|
|
|
LOG_WARNING(Service_NIFM, "(STUBBED) called");
|
|
|
|
|
IPC::ResponseBuilder rb{ctx, 2, 2};
|
|
|
|
|
rb.Push(RESULT_SUCCESS);
|
|
|
|
|
rb.PushCopyObjects(event1, event2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Kernel::SharedPtr<Kernel::Event> event1, event2;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class INetworkProfile final : public ServiceFramework<INetworkProfile> {
|
|
|
|
|