[PATCH] ntdll: Filling in memory counters under OS X.
Snorri Sturluson
snorri.sturluson at ccpgames.com
Wed Jan 27 10:19:38 CST 2016
From: Snorri Sturluson <snorri.sturluson at ccpgames.com>
Partial fix for https://bugs.winehq.org/show_bug.cgi?id=35563.
This allows the memory monitor in EVE Online to show useful information.
Signed-off-by: Snorri Sturluson <snorri.sturluson at ccpgames.com>
---
dlls/ntdll/process.c | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
index 5a5c3ef..70a1633 100644
--- a/dlls/ntdll/process.c
+++ b/dlls/ntdll/process.c
@@ -40,6 +40,10 @@
#include "ntdll_misc.h"
#include "wine/server.h"
+#ifdef __APPLE__
+#include <mach/mach.h>
+#endif
+
WINE_DEFAULT_DEBUG_CHANNEL(ntdll);
static ULONG execute_flags = MEM_EXECUTE_OPTION_DISABLE;
@@ -110,6 +114,29 @@ ULONG_PTR get_system_affinity_mask(void)
return ((ULONG_PTR)1 << num_cpus) - 1;
}
+#if defined(__APPLE__)
+
+void fill_VM_COUNTERS(VM_COUNTERS* pvmi)
+{
+ struct mach_task_basic_info info;
+ mach_msg_type_number_t infoCount = MACH_TASK_BASIC_INFO_COUNT;
+ if(task_info(mach_task_self(), MACH_TASK_BASIC_INFO, (task_info_t)&info, &infoCount) == KERN_SUCCESS)
+ {
+ pvmi->VirtualSize = info.resident_size + info.virtual_size;
+ pvmi->PagefileUsage = info.virtual_size;
+ pvmi->WorkingSetSize = info.resident_size;
+ }
+}
+
+#else
+
+void fill_VM_COUNTERS(VM_COUNTERS* pvmi)
+{
+ /* FIXME : real data */
+}
+
+#endif
+
/******************************************************************************
* NtQueryInformationProcess [NTDLL.@]
* ZwQueryInformationProcess [NTDLL.@]
@@ -240,8 +267,8 @@ NTSTATUS WINAPI NtQueryInformationProcess(
ret = STATUS_INVALID_HANDLE;
else
{
- /* FIXME : real data */
memset(&pvmi, 0 , sizeof(VM_COUNTERS));
+ fill_VM_COUNTERS(&pvmi);
len = ProcessInformationLength;
if (len != FIELD_OFFSET(VM_COUNTERS,PrivatePageCount)) len = sizeof(VM_COUNTERS);
--
2.5.4 (Apple Git-61)
More information about the wine-patches
mailing list