From 424e0459403fd7ffeb8980b16a6a9e3a1201c5e6 Mon Sep 17 00:00:00 2001 From: Ac_K Date: Wed, 28 Feb 2018 21:58:04 +0100 Subject: [PATCH] More stubs (#47) * Stubs implementations Services Bsd, Nifm & SSL stubs implementations Objects IGeneralService, IRequest stubs implementations. Fake-Fix GetAvailableLanguageCodes stub too ^^! * More stubs - Fix SvcGetInfo loops by gdkchan. - Implement stub for Sfdnsres service. - Add more stubs for Bsd service. * Update ServiceSfdnsres.cs --- Ryujinx.Core/OsHle/MemoryRegions.cs | 2 +- Ryujinx.Core/OsHle/Services/Bsd/ServiceBsd.cs | 40 ++++++++++++++++++- Ryujinx.Core/OsHle/Services/ServiceFactory.cs | 2 + .../Services/Sfdnsres/ServiceSfdnsres.cs | 20 ++++++++++ 4 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 Ryujinx.Core/OsHle/Services/Sfdnsres/ServiceSfdnsres.cs diff --git a/Ryujinx.Core/OsHle/MemoryRegions.cs b/Ryujinx.Core/OsHle/MemoryRegions.cs index 3b6904260..e362ba9fd 100644 --- a/Ryujinx.Core/OsHle/MemoryRegions.cs +++ b/Ryujinx.Core/OsHle/MemoryRegions.cs @@ -7,7 +7,7 @@ namespace Ryujinx.Core.OsHle public const long AddrSpaceStart = 0x08000000; public const long MapRegionAddress = 0x10000000; - public const long MapRegionSize = 0x40000000; + public const long MapRegionSize = 0x10000000; public const long MainStackSize = 0x100000; diff --git a/Ryujinx.Core/OsHle/Services/Bsd/ServiceBsd.cs b/Ryujinx.Core/OsHle/Services/Bsd/ServiceBsd.cs index fa47d9445..b59444127 100644 --- a/Ryujinx.Core/OsHle/Services/Bsd/ServiceBsd.cs +++ b/Ryujinx.Core/OsHle/Services/Bsd/ServiceBsd.cs @@ -13,8 +13,11 @@ namespace Ryujinx.Core.OsHle.IpcServices.Bsd { m_Commands = new Dictionary() { - { 0, Initialize }, - { 1, StartMonitoring } + { 0, Initialize }, + { 1, StartMonitoring }, + { 2, Socket }, + { 10, Send }, + { 14, Connect } }; } @@ -56,5 +59,38 @@ namespace Ryujinx.Core.OsHle.IpcServices.Bsd return 0; } + + //Socket(u32 domain, u32 type, u32 protocol) -> (i32 ret, u32 bsd_errno) + public long Socket(ServiceCtx Context) + { + Context.ResponseData.Write(0); + Context.ResponseData.Write(0); + + //Todo: Stub + + return 0; + } + + //Connect(u32 socket, buffer) -> (i32 ret, u32 bsd_errno) + public long Connect(ServiceCtx Context) + { + Context.ResponseData.Write(0); + Context.ResponseData.Write(0); + + //Todo: Stub + + return 0; + } + + //Send(u32 socket, u32 flags, buffer) -> (i32 ret, u32 bsd_errno) + public long Send(ServiceCtx Context) + { + Context.ResponseData.Write(0); + Context.ResponseData.Write(0); + + //Todo: Stub + + return 0; + } } } \ No newline at end of file diff --git a/Ryujinx.Core/OsHle/Services/ServiceFactory.cs b/Ryujinx.Core/OsHle/Services/ServiceFactory.cs index aae624534..c5da717e7 100644 --- a/Ryujinx.Core/OsHle/Services/ServiceFactory.cs +++ b/Ryujinx.Core/OsHle/Services/ServiceFactory.cs @@ -13,6 +13,7 @@ using Ryujinx.Core.OsHle.IpcServices.NvServices; using Ryujinx.Core.OsHle.IpcServices.Pctl; using Ryujinx.Core.OsHle.IpcServices.Pl; using Ryujinx.Core.OsHle.IpcServices.Set; +using Ryujinx.Core.OsHle.IpcServices.Sfdnsres; using Ryujinx.Core.OsHle.IpcServices.Sm; using Ryujinx.Core.OsHle.IpcServices.Ssl; using Ryujinx.Core.OsHle.IpcServices.Time; @@ -45,6 +46,7 @@ namespace Ryujinx.Core.OsHle.IpcServices case "pctl:a": return new ServicePctl(); case "pl:u": return new ServicePl(); case "set": return new ServiceSet(); + case "sfdnsres": return new ServiceSfdnsres(); case "sm:": return new ServiceSm(); case "ssl": return new ServiceSsl(); case "time:s": return new ServiceTime(); diff --git a/Ryujinx.Core/OsHle/Services/Sfdnsres/ServiceSfdnsres.cs b/Ryujinx.Core/OsHle/Services/Sfdnsres/ServiceSfdnsres.cs new file mode 100644 index 000000000..f110ae736 --- /dev/null +++ b/Ryujinx.Core/OsHle/Services/Sfdnsres/ServiceSfdnsres.cs @@ -0,0 +1,20 @@ +using Ryujinx.Core.OsHle.Ipc; +using System.Collections.Generic; + +namespace Ryujinx.Core.OsHle.IpcServices.Sfdnsres +{ + class ServiceSfdnsres : IIpcService + { + private Dictionary m_Commands; + + public IReadOnlyDictionary Commands => m_Commands; + + public ServiceSfdnsres() + { + m_Commands = new Dictionary() + { + //{ 0, Function } + }; + } + } +}