=?UTF-8?Q?Michael=20M=C3=BCller=20?=: kernel32: Implement GetNumaProcessorNode.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Jun 29 08:12:10 CDT 2015


Module: wine
Branch: master
Commit: d0ae2b0d3d9689b682a76821bf3737eb934ec131
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=d0ae2b0d3d9689b682a76821bf3737eb934ec131

Author: Michael Müller <michael at fds-team.de>
Date:   Mon Jun 29 06:27:34 2015 +0200

kernel32: Implement GetNumaProcessorNode.

---

 dlls/kernel32/kernel32.spec   |  2 +-
 dlls/kernel32/process.c       | 21 +++++++++++++++++++++
 dlls/kernel32/tests/process.c |  2 +-
 include/winbase.h             |  1 +
 4 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 0070c98..3c40975 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -746,7 +746,7 @@
 @ stdcall GetNumaNodeProcessorMask(long ptr)
 # @ stub GetNumaNodeProcessorMaskEx
 # @ stub GetNumaProcessorMap
-# @ stub GetNumaProcessorNode
+@ stdcall GetNumaProcessorNode(long ptr)
 # @ stub GetNumaProcessorNodeEx
 # @ stub GetNumaProximityNode
 # @ stub GetNumaProximityNodeEx
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index 2c8074b..1cd6e47 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -3957,6 +3957,27 @@ BOOL WINAPI GetNumaAvailableMemoryNode(UCHAR node, PULONGLONG available_bytes)
     return FALSE;
 }
 
+/***********************************************************************
+ *           GetNumaProcessorNode (KERNEL32.@)
+ */
+BOOL WINAPI GetNumaProcessorNode(UCHAR processor, PUCHAR node)
+{
+    SYSTEM_INFO si;
+
+    TRACE("(%d, %p)\n", processor, node);
+
+    GetSystemInfo( &si );
+    if (processor < si.dwNumberOfProcessors)
+    {
+        *node = 0;
+        return TRUE;
+    }
+
+    *node = 0xFF;
+    SetLastError(ERROR_INVALID_PARAMETER);
+    return FALSE;
+}
+
 /**********************************************************************
  *           GetProcessDEPPolicy     (KERNEL32.@)
  */
diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c
index b4a435b..4145dce 100644
--- a/dlls/kernel32/tests/process.c
+++ b/dlls/kernel32/tests/process.c
@@ -2704,7 +2704,7 @@ static void test_GetNumaProcessorNode(void)
 
     if (!pGetNumaProcessorNode)
     {
-        skip("GetNumaProcessorNode is missing\n");
+        win_skip("GetNumaProcessorNode is missing\n");
         return;
     }
 
diff --git a/include/winbase.h b/include/winbase.h
index cc1081e..a1859b0 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -2052,6 +2052,7 @@ WINBASEAPI BOOL        WINAPI GetNamedPipeHandleStateW(HANDLE,LPDWORD,LPDWORD,LP
 #define                       GetNamedPipeHandleState WINELIB_NAME_AW(GetNamedPipeHandleState)
 WINBASEAPI BOOL        WINAPI GetNamedPipeInfo(HANDLE,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
 WINBASEAPI VOID        WINAPI GetNativeSystemInfo(LPSYSTEM_INFO);
+WINBASEAPI BOOL        WINAPI GetNumaProcessorNode(UCHAR,PUCHAR);
 WINADVAPI  BOOL        WINAPI GetNumberOfEventLogRecords(HANDLE,PDWORD);
 WINADVAPI  BOOL        WINAPI GetOldestEventLogRecord(HANDLE,PDWORD);
 WINBASEAPI BOOL        WINAPI GetOverlappedResult(HANDLE,LPOVERLAPPED,LPDWORD,BOOL);




More information about the wine-cvs mailing list