aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Common/SystemInfo
diff options
context:
space:
mode:
authorIsaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com>2022-12-15 12:07:31 -0500
committerGitHub <noreply@github.com>2022-12-15 18:07:31 +0100
commit0fbcd630bc57885d6b94fd3c4b3546493e09059e (patch)
tree8e1f74775d3393d85e86a845c119a43907459884 /Ryujinx.Common/SystemInfo
parentf4d731ae2094128dcd1dc4a4be60b068047a77a7 (diff)
Replace `DllImport` usage with `LibraryImport` (#4084)
* Replace usage of `DllImport` with `LibraryImport` * Mark methods as `partial` * Marshalling * More `partial` & marshalling * More `partial` and marshalling * More partial and marshalling * Update GdiPlusHelper to LibraryImport * Unicorn * More Partial * Marshal * Specify EntryPoint * Specify EntryPoint * Change GlobalMemoryStatusEx to LibraryImport * Change RegisterClassEx to LibraryImport * Define EntryPoints * Update Ryujinx.Ava/Ui/Controls/Win32NativeInterop.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Graphics.Nvdec.FFmpeg/Native/FFmpegApi.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Move return mashal * Remove calling convention specification * Remove calling conventions * Update Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx/Modules/Updater/Updater.cs Co-authored-by: Mary-nyan <thog@protonmail.com> * Update Ryujinx.Ava/Modules/Updater/Updater.cs Co-authored-by: Mary-nyan <thog@protonmail.com> Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> Co-authored-by: Mary-nyan <thog@protonmail.com>
Diffstat (limited to 'Ryujinx.Common/SystemInfo')
-rw-r--r--Ryujinx.Common/SystemInfo/MacOSSystemInfo.cs18
-rw-r--r--Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs12
2 files changed, 15 insertions, 15 deletions
diff --git a/Ryujinx.Common/SystemInfo/MacOSSystemInfo.cs b/Ryujinx.Common/SystemInfo/MacOSSystemInfo.cs
index 3fcb1a25..ad022bdf 100644
--- a/Ryujinx.Common/SystemInfo/MacOSSystemInfo.cs
+++ b/Ryujinx.Common/SystemInfo/MacOSSystemInfo.cs
@@ -8,7 +8,7 @@ using Ryujinx.Common.Logging;
namespace Ryujinx.Common.SystemInfo
{
[SupportedOSPlatform("macos")]
- class MacOSSystemInfo : SystemInfo
+ partial class MacOSSystemInfo : SystemInfo
{
internal MacOSSystemInfo()
{
@@ -60,8 +60,8 @@ namespace Ryujinx.Common.SystemInfo
private const string SystemLibraryName = "libSystem.dylib";
- [DllImport(SystemLibraryName, CharSet = CharSet.Ansi, SetLastError = true)]
- private static extern int sysctlbyname(string name, IntPtr oldValue, ref ulong oldSize, IntPtr newValue, ulong newValueSize);
+ [LibraryImport(SystemLibraryName, SetLastError = true)]
+ private static partial int sysctlbyname([MarshalAs(UnmanagedType.LPStr)] string name, IntPtr oldValue, ref ulong oldSize, IntPtr newValue, ulong newValueSize);
private static int sysctlbyname(string name, IntPtr oldValue, ref ulong oldSize)
{
@@ -116,11 +116,11 @@ namespace Ryujinx.Common.SystemInfo
return res;
}
- [DllImport(SystemLibraryName, CharSet = CharSet.Ansi, SetLastError = true)]
- private static extern uint mach_host_self();
+ [LibraryImport(SystemLibraryName, SetLastError = true)]
+ private static partial uint mach_host_self();
- [DllImport(SystemLibraryName, CharSet = CharSet.Ansi, SetLastError = true)]
- private static extern int host_page_size(uint host, ref uint out_page_size);
+ [LibraryImport(SystemLibraryName, SetLastError = true)]
+ private static partial int host_page_size(uint host, ref uint out_page_size);
[StructLayout(LayoutKind.Sequential, Pack = 8)]
struct VMStatistics64
@@ -151,7 +151,7 @@ namespace Ryujinx.Common.SystemInfo
public ulong TotalUncompressedPagesInCompressor;
}
- [DllImport(SystemLibraryName, CharSet = CharSet.Ansi, SetLastError = true)]
- private static extern int host_statistics64(uint host_priv, int host_flavor, ref VMStatistics64 host_info64_out, ref uint host_info64_outCnt);
+ [LibraryImport(SystemLibraryName, SetLastError = true)]
+ private static partial int host_statistics64(uint host_priv, int host_flavor, ref VMStatistics64 host_info64_out, ref uint host_info64_outCnt);
}
} \ No newline at end of file
diff --git a/Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs b/Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs
index ffce665e..11f0785e 100644
--- a/Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs
+++ b/Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs
@@ -7,7 +7,7 @@ using Ryujinx.Common.Logging;
namespace Ryujinx.Common.SystemInfo
{
[SupportedOSPlatform("windows")]
- class WindowsSystemInfo : SystemInfo
+ partial class WindowsSystemInfo : SystemInfo
{
internal WindowsSystemInfo()
{
@@ -18,7 +18,7 @@ namespace Ryujinx.Common.SystemInfo
private static (ulong Total, ulong Available) GetMemoryStats()
{
MemoryStatusEx memStatus = new MemoryStatusEx();
- if (GlobalMemoryStatusEx(memStatus))
+ if (GlobalMemoryStatusEx(ref memStatus))
{
return (memStatus.TotalPhys, memStatus.AvailPhys); // Bytes
}
@@ -45,8 +45,8 @@ namespace Ryujinx.Common.SystemInfo
return Environment.GetEnvironmentVariable("PROCESSOR_IDENTIFIER").Trim();
}
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
- private class MemoryStatusEx
+ [StructLayout(LayoutKind.Sequential)]
+ private struct MemoryStatusEx
{
public uint Length;
public uint MemoryLoad;
@@ -64,9 +64,9 @@ namespace Ryujinx.Common.SystemInfo
}
}
+ [LibraryImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
- [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
- private static extern bool GlobalMemoryStatusEx([In, Out] MemoryStatusEx lpBuffer);
+ private static partial bool GlobalMemoryStatusEx(ref MemoryStatusEx lpBuffer);
private static ManagementObjectCollection GetWMIObjects(string scope, string query)
{