Skip to content

Commit 504c8a5

Browse files
committed
Added: API Compatibility Shim for legacy process_vm_readv_k32 function.
1 parent 25b5d41 commit 504c8a5

10 files changed

Lines changed: 25 additions & 2 deletions

File tree

src/Reloaded.Memory/ExternalMemory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ private bool ReadProcessMemory(nuint location, void* buffer, nuint numBytes)
201201
return Kernel32.ReadProcessMemory(_processHandle, location, (nuint)buffer, numBytes, out _);
202202

203203
if (Polyfills.IsLinux())
204-
return Posix.process_vm_readv_k32(_processHandle, location, (nuint)buffer, numBytes);
204+
return Posix.process_vm_readv_k32_2(_processHandle, location, (nuint)buffer, numBytes);
205205

206206
ThrowHelpers.ThrowPlatformNotSupportedException();
207207
return false;

src/Reloaded.Memory/Native/Unix/Posix.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,21 @@ public struct IoVec
128128
public nuint iov_len;
129129
}
130130

131+
/// <summary>
132+
/// Helper around
133+
/// <see
134+
/// cref="process_vm_readv(int,Reloaded.Memory.Native.Unix.Posix.IoVec*,ulong,Reloaded.Memory.Native.Unix.Posix.IoVec*,ulong,ulong)" />
135+
/// but with an API similar to <see cref="Kernel32.ReadProcessMemory" />.
136+
/// </summary>
137+
/// <param name="processId">Id of the process to read from.</param>
138+
/// <param name="localIov">Local memory address.</param>
139+
/// <param name="remoteIov">Remote memory address.</param>
140+
/// <param name="numBytes">Memory size.</param>
141+
/// <returns>True on success, else false.</returns>
142+
[Obsolete("Use process_vm_readv_k32_2 instead. This function has incorrect parameter order.")]
143+
[PublicAPI]
144+
public static bool process_vm_readv_k32(nint processId, nuint localIov, nuint remoteIov, nuint numBytes) => process_vm_readv_k32_2(processId, remoteIov, localIov, numBytes);
145+
131146
/// <summary>
132147
/// Helper around
133148
/// <see
@@ -139,7 +154,7 @@ public struct IoVec
139154
/// <param name="localIov">Local memory address.</param>
140155
/// <param name="numBytes">Memory size.</param>
141156
/// <returns>True on success, else false.</returns>
142-
public static unsafe bool process_vm_readv_k32(nint processId, nuint remoteIov, nuint localIov, nuint numBytes)
157+
public static unsafe bool process_vm_readv_k32_2(nint processId, nuint remoteIov, nuint localIov, nuint numBytes)
143158
{
144159
IoVec local = new() { iov_base = localIov, iov_len = numBytes };
145160
IoVec remote = new() { iov_base = remoteIov, iov_len = numBytes };

src/Reloaded.Memory/PublicAPI/net48/PublicAPI.Shipped.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -988,3 +988,4 @@ Reloaded.Memory.Utilities.CircularBufferStruct.ItemFit.Yes = 0 -> Reloaded.Memor
988988
Reloaded.Memory.Utilities.CircularBufferStruct.Remaining.get -> nuint
989989
Reloaded.Memory.Utilities.CircularBufferStruct.Size.get -> nuint
990990
Reloaded.Memory.Utilities.CircularBufferStruct.Start.get -> nuint
991+
static Reloaded.Memory.Native.Unix.Posix.process_vm_readv_k32_2(nint processId, nuint remoteIov, nuint localIov, nuint numBytes) -> bool

src/Reloaded.Memory/PublicAPI/net5.0/PublicAPI.Shipped.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -988,3 +988,4 @@ Reloaded.Memory.Utilities.CircularBufferStruct.ItemFit.Yes = 0 -> Reloaded.Memor
988988
Reloaded.Memory.Utilities.CircularBufferStruct.Remaining.get -> nuint
989989
Reloaded.Memory.Utilities.CircularBufferStruct.Size.get -> nuint
990990
Reloaded.Memory.Utilities.CircularBufferStruct.Start.get -> nuint
991+
static Reloaded.Memory.Native.Unix.Posix.process_vm_readv_k32_2(nint processId, nuint remoteIov, nuint localIov, nuint numBytes) -> bool

src/Reloaded.Memory/PublicAPI/net6.0/PublicAPI.Shipped.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -988,3 +988,4 @@ Reloaded.Memory.Utilities.CircularBufferStruct.ItemFit.Yes = 0 -> Reloaded.Memor
988988
Reloaded.Memory.Utilities.CircularBufferStruct.Remaining.get -> nuint
989989
Reloaded.Memory.Utilities.CircularBufferStruct.Size.get -> nuint
990990
Reloaded.Memory.Utilities.CircularBufferStruct.Start.get -> nuint
991+
static Reloaded.Memory.Native.Unix.Posix.process_vm_readv_k32_2(nint processId, nuint remoteIov, nuint localIov, nuint numBytes) -> bool

src/Reloaded.Memory/PublicAPI/net7.0/PublicAPI.Shipped.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -992,3 +992,4 @@ Reloaded.Memory.Utilities.CircularBufferStruct.ItemFit.Yes = 0 -> Reloaded.Memor
992992
Reloaded.Memory.Utilities.CircularBufferStruct.Remaining.get -> nuint
993993
Reloaded.Memory.Utilities.CircularBufferStruct.Size.get -> nuint
994994
Reloaded.Memory.Utilities.CircularBufferStruct.Start.get -> nuint
995+
static Reloaded.Memory.Native.Unix.Posix.process_vm_readv_k32_2(nint processId, nuint remoteIov, nuint localIov, nuint numBytes) -> bool

src/Reloaded.Memory/PublicAPI/net8.0/PublicAPI.Shipped.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -992,3 +992,4 @@ Reloaded.Memory.Utilities.CircularBufferStruct.ItemFit.Yes = 0 -> Reloaded.Memor
992992
Reloaded.Memory.Utilities.CircularBufferStruct.Remaining.get -> nuint
993993
Reloaded.Memory.Utilities.CircularBufferStruct.Size.get -> nuint
994994
Reloaded.Memory.Utilities.CircularBufferStruct.Start.get -> nuint
995+
static Reloaded.Memory.Native.Unix.Posix.process_vm_readv_k32_2(nint processId, nuint remoteIov, nuint localIov, nuint numBytes) -> bool

src/Reloaded.Memory/PublicAPI/netcoreapp3.1/PublicAPI.Shipped.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -988,3 +988,4 @@ Reloaded.Memory.Utilities.CircularBufferStruct.ItemFit.Yes = 0 -> Reloaded.Memor
988988
Reloaded.Memory.Utilities.CircularBufferStruct.Remaining.get -> nuint
989989
Reloaded.Memory.Utilities.CircularBufferStruct.Size.get -> nuint
990990
Reloaded.Memory.Utilities.CircularBufferStruct.Start.get -> nuint
991+
static Reloaded.Memory.Native.Unix.Posix.process_vm_readv_k32_2(nint processId, nuint remoteIov, nuint localIov, nuint numBytes) -> bool

src/Reloaded.Memory/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -988,3 +988,4 @@ Reloaded.Memory.Utilities.CircularBufferStruct.ItemFit.Yes = 0 -> Reloaded.Memor
988988
Reloaded.Memory.Utilities.CircularBufferStruct.Remaining.get -> nuint
989989
Reloaded.Memory.Utilities.CircularBufferStruct.Size.get -> nuint
990990
Reloaded.Memory.Utilities.CircularBufferStruct.Start.get -> nuint
991+
static Reloaded.Memory.Native.Unix.Posix.process_vm_readv_k32_2(nint processId, nuint remoteIov, nuint localIov, nuint numBytes) -> bool

src/Reloaded.Memory/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -988,3 +988,4 @@ Reloaded.Memory.Utilities.CircularBufferStruct.ItemFit.Yes = 0 -> Reloaded.Memor
988988
Reloaded.Memory.Utilities.CircularBufferStruct.Remaining.get -> nuint
989989
Reloaded.Memory.Utilities.CircularBufferStruct.Size.get -> nuint
990990
Reloaded.Memory.Utilities.CircularBufferStruct.Start.get -> nuint
991+
static Reloaded.Memory.Native.Unix.Posix.process_vm_readv_k32_2(nint processId, nuint remoteIov, nuint localIov, nuint numBytes) -> bool

0 commit comments

Comments
 (0)