mirror of
				https://git.suyu.dev/suyu/suyu.git
				synced 2025-11-04 20:44:02 +08:00 
			
		
		
		
	am: Implement ILibraryAppletCreator::CreateStorage.
This commit is contained in:
		
							parent
							
								
									bb9d39b8fe
								
							
						
					
					
						commit
						d73c22bf4d
					
				@ -391,27 +391,6 @@ private:
 | 
			
		||||
    Kernel::SharedPtr<Kernel::Event> state_changed_event;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ILibraryAppletCreator::ILibraryAppletCreator() : ServiceFramework("ILibraryAppletCreator") {
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, &ILibraryAppletCreator::CreateLibraryApplet, "CreateLibraryApplet"},
 | 
			
		||||
        {1, nullptr, "TerminateAllLibraryApplets"},
 | 
			
		||||
        {2, nullptr, "AreAnyLibraryAppletsLeft"},
 | 
			
		||||
        {10, nullptr, "CreateStorage"},
 | 
			
		||||
        {11, nullptr, "CreateTransferMemoryStorage"},
 | 
			
		||||
        {12, nullptr, "CreateHandleStorage"},
 | 
			
		||||
    };
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ILibraryAppletCreator::CreateLibraryApplet(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
    rb.PushIpcInterface<AM::ILibraryAppletAccessor>();
 | 
			
		||||
 | 
			
		||||
    NGLOG_DEBUG(Service_AM, "called");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class IStorageAccessor final : public ServiceFramework<IStorageAccessor> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit IStorageAccessor(std::vector<u8> buffer)
 | 
			
		||||
@ -479,6 +458,39 @@ private:
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ILibraryAppletCreator::ILibraryAppletCreator() : ServiceFramework("ILibraryAppletCreator") {
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, &ILibraryAppletCreator::CreateLibraryApplet, "CreateLibraryApplet"},
 | 
			
		||||
        {1, nullptr, "TerminateAllLibraryApplets"},
 | 
			
		||||
        {2, nullptr, "AreAnyLibraryAppletsLeft"},
 | 
			
		||||
        {10, &ILibraryAppletCreator::CreateStorage, "CreateStorage"},
 | 
			
		||||
        {11, nullptr, "CreateTransferMemoryStorage"},
 | 
			
		||||
        {12, nullptr, "CreateHandleStorage"},
 | 
			
		||||
    };
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ILibraryAppletCreator::CreateLibraryApplet(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
    rb.PushIpcInterface<AM::ILibraryAppletAccessor>();
 | 
			
		||||
 | 
			
		||||
    NGLOG_DEBUG(Service_AM, "called");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ILibraryAppletCreator::CreateStorage(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::RequestParser rp{ctx};
 | 
			
		||||
    const u64 size{rp.Pop<u64>()};
 | 
			
		||||
    std::vector<u8> buffer(size);
 | 
			
		||||
 | 
			
		||||
    IPC::ResponseBuilder rb{rp.MakeBuilder(2, 0, 1)};
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
    rb.PushIpcInterface<AM::IStorage>(std::move(buffer));
 | 
			
		||||
 | 
			
		||||
    NGLOG_DEBUG(Service_AM, "called, size={}", size);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
IApplicationFunctions::IApplicationFunctions() : ServiceFramework("IApplicationFunctions") {
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {1, &IApplicationFunctions::PopLaunchParameter, "PopLaunchParameter"},
 | 
			
		||||
 | 
			
		||||
@ -121,6 +121,7 @@ public:
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    void CreateLibraryApplet(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void CreateStorage(Kernel::HLERequestContext& ctx);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class IApplicationFunctions final : public ServiceFramework<IApplicationFunctions> {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user