Merge pull request #522 from mailwl/mm-u
Service/MM: add service and stub some functions
This commit is contained in:
		| @@ -41,6 +41,7 @@ namespace Log { | |||||||
|     SUB(Service, FS)                                                                               \ |     SUB(Service, FS)                                                                               \ | ||||||
|     SUB(Service, HID)                                                                              \ |     SUB(Service, HID)                                                                              \ | ||||||
|     SUB(Service, LM)                                                                               \ |     SUB(Service, LM)                                                                               \ | ||||||
|  |     SUB(Service, MM)                                                                               \ | ||||||
|     SUB(Service, NFP)                                                                              \ |     SUB(Service, NFP)                                                                              \ | ||||||
|     SUB(Service, NIFM)                                                                             \ |     SUB(Service, NIFM)                                                                             \ | ||||||
|     SUB(Service, NS)                                                                               \ |     SUB(Service, NS)                                                                               \ | ||||||
|   | |||||||
| @@ -61,6 +61,7 @@ enum class Class : ClassType { | |||||||
|     Service_FS,        ///< The FS (Filesystem) service |     Service_FS,        ///< The FS (Filesystem) service | ||||||
|     Service_HID,       ///< The HID (Human interface device) service |     Service_HID,       ///< The HID (Human interface device) service | ||||||
|     Service_LM,        ///< The LM (Logger) service |     Service_LM,        ///< The LM (Logger) service | ||||||
|  |     Service_MM,        ///< The MM (Multimedia) service | ||||||
|     Service_NFP,       ///< The NFP service |     Service_NFP,       ///< The NFP service | ||||||
|     Service_NIFM,      ///< The NIFM (Network interface) service |     Service_NIFM,      ///< The NIFM (Network interface) service | ||||||
|     Service_NS,        ///< The NS services |     Service_NS,        ///< The NS services | ||||||
|   | |||||||
| @@ -148,6 +148,8 @@ add_library(core STATIC | |||||||
|     hle/service/hid/hid.h |     hle/service/hid/hid.h | ||||||
|     hle/service/lm/lm.cpp |     hle/service/lm/lm.cpp | ||||||
|     hle/service/lm/lm.h |     hle/service/lm/lm.h | ||||||
|  |     hle/service/mm/mm_u.cpp | ||||||
|  |     hle/service/mm/mm_u.h | ||||||
|     hle/service/nifm/nifm.cpp |     hle/service/nifm/nifm.cpp | ||||||
|     hle/service/nifm/nifm.h |     hle/service/nifm/nifm.h | ||||||
|     hle/service/nifm/nifm_a.cpp |     hle/service/nifm/nifm_a.cpp | ||||||
|   | |||||||
							
								
								
									
										50
									
								
								src/core/hle/service/mm/mm_u.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								src/core/hle/service/mm/mm_u.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | |||||||
|  | // 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/kernel/client_session.h" | ||||||
|  | #include "core/hle/service/mm/mm_u.h" | ||||||
|  |  | ||||||
|  | namespace Service::MM { | ||||||
|  |  | ||||||
|  | void InstallInterfaces(SM::ServiceManager& service_manager) { | ||||||
|  |     std::make_shared<MM_U>()->InstallAsService(service_manager); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void MM_U::Initialize(Kernel::HLERequestContext& ctx) { | ||||||
|  |     NGLOG_WARNING(Service_MM, "(STUBBED) called"); | ||||||
|  |     IPC::ResponseBuilder rb{ctx, 2}; | ||||||
|  |     rb.Push(RESULT_SUCCESS); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void MM_U::SetAndWait(Kernel::HLERequestContext& ctx) { | ||||||
|  |     IPC::RequestParser rp{ctx}; | ||||||
|  |     min = rp.Pop<u32>(); | ||||||
|  |     max = rp.Pop<u32>(); | ||||||
|  |     current = min; | ||||||
|  |  | ||||||
|  |     NGLOG_WARNING(Service_MM, "(STUBBED) called, min=0x{:X}, max=0x{:X}", min, max); | ||||||
|  |     IPC::ResponseBuilder rb{ctx, 2}; | ||||||
|  |     rb.Push(RESULT_SUCCESS); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void MM_U::Get(Kernel::HLERequestContext& ctx) { | ||||||
|  |     NGLOG_WARNING(Service_MM, "(STUBBED) called"); | ||||||
|  |     IPC::ResponseBuilder rb{ctx, 3}; | ||||||
|  |     rb.Push(RESULT_SUCCESS); | ||||||
|  |     rb.Push(current); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | MM_U::MM_U() : ServiceFramework("mm:u") { | ||||||
|  |     static const FunctionInfo functions[] = { | ||||||
|  |         {0, nullptr, "InitializeOld"},        {1, nullptr, "FinalizeOld"}, | ||||||
|  |         {2, nullptr, "SetAndWaitOld"},        {3, nullptr, "GetOld"}, | ||||||
|  |         {4, &MM_U::Initialize, "Initialize"}, {5, nullptr, "Finalize"}, | ||||||
|  |         {6, &MM_U::SetAndWait, "SetAndWait"}, {7, &MM_U::Get, "Get"}, | ||||||
|  |     }; | ||||||
|  |     RegisterHandlers(functions); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | } // namespace Service::MM | ||||||
							
								
								
									
										29
									
								
								src/core/hle/service/mm/mm_u.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								src/core/hle/service/mm/mm_u.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | |||||||
|  | // 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::MM { | ||||||
|  |  | ||||||
|  | class MM_U final : public ServiceFramework<MM_U> { | ||||||
|  | public: | ||||||
|  |     MM_U(); | ||||||
|  |     ~MM_U() = default; | ||||||
|  |  | ||||||
|  | private: | ||||||
|  |     void Initialize(Kernel::HLERequestContext& ctx); | ||||||
|  |     void SetAndWait(Kernel::HLERequestContext& ctx); | ||||||
|  |     void Get(Kernel::HLERequestContext& ctx); | ||||||
|  |  | ||||||
|  |     u32 min{0}; | ||||||
|  |     u32 max{0}; | ||||||
|  |     u32 current{0}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | /// Registers all MM services with the specified service manager. | ||||||
|  | void InstallInterfaces(SM::ServiceManager& service_manager); | ||||||
|  |  | ||||||
|  | } // namespace Service::MM | ||||||
| @@ -26,6 +26,7 @@ | |||||||
| #include "core/hle/service/friend/friend.h" | #include "core/hle/service/friend/friend.h" | ||||||
| #include "core/hle/service/hid/hid.h" | #include "core/hle/service/hid/hid.h" | ||||||
| #include "core/hle/service/lm/lm.h" | #include "core/hle/service/lm/lm.h" | ||||||
|  | #include "core/hle/service/mm/mm_u.h" | ||||||
| #include "core/hle/service/nfp/nfp.h" | #include "core/hle/service/nfp/nfp.h" | ||||||
| #include "core/hle/service/nifm/nifm.h" | #include "core/hle/service/nifm/nifm.h" | ||||||
| #include "core/hle/service/ns/ns.h" | #include "core/hle/service/ns/ns.h" | ||||||
| @@ -191,6 +192,7 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm) { | |||||||
|     Friend::InstallInterfaces(*sm); |     Friend::InstallInterfaces(*sm); | ||||||
|     HID::InstallInterfaces(*sm); |     HID::InstallInterfaces(*sm); | ||||||
|     LM::InstallInterfaces(*sm); |     LM::InstallInterfaces(*sm); | ||||||
|  |     MM::InstallInterfaces(*sm); | ||||||
|     NFP::InstallInterfaces(*sm); |     NFP::InstallInterfaces(*sm); | ||||||
|     NIFM::InstallInterfaces(*sm); |     NIFM::InstallInterfaces(*sm); | ||||||
|     NS::InstallInterfaces(*sm); |     NS::InstallInterfaces(*sm); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user