mirror of
https://git.743378673.xyz/MeloNX/MeloNX.git
synced 2025-07-24 15:37:10 +02:00
[WIP] Add support for events (#60)
* Add support for events, move concept of domains to IpcService * Support waiting for KThread, remove some test code, other tweaks * Use move handle on NIFM since I can't test that now, it's better to leave it how it was
This commit is contained in:
parent
4940cf0ea5
commit
4314a8f3e5
101 changed files with 1120 additions and 836 deletions
|
@ -1,4 +1,5 @@
|
|||
using ChocolArm64.Memory;
|
||||
using Ryujinx.Core.OsHle.Handles;
|
||||
using Ryujinx.Core.OsHle.Ipc;
|
||||
using Ryujinx.Core.OsHle.IpcServices.Android;
|
||||
using Ryujinx.Graphics.Gal;
|
||||
|
@ -7,11 +8,13 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Ryujinx.Core.OsHle.IpcServices.Vi
|
||||
{
|
||||
class IHOSBinderDriver : IIpcService, IDisposable
|
||||
class IHOSBinderDriver : IpcService, IDisposable
|
||||
{
|
||||
private Dictionary<int, ServiceProcessRequest> m_Commands;
|
||||
|
||||
public IReadOnlyDictionary<int, ServiceProcessRequest> Commands => m_Commands;
|
||||
public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => m_Commands;
|
||||
|
||||
private KEvent ReleaseEvent;
|
||||
|
||||
private NvFlinger Flinger;
|
||||
|
||||
|
@ -24,7 +27,9 @@ namespace Ryujinx.Core.OsHle.IpcServices.Vi
|
|||
{ 2, GetNativeHandle }
|
||||
};
|
||||
|
||||
Flinger = new NvFlinger(Renderer);
|
||||
ReleaseEvent = new KEvent();
|
||||
|
||||
Flinger = new NvFlinger(Renderer, ReleaseEvent);
|
||||
}
|
||||
|
||||
public long TransactParcel(ServiceCtx Context)
|
||||
|
@ -56,7 +61,9 @@ namespace Ryujinx.Core.OsHle.IpcServices.Vi
|
|||
int Id = Context.RequestData.ReadInt32();
|
||||
uint Unk = Context.RequestData.ReadUInt32();
|
||||
|
||||
Context.Response.HandleDesc = IpcHandleDesc.MakeMove(0xbadcafe);
|
||||
int Handle = Context.Process.HandleTable.OpenHandle(ReleaseEvent);
|
||||
|
||||
Context.Response.HandleDesc = IpcHandleDesc.MakeMove(Handle);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -70,6 +77,8 @@ namespace Ryujinx.Core.OsHle.IpcServices.Vi
|
|||
{
|
||||
if (Disposing)
|
||||
{
|
||||
ReleaseEvent.Dispose();
|
||||
|
||||
Flinger.Dispose();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue