aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Horizon/Sdk/Sf
diff options
context:
space:
mode:
authorAc_K <Acoustik666@gmail.com>2024-01-25 23:06:53 +0100
committerGitHub <noreply@github.com>2024-01-25 23:06:53 +0100
commitcd37c75b82f97ad5d3bf6317ffcde62c06a6e920 (patch)
treedb4f6e9630878a4b32c8880ef95f7c877e20aab0 /src/Ryujinx.Horizon/Sdk/Sf
parent43705c2320c2ff7c8f6dca1141f3bf56033966d4 (diff)
Horizon: Implement arp:r and arp:w services (#5802)
* Horizon: Implement arp:r and arp:w services * Fix formatting * Remove HLE arp services * Revert "Remove HLE arp services" This reverts commit c576fcccadb963db56b96bacabd1c1ac7abfb1ab. * Keep LibHac impl since it's used in bcat * Addresses gdkchan's feedback * ArpApi in PrepoIpcServer and remove LmApi * Fix 2 * Fixes ArpApi init * Fix encoding * Update PrepoService.cs * Fix prepo
Diffstat (limited to 'src/Ryujinx.Horizon/Sdk/Sf')
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifRequest.cs7
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Hipc/HipcBufferDescriptor.cs7
2 files changed, 14 insertions, 0 deletions
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifRequest.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifRequest.cs
index d409be5b..62c15baa 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifRequest.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifRequest.cs
@@ -10,5 +10,12 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
public Span<ushort> OutPointerSizes;
public Span<uint> Objects;
public int ServerPointerSize;
+ public int CurrentInPointerId;
+ public int SendBufferIndex;
+ public int RecvBufferIndex;
+ public int ExchBufferIndex;
+ public int SendStaticIndex;
+ public int RecvListIndex;
+ public int OutPointerSizeIndex;
}
}
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Hipc/HipcBufferDescriptor.cs b/src/Ryujinx.Horizon/Sdk/Sf/Hipc/HipcBufferDescriptor.cs
index 03ef6d3f..4e962894 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Hipc/HipcBufferDescriptor.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Hipc/HipcBufferDescriptor.cs
@@ -11,5 +11,12 @@ namespace Ryujinx.Horizon.Sdk.Sf.Hipc
public ulong Address => _addressLow | (((ulong)_word2 << 4) & 0xf00000000UL) | (((ulong)_word2 << 34) & 0x7000000000UL);
public ulong Size => _sizeLow | ((ulong)_word2 << 8) & 0xf00000000UL;
public HipcBufferMode Mode => (HipcBufferMode)(_word2 & 3);
+
+ public HipcBufferDescriptor(ulong address, ulong size, HipcBufferMode mode)
+ {
+ _sizeLow = (uint)size;
+ _addressLow = (uint)address;
+ _word2 = (uint)mode | ((uint)(address >> 34) & 0x1c) | ((uint)(size >> 32) << 24) | ((uint)(address >> 4) & 0xf0000000);
+ }
}
}