Browse Source

* add some NUMA information functions mentioned in forum

marcoonthegit 1 year ago
parent
commit
492893a935
2 changed files with 18 additions and 2 deletions
  1. 10 2
      rtl/win/wininc/func.inc
  2. 8 0
      rtl/win/wininc/struct.inc

+ 10 - 2
rtl/win/wininc/func.inc

@@ -1344,8 +1344,16 @@ function CONSOLE_REAL_OUTPUT_HANDLE : HANDLE;
   function GetDateFormatEx(LocaleName : pwidechar;Flags : DWORD;Date : PSYSTEMTIME; Format : pwidechar; DateBuffer : pwidechar; BufferLen  : longint; Calendar : pwidechar) : BOOL; stdcall; external 'kernel32' name 'GetDateFormatEx';
   function SetThreadExecutionState( esflags:EXECUTION_STATE ) : Cardinal; stdcall; external 'kernel32.dll' name 'SetThreadExecutionState';
 
-
-  function GetGUIThreadInfo(InThreadId : DWORD;InoutGuiThreadInfo : PGUITHREADINFO): BOOL; stdcall; external 'user32.dll' name 'GetGUIThreadInfo';{$endif read_interface}
+  function GetGUIThreadInfo(InThreadId : DWORD;InoutGuiThreadInfo : PGUITHREADINFO): BOOL; stdcall; external 'user32.dll' name 'GetGUIThreadInfo';
+  function GetNumaProcessorNode(Processor:UCHAR; NodeNumber:PUCHAR):BOOL;stdcall;external 'kernel32.dll' name 'GetNumaProcessorNode';
+  function GetNumaNodeNumberFromHandle(hFile:HANDLE; NodeNumber:PUSHORT):BOOL;stdcall;external 'kernel32.dll' name 'GetNumaNodeNumberFromHandle';
+  function GetNumaProcessorNodeEx(Processor:PPROCESSOR_NUMBER; NodeNumber:PUSHORT):BOOL;stdcall;external 'kernel32.dll' name 'GetNumaProcessorNodeEx';
+  function GetNumaNodeProcessorMask(Node:UCHAR; ProcessorMask:PULONGLONG):BOOL;stdcall;external 'kernel32.dll' name 'GetNumaNodeProcessorMask';
+  function GetNumaAvailableMemoryNode(Node:UCHAR; AvailableBytes:PULONGLONG):BOOL;stdcall;external 'kernel32.dll' name 'GetNumaAvailableMemoryNode';
+  function GetNumaAvailableMemoryNodeEx(Node:USHORT; AvailableBytes:PULONGLONG):BOOL;stdcall;external 'kernel32.dll' name 'GetNumaAvailableMemoryNodeEx';
+  function GetNumaProximityNode(ProximityId:ULONG; NodeNumber:PUCHAR):BOOL;stdcall;external 'kernel32.dll' name 'GetNumaProximityNode';
+
+{$endif read_interface}
 
 {$ifdef read_implementation}
 

+ 8 - 0
rtl/win/wininc/struct.inc

@@ -9519,6 +9519,14 @@ type
     rcCaret          : TRECT;
   end;
 
+    PPROCESSOR_NUMBER = ^_PROCESSOR_NUMBER;
+    _PROCESSOR_NUMBER = record
+        Group :  WORD;
+        Number  : BYTE;
+        Reserved : BYTE;
+      end;
+   TPROCESSOR_NUMBER = _PROCESSOR_NUMBER;
+
 {$pop}
 {$endif read_interface}