mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	Service:nifm: add nifm:a, nifm:s and nifm:u services
This commit is contained in:
		
							parent
							
								
									1a8f5bfb8e
								
							
						
					
					
						commit
						f67a8d87a0
					
				@ -114,6 +114,14 @@ add_library(core STATIC
 | 
			
		||||
    hle/service/hid/hid.h
 | 
			
		||||
    hle/service/lm/lm.cpp
 | 
			
		||||
    hle/service/lm/lm.h
 | 
			
		||||
    hle/service/nifm/nifm.cpp
 | 
			
		||||
    hle/service/nifm/nifm.h
 | 
			
		||||
    hle/service/nifm/nifm_a.cpp
 | 
			
		||||
    hle/service/nifm/nifm_a.h
 | 
			
		||||
    hle/service/nifm/nifm_s.cpp
 | 
			
		||||
    hle/service/nifm/nifm_s.h
 | 
			
		||||
    hle/service/nifm/nifm_u.cpp
 | 
			
		||||
    hle/service/nifm/nifm_u.h
 | 
			
		||||
    hle/service/nvdrv/devices/nvdevice.h
 | 
			
		||||
    hle/service/nvdrv/devices/nvdisp_disp0.cpp
 | 
			
		||||
    hle/service/nvdrv/devices/nvdisp_disp0.h
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										161
									
								
								src/core/hle/service/nifm/nifm.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										161
									
								
								src/core/hle/service/nifm/nifm.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,161 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#include "core/hle/ipc_helpers.h"
 | 
			
		||||
#include "core/hle/service/nifm/nifm.h"
 | 
			
		||||
#include "core/hle/service/nifm/nifm_a.h"
 | 
			
		||||
#include "core/hle/service/nifm/nifm_s.h"
 | 
			
		||||
#include "core/hle/service/nifm/nifm_u.h"
 | 
			
		||||
 | 
			
		||||
namespace Service {
 | 
			
		||||
namespace NIFM {
 | 
			
		||||
 | 
			
		||||
class IScanRequest final : public ServiceFramework<IScanRequest> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit IScanRequest() : ServiceFramework("IScanRequest") {
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "Submit"},
 | 
			
		||||
            {1, nullptr, "IsProcessing"},
 | 
			
		||||
            {2, nullptr, "GetResult"},
 | 
			
		||||
            {3, nullptr, "GetSystemEventReadableHandle"},
 | 
			
		||||
        };
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class IRequest final : public ServiceFramework<IRequest> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit IRequest() : ServiceFramework("IRequest") {
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "GetRequestState"},
 | 
			
		||||
            {1, nullptr, "GetResult"},
 | 
			
		||||
            {2, nullptr, "GetSystemEventReadableHandles"},
 | 
			
		||||
            {3, nullptr, "Cancel"},
 | 
			
		||||
            {4, nullptr, "Submit"},
 | 
			
		||||
            {5, nullptr, "SetRequirement"},
 | 
			
		||||
            {6, nullptr, "SetRequirementPreset"},
 | 
			
		||||
            {8, nullptr, "SetPriority"},
 | 
			
		||||
            {9, nullptr, "SetNetworkProfileId"},
 | 
			
		||||
            {10, nullptr, "SetRejectable"},
 | 
			
		||||
            {11, nullptr, "SetConnectionConfirmationOption"},
 | 
			
		||||
            {12, nullptr, "SetPersistent"},
 | 
			
		||||
            {13, nullptr, "SetInstant"},
 | 
			
		||||
            {14, nullptr, "SetSustainable"},
 | 
			
		||||
            {15, nullptr, "SetRawPriority"},
 | 
			
		||||
            {16, nullptr, "SetGreedy"},
 | 
			
		||||
            {17, nullptr, "SetSharable"},
 | 
			
		||||
            {18, nullptr, "SetRequirementByRevision"},
 | 
			
		||||
            {19, nullptr, "GetRequirement"},
 | 
			
		||||
            {20, nullptr, "GetRevision"},
 | 
			
		||||
            {21, nullptr, "GetAppletInfo"},
 | 
			
		||||
            {22, nullptr, "GetAdditionalInfo"},
 | 
			
		||||
            {23, nullptr, "SetKeptInSleep"},
 | 
			
		||||
            {24, nullptr, "RegisterSocketDescriptor"},
 | 
			
		||||
            {25, nullptr, "UnregisterSocketDescriptor"},
 | 
			
		||||
        };
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class INetworkProfile final : public ServiceFramework<INetworkProfile> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit INetworkProfile() : ServiceFramework("INetworkProfile") {
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "Update"},
 | 
			
		||||
            {1, nullptr, "PersistOld"},
 | 
			
		||||
            {2, nullptr, "Persist"},
 | 
			
		||||
        };
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
IGeneralService::IGeneralService() : ServiceFramework("IGeneralService") {
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {1, &IGeneralService::GetClientId, "GetClientId"},
 | 
			
		||||
        {2, &IGeneralService::CreateScanRequest, "CreateScanRequest"},
 | 
			
		||||
        {4, &IGeneralService::CreateRequest, "CreateRequest"},
 | 
			
		||||
        {6, nullptr, "GetCurrentNetworkProfile"},
 | 
			
		||||
        {7, nullptr, "EnumerateNetworkInterfaces"},
 | 
			
		||||
        {8, nullptr, "GetNetworkProfile"},
 | 
			
		||||
        {9, nullptr, "SetNetworkProfile"},
 | 
			
		||||
        {10, &IGeneralService::RemoveNetworkProfile, "RemoveNetworkProfile"},
 | 
			
		||||
        {11, nullptr, "GetScanDataOld"},
 | 
			
		||||
        {12, nullptr, "GetCurrentIpAddress"},
 | 
			
		||||
        {13, nullptr, "GetCurrentAccessPointOld"},
 | 
			
		||||
        {14, &IGeneralService::CreateTemporaryNetworkProfile, "CreateTemporaryNetworkProfile"},
 | 
			
		||||
        {15, nullptr, "GetCurrentIpConfigInfo"},
 | 
			
		||||
        {16, nullptr, "SetWirelessCommunicationEnabled"},
 | 
			
		||||
        {17, nullptr, "IsWirelessCommunicationEnabled"},
 | 
			
		||||
        {18, nullptr, "GetInternetConnectionStatus"},
 | 
			
		||||
        {19, nullptr, "SetEthernetCommunicationEnabled"},
 | 
			
		||||
        {20, nullptr, "IsEthernetCommunicationEnabled"},
 | 
			
		||||
        {21, nullptr, "IsAnyInternetRequestAccepted"},
 | 
			
		||||
        {22, nullptr, "IsAnyForegroundRequestAccepted"},
 | 
			
		||||
        {23, nullptr, "PutToSleep"},
 | 
			
		||||
        {24, nullptr, "WakeUp"},
 | 
			
		||||
        {25, nullptr, "GetSsidListVersion"},
 | 
			
		||||
        {26, nullptr, "SetExclusiveClient"},
 | 
			
		||||
        {27, nullptr, "GetDefaultIpSetting"},
 | 
			
		||||
        {28, nullptr, "SetDefaultIpSetting"},
 | 
			
		||||
        {29, nullptr, "SetWirelessCommunicationEnabledForTest"},
 | 
			
		||||
        {30, nullptr, "SetEthernetCommunicationEnabledForTest"},
 | 
			
		||||
        {31, nullptr, "GetTelemetorySystemEventReadableHandle"},
 | 
			
		||||
        {32, nullptr, "GetTelemetryInfo"},
 | 
			
		||||
        {33, nullptr, "ConfirmSystemAvailability"},
 | 
			
		||||
        {34, nullptr, "SetBackgroundRequestEnabled"},
 | 
			
		||||
        {35, nullptr, "GetScanData"},
 | 
			
		||||
        {36, nullptr, "GetCurrentAccessPoint"},
 | 
			
		||||
        {37, nullptr, "Shutdown"},
 | 
			
		||||
    };
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void IGeneralService::GetClientId(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    LOG_WARNING(Service, "(STUBBED) called");
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 4};
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
    rb.Push<u64>(0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void IGeneralService::CreateScanRequest(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
    rb.PushIpcInterface<IScanRequest>();
 | 
			
		||||
 | 
			
		||||
    LOG_DEBUG(Service, "called");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void IGeneralService::CreateRequest(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
    rb.PushIpcInterface<IRequest>();
 | 
			
		||||
 | 
			
		||||
    LOG_DEBUG(Service, "called");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void IGeneralService::RemoveNetworkProfile(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    LOG_WARNING(Service, "(STUBBED) called");
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 2};
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void IGeneralService::CreateTemporaryNetworkProfile(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
    rb.PushIpcInterface<INetworkProfile>();
 | 
			
		||||
 | 
			
		||||
    LOG_DEBUG(Service, "called");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void InstallInterfaces(SM::ServiceManager& service_manager) {
 | 
			
		||||
    std::make_shared<NIFM_A>()->InstallAsService(service_manager);
 | 
			
		||||
    std::make_shared<NIFM_S>()->InstallAsService(service_manager);
 | 
			
		||||
    std::make_shared<NIFM_U>()->InstallAsService(service_manager);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace NIFM
 | 
			
		||||
} // namespace Service
 | 
			
		||||
							
								
								
									
										27
									
								
								src/core/hle/service/nifm/nifm.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/core/hle/service/nifm/nifm.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
 | 
			
		||||
namespace Service {
 | 
			
		||||
namespace NIFM {
 | 
			
		||||
 | 
			
		||||
class IGeneralService final : public ServiceFramework<IGeneralService> {
 | 
			
		||||
public:
 | 
			
		||||
    IGeneralService();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    void GetClientId(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void CreateScanRequest(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void CreateRequest(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void RemoveNetworkProfile(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void CreateTemporaryNetworkProfile(Kernel::HLERequestContext& ctx);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void InstallInterfaces(SM::ServiceManager& service_manager);
 | 
			
		||||
 | 
			
		||||
} // namespace NIFM
 | 
			
		||||
} // namespace Service
 | 
			
		||||
							
								
								
									
										36
									
								
								src/core/hle/service/nifm/nifm_a.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								src/core/hle/service/nifm/nifm_a.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,36 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#include "common/logging/log.h"
 | 
			
		||||
#include "core/hle/ipc_helpers.h"
 | 
			
		||||
#include "core/hle/service/nifm/nifm.h"
 | 
			
		||||
#include "core/hle/service/nifm/nifm_a.h"
 | 
			
		||||
 | 
			
		||||
namespace Service {
 | 
			
		||||
namespace NIFM {
 | 
			
		||||
 | 
			
		||||
void NIFM_A::CreateGeneralServiceOld(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
    rb.PushIpcInterface<IGeneralService>();
 | 
			
		||||
    LOG_DEBUG(Service, "called");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void NIFM_A::CreateGeneralService(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
    rb.PushIpcInterface<IGeneralService>();
 | 
			
		||||
    LOG_DEBUG(Service, "called");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
NIFM_A::NIFM_A() : ServiceFramework("nifm:a") {
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {4, &NIFM_A::CreateGeneralServiceOld, "CreateGeneralServiceOld"},
 | 
			
		||||
        {5, &NIFM_A::CreateGeneralService, "CreateGeneralService"},
 | 
			
		||||
    };
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace NIFM
 | 
			
		||||
} // namespace Service
 | 
			
		||||
							
								
								
									
										24
									
								
								src/core/hle/service/nifm/nifm_a.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								src/core/hle/service/nifm/nifm_a.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/kernel/hle_ipc.h"
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
 | 
			
		||||
namespace Service {
 | 
			
		||||
namespace NIFM {
 | 
			
		||||
 | 
			
		||||
class NIFM_A final : public ServiceFramework<NIFM_A> {
 | 
			
		||||
public:
 | 
			
		||||
    NIFM_A();
 | 
			
		||||
    ~NIFM_A() = default;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    void CreateGeneralServiceOld(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void CreateGeneralService(Kernel::HLERequestContext& ctx);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace NIFM
 | 
			
		||||
} // namespace Service
 | 
			
		||||
							
								
								
									
										36
									
								
								src/core/hle/service/nifm/nifm_s.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								src/core/hle/service/nifm/nifm_s.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,36 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#include "common/logging/log.h"
 | 
			
		||||
#include "core/hle/ipc_helpers.h"
 | 
			
		||||
#include "core/hle/service/nifm/nifm.h"
 | 
			
		||||
#include "core/hle/service/nifm/nifm_s.h"
 | 
			
		||||
 | 
			
		||||
namespace Service {
 | 
			
		||||
namespace NIFM {
 | 
			
		||||
 | 
			
		||||
void NIFM_S::CreateGeneralServiceOld(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
    rb.PushIpcInterface<IGeneralService>();
 | 
			
		||||
    LOG_DEBUG(Service, "called");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void NIFM_S::CreateGeneralService(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
    rb.PushIpcInterface<IGeneralService>();
 | 
			
		||||
    LOG_DEBUG(Service, "called");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
NIFM_S::NIFM_S() : ServiceFramework("nifm:s") {
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {4, &NIFM_S::CreateGeneralServiceOld, "CreateGeneralServiceOld"},
 | 
			
		||||
        {5, &NIFM_S::CreateGeneralService, "CreateGeneralService"},
 | 
			
		||||
    };
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace NIFM
 | 
			
		||||
} // namespace Service
 | 
			
		||||
							
								
								
									
										24
									
								
								src/core/hle/service/nifm/nifm_s.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								src/core/hle/service/nifm/nifm_s.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/kernel/hle_ipc.h"
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
 | 
			
		||||
namespace Service {
 | 
			
		||||
namespace NIFM {
 | 
			
		||||
 | 
			
		||||
class NIFM_S final : public ServiceFramework<NIFM_S> {
 | 
			
		||||
public:
 | 
			
		||||
    NIFM_S();
 | 
			
		||||
    ~NIFM_S() = default;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    void CreateGeneralServiceOld(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void CreateGeneralService(Kernel::HLERequestContext& ctx);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace NIFM
 | 
			
		||||
} // namespace Service
 | 
			
		||||
							
								
								
									
										36
									
								
								src/core/hle/service/nifm/nifm_u.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								src/core/hle/service/nifm/nifm_u.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,36 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#include "common/logging/log.h"
 | 
			
		||||
#include "core/hle/ipc_helpers.h"
 | 
			
		||||
#include "core/hle/service/nifm/nifm.h"
 | 
			
		||||
#include "core/hle/service/nifm/nifm_u.h"
 | 
			
		||||
 | 
			
		||||
namespace Service {
 | 
			
		||||
namespace NIFM {
 | 
			
		||||
 | 
			
		||||
void NIFM_U::CreateGeneralServiceOld(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
    rb.PushIpcInterface<IGeneralService>();
 | 
			
		||||
    LOG_DEBUG(Service, "called");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void NIFM_U::CreateGeneralService(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
    rb.PushIpcInterface<IGeneralService>();
 | 
			
		||||
    LOG_DEBUG(Service, "called");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
NIFM_U::NIFM_U() : ServiceFramework("nifm:u") {
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {4, &NIFM_U::CreateGeneralServiceOld, "CreateGeneralServiceOld"},
 | 
			
		||||
        {5, &NIFM_U::CreateGeneralService, "CreateGeneralService"},
 | 
			
		||||
    };
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace NIFM
 | 
			
		||||
} // namespace Service
 | 
			
		||||
							
								
								
									
										24
									
								
								src/core/hle/service/nifm/nifm_u.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								src/core/hle/service/nifm/nifm_u.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/kernel/hle_ipc.h"
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
 | 
			
		||||
namespace Service {
 | 
			
		||||
namespace NIFM {
 | 
			
		||||
 | 
			
		||||
class NIFM_U final : public ServiceFramework<NIFM_U> {
 | 
			
		||||
public:
 | 
			
		||||
    NIFM_U();
 | 
			
		||||
    ~NIFM_U() = default;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    void CreateGeneralServiceOld(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void CreateGeneralService(Kernel::HLERequestContext& ctx);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace NIFM
 | 
			
		||||
} // namespace Service
 | 
			
		||||
@ -22,6 +22,7 @@
 | 
			
		||||
#include "core/hle/service/filesystem/filesystem.h"
 | 
			
		||||
#include "core/hle/service/hid/hid.h"
 | 
			
		||||
#include "core/hle/service/lm/lm.h"
 | 
			
		||||
#include "core/hle/service/nifm/nifm.h"
 | 
			
		||||
#include "core/hle/service/nvdrv/nvdrv.h"
 | 
			
		||||
#include "core/hle/service/pctl/pctl.h"
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
@ -180,6 +181,7 @@ void Init() {
 | 
			
		||||
    FileSystem::InstallInterfaces(*SM::g_service_manager);
 | 
			
		||||
    HID::InstallInterfaces(*SM::g_service_manager);
 | 
			
		||||
    LM::InstallInterfaces(*SM::g_service_manager);
 | 
			
		||||
    NIFM::InstallInterfaces(*SM::g_service_manager);
 | 
			
		||||
    Nvidia::InstallInterfaces(*SM::g_service_manager);
 | 
			
		||||
    PCTL::InstallInterfaces(*SM::g_service_manager);
 | 
			
		||||
    Sockets::InstallInterfaces(*SM::g_service_manager);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user