aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Horizon/Sdk
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Horizon/Sdk')
-rw-r--r--src/Ryujinx.Horizon/Sdk/MmNv/IRequest.cs17
-rw-r--r--src/Ryujinx.Horizon/Sdk/MmNv/Module.cs15
-rw-r--r--src/Ryujinx.Horizon/Sdk/MmNv/Session.cs26
3 files changed, 58 insertions, 0 deletions
diff --git a/src/Ryujinx.Horizon/Sdk/MmNv/IRequest.cs b/src/Ryujinx.Horizon/Sdk/MmNv/IRequest.cs
new file mode 100644
index 00000000..300b957f
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/MmNv/IRequest.cs
@@ -0,0 +1,17 @@
+using Ryujinx.Horizon.Common;
+using Ryujinx.Horizon.Sdk.Sf;
+
+namespace Ryujinx.Horizon.Sdk.MmNv
+{
+ interface IRequest : IServiceObject
+ {
+ Result InitializeOld(Module module, uint fgmPriority, uint autoClearEvent);
+ Result FinalizeOld(Module module);
+ Result SetAndWaitOld(Module module, uint clockRateMin, int clockRateMax);
+ Result GetOld(out uint clockRateActual, Module module);
+ Result Initialize(out uint requestId, Module module, uint fgmPriority, uint autoClearEvent);
+ Result Finalize(uint requestId);
+ Result SetAndWait(uint requestId, uint clockRateMin, int clockRateMax);
+ Result Get(out uint clockRateActual, uint requestId);
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/MmNv/Module.cs b/src/Ryujinx.Horizon/Sdk/MmNv/Module.cs
new file mode 100644
index 00000000..e029d037
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/MmNv/Module.cs
@@ -0,0 +1,15 @@
+namespace Ryujinx.Horizon.Sdk.MmNv
+{
+ enum Module : uint
+ {
+ Cpu,
+ Gpu,
+ Emc,
+ SysBus,
+ MSelect,
+ NvDec,
+ NvEnc,
+ NvJpg,
+ Test,
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/MmNv/Session.cs b/src/Ryujinx.Horizon/Sdk/MmNv/Session.cs
new file mode 100644
index 00000000..b9158569
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/MmNv/Session.cs
@@ -0,0 +1,26 @@
+namespace Ryujinx.Horizon.Sdk.MmNv
+{
+ class Session
+ {
+ public Module Module { get; }
+ public uint Id { get; }
+ public bool IsAutoClearEvent { get; }
+ public uint ClockRateMin { get; private set; }
+ public int ClockRateMax { get; private set; }
+
+ public Session(uint id, Module module, bool isAutoClearEvent)
+ {
+ Module = module;
+ Id = id;
+ IsAutoClearEvent = isAutoClearEvent;
+ ClockRateMin = 0;
+ ClockRateMax = -1;
+ }
+
+ public void SetAndWait(uint clockRateMin, int clockRateMax)
+ {
+ ClockRateMin = clockRateMin;
+ ClockRateMax = clockRateMax;
+ }
+ }
+}