-
Notifications
You must be signed in to change notification settings - Fork 437
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
3680df6
commit b0adfde
Showing
3 changed files
with
149 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
using Ryujinx.Common.Logging; | ||
|
||
namespace Ryujinx.HLE.HOS.Services.Ldn.Lp2p | ||
{ | ||
class ISfService : IpcService | ||
{ | ||
public ISfService(ServiceCtx context) { } | ||
|
||
[CommandCmif(0)] | ||
// Initialize() | ||
public ResultCode Initialize(ServiceCtx context) | ||
{ | ||
context.ResponseData.Write(0); | ||
|
||
return ResultCode.Success; | ||
} | ||
|
||
[CommandCmif(768)] | ||
// CreateGroup(buffer<nn::lp2p::GroupInfo, 0x31) | ||
public ResultCode CreateGroup(ServiceCtx context) | ||
{ | ||
Logger.Stub?.PrintStub(LogClass.ServiceLdn); | ||
|
||
return ResultCode.Success; | ||
} | ||
|
||
[CommandCmif(1536)] | ||
// SendToOtherGroup(nn::lp2p::MacAddress, nn::lp2p::GroupId, s16, s16, u32, buffer<unknown, 0x21>) | ||
public ResultCode SendToOtherGroup(ServiceCtx context) | ||
{ | ||
Logger.Stub?.PrintStub(LogClass.ServiceLdn); | ||
|
||
return ResultCode.Success; | ||
} | ||
|
||
[CommandCmif(1544)] | ||
// RecvFromOtherGroup(u32, buffer<unknown, 0x22>) -> (nn::lp2p::MacAddress, u16, s16, u32, s32) | ||
public ResultCode RecvFromOtherGroup(ServiceCtx context) | ||
{ | ||
Logger.Stub?.PrintStub(LogClass.ServiceLdn); | ||
|
||
return ResultCode.Success; | ||
} | ||
} | ||
} |
86 changes: 86 additions & 0 deletions
86
src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfServiceMonitor.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
using Ryujinx.Common.Logging; | ||
using Ryujinx.HLE.HOS.Ipc; | ||
using Ryujinx.HLE.HOS.Kernel.Threading; | ||
using Ryujinx.Horizon.Common; | ||
using System; | ||
|
||
namespace Ryujinx.HLE.HOS.Services.Ldn.Lp2p | ||
{ | ||
class ISfServiceMonitor : IpcService | ||
{ | ||
private readonly KEvent _stateChangeEvent; | ||
private readonly KEvent _jointEvent; | ||
private int _stateChangeEventHandle = 0; | ||
private int _jointEventHandle = 0; | ||
|
||
public ISfServiceMonitor(ServiceCtx context) | ||
{ | ||
_stateChangeEvent = new KEvent(context.Device.System.KernelContext); | ||
_jointEvent = new KEvent(context.Device.System.KernelContext); | ||
} | ||
|
||
[CommandCmif(0)] | ||
// Initialize() | ||
public ResultCode Initialize(ServiceCtx context) | ||
{ | ||
context.ResponseData.Write(0); | ||
|
||
return ResultCode.Success; | ||
} | ||
|
||
[CommandCmif(256)] | ||
// AttachNetworkInterfaceStateChangeEvent() -> handle<copy> | ||
public ResultCode AttachNetworkInterfaceStateChangeEvent(ServiceCtx context) | ||
{ | ||
if (context.Process.HandleTable.GenerateHandle(_stateChangeEvent.ReadableEvent, out _stateChangeEventHandle) != Result.Success) | ||
{ | ||
throw new InvalidOperationException("Out of handles!"); | ||
} | ||
|
||
context.Response.HandleDesc = IpcHandleDesc.MakeCopy(_stateChangeEventHandle); | ||
|
||
return ResultCode.Success; | ||
} | ||
|
||
[CommandCmif(288)] | ||
// GetGroupInfo(buffer<nn::lp2p::GroupInfo, 0x32>) | ||
public ResultCode GetGroupInfo(ServiceCtx context) | ||
{ | ||
Logger.Stub?.PrintStub(LogClass.ServiceLdn); | ||
|
||
return ResultCode.Success; | ||
} | ||
|
||
[CommandCmif(296)] | ||
// GetGroupInfo2(buffer<nn::lp2p::GroupInfo, 0x32>, buffer<nn::lp2p::GroupInfo, 0x31>) | ||
public ResultCode GetGroupInfo2(ServiceCtx context) | ||
{ | ||
Logger.Stub?.PrintStub(LogClass.ServiceLdn); | ||
|
||
return ResultCode.Success; | ||
} | ||
|
||
[CommandCmif(312)] | ||
// GetIpConfig(buffer<unknown<0x100>, 0x1a>) | ||
public ResultCode GetIpConfig(ServiceCtx context) | ||
{ | ||
Logger.Stub?.PrintStub(LogClass.ServiceLdn); | ||
|
||
return ResultCode.Success; | ||
} | ||
|
||
[CommandCmif(328)] | ||
// AttachNetworkInterfaceStateChangeEvent() -> handle<copy> | ||
public ResultCode AttachJoinEvent(ServiceCtx context) | ||
{ | ||
if (context.Process.HandleTable.GenerateHandle(_jointEvent.ReadableEvent, out _jointEventHandle) != Result.Success) | ||
{ | ||
throw new InvalidOperationException("Out of handles!"); | ||
} | ||
|
||
context.Response.HandleDesc = IpcHandleDesc.MakeCopy(_jointEventHandle); | ||
|
||
return ResultCode.Success; | ||
} | ||
} | ||
} |