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
This commit is contained in:
Ac_K 2018-02-28 21:58:04 +01:00 committed by gdkchan
parent 7f0bee2ff8
commit 424e045940
4 changed files with 61 additions and 3 deletions

View file

@ -7,7 +7,7 @@ namespace Ryujinx.Core.OsHle
public const long AddrSpaceStart = 0x08000000; public const long AddrSpaceStart = 0x08000000;
public const long MapRegionAddress = 0x10000000; public const long MapRegionAddress = 0x10000000;
public const long MapRegionSize = 0x40000000; public const long MapRegionSize = 0x10000000;
public const long MainStackSize = 0x100000; public const long MainStackSize = 0x100000;

View file

@ -13,8 +13,11 @@ namespace Ryujinx.Core.OsHle.IpcServices.Bsd
{ {
m_Commands = new Dictionary<int, ServiceProcessRequest>() m_Commands = new Dictionary<int, ServiceProcessRequest>()
{ {
{ 0, Initialize }, { 0, Initialize },
{ 1, StartMonitoring } { 1, StartMonitoring },
{ 2, Socket },
{ 10, Send },
{ 14, Connect }
}; };
} }
@ -56,5 +59,38 @@ namespace Ryujinx.Core.OsHle.IpcServices.Bsd
return 0; 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<sockaddr, 0x21, 0>) -> (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<i8, 0x21, 0>) -> (i32 ret, u32 bsd_errno)
public long Send(ServiceCtx Context)
{
Context.ResponseData.Write(0);
Context.ResponseData.Write(0);
//Todo: Stub
return 0;
}
} }
} }

View file

@ -13,6 +13,7 @@ using Ryujinx.Core.OsHle.IpcServices.NvServices;
using Ryujinx.Core.OsHle.IpcServices.Pctl; using Ryujinx.Core.OsHle.IpcServices.Pctl;
using Ryujinx.Core.OsHle.IpcServices.Pl; using Ryujinx.Core.OsHle.IpcServices.Pl;
using Ryujinx.Core.OsHle.IpcServices.Set; using Ryujinx.Core.OsHle.IpcServices.Set;
using Ryujinx.Core.OsHle.IpcServices.Sfdnsres;
using Ryujinx.Core.OsHle.IpcServices.Sm; using Ryujinx.Core.OsHle.IpcServices.Sm;
using Ryujinx.Core.OsHle.IpcServices.Ssl; using Ryujinx.Core.OsHle.IpcServices.Ssl;
using Ryujinx.Core.OsHle.IpcServices.Time; using Ryujinx.Core.OsHle.IpcServices.Time;
@ -45,6 +46,7 @@ namespace Ryujinx.Core.OsHle.IpcServices
case "pctl:a": return new ServicePctl(); case "pctl:a": return new ServicePctl();
case "pl:u": return new ServicePl(); case "pl:u": return new ServicePl();
case "set": return new ServiceSet(); case "set": return new ServiceSet();
case "sfdnsres": return new ServiceSfdnsres();
case "sm:": return new ServiceSm(); case "sm:": return new ServiceSm();
case "ssl": return new ServiceSsl(); case "ssl": return new ServiceSsl();
case "time:s": return new ServiceTime(); case "time:s": return new ServiceTime();

View file

@ -0,0 +1,20 @@
using Ryujinx.Core.OsHle.Ipc;
using System.Collections.Generic;
namespace Ryujinx.Core.OsHle.IpcServices.Sfdnsres
{
class ServiceSfdnsres : IIpcService
{
private Dictionary<int, ServiceProcessRequest> m_Commands;
public IReadOnlyDictionary<int, ServiceProcessRequest> Commands => m_Commands;
public ServiceSfdnsres()
{
m_Commands = new Dictionary<int, ServiceProcessRequest>()
{
//{ 0, Function }
};
}
}
}