[PATCH 2/8] kernel32: added missing numa functions

Vijay Kiran Kamuju infyquest at gmail.com
Wed May 8 03:47:28 CDT 2019


On Wed, May 8, 2019 at 9:54 AM romanstingler <roman.stingler at gmail.com> wrote:
>
> From: Roman Stingler <roman.stingler at gmail.com>
>
> Signed-off-by: Roman Stingler <roman.stingler at gmail.com>
> ---
>  ...pi-ms-win-core-kernel32-legacy-l1-1-1.spec |  4 +-
>  dlls/kernel32/kernel32.spec                   |  8 ++--
>  dlls/kernel32/process.c                       | 37 +++++++++++++++++++
>  dlls/kernelbase/kernelbase.spec               |  3 +-
>  include/ntdef.h                               |  2 +
>  include/winbase.h                             | 15 ++++++++
>  6 files changed, 62 insertions(+), 7 deletions(-)
>
> diff --git a/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec b/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec
> index 5531d2dbd7..946e3de99e 100644
> --- a/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec
> +++ b/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec
> @@ -29,9 +29,9 @@
>  @ stub GetMaximumProcessorGroupCount
>  @ stdcall GetNamedPipeClientProcessId(long ptr) kernel32.GetNamedPipeClientProcessId
>  @ stdcall GetNamedPipeServerProcessId(long ptr) kernel32.GetNamedPipeServerProcessId
> -@ stub GetNumaAvailableMemoryNodeEx
> +@ stdcall GetNumaAvailableMemoryNodeEx(long ptr)
>  @ stdcall GetNumaNodeProcessorMask(long ptr) kernel32.GetNumaNodeProcessorMask
> -@ stub GetNumaProcessorNodeEx
> +@ stdcall GetNumaProcessorNodeEx(ptr ptr)
>  @ stdcall GetShortPathNameA(str ptr long) kernel32.GetShortPathNameA
>  @ stdcall GetStartupInfoA(ptr) kernel32.GetStartupInfoA
>  @ stdcall GetStringTypeExA(long long str long ptr) kernel32.GetStringTypeExA
> diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
> index 295a4dbab6..08a9a9cd9d 100644
> --- a/dlls/kernel32/kernel32.spec
> +++ b/dlls/kernel32/kernel32.spec
> @@ -742,16 +742,16 @@
>  # @ stub GetNLSVersionEx
>  # @ stub GetNumaAvailableMemory
>  @ stdcall GetNumaAvailableMemoryNode(long ptr)
> -# @ stub GetNumaAvailableMemoryNodeEx
> +@ stdcall GetNumaAvailableMemoryNodeEx(long ptr)
>  @ stdcall GetNumaHighestNodeNumber(ptr)
>  # @ stub GetNumaNodeNumberFromHandle
>  @ stdcall GetNumaNodeProcessorMask(long ptr)
>  @ stdcall GetNumaNodeProcessorMaskEx(long ptr)
>  # @ stub GetNumaProcessorMap
>  @ stdcall GetNumaProcessorNode(long ptr)
> -# @ stub GetNumaProcessorNodeEx
> -# @ stub GetNumaProximityNode
> -# @ stub GetNumaProximityNodeEx
> +@ stdcall GetNumaProcessorNodeEx(ptr ptr)
> +@ stdcall GetNumaProximityNode(long ptr)
> +@ stdcall GetNumaProximityNodeEx(long ptr)
>  @ stdcall GetNumberFormatA(long long str ptr ptr long)
>  @ stdcall GetNumberFormatEx(wstr long wstr ptr ptr long)
>  @ stdcall GetNumberFormatW(long long wstr ptr ptr long)
> diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
> index 09f0433deb..a5e0d8d089 100644
> --- a/dlls/kernel32/process.c
> +++ b/dlls/kernel32/process.c
> @@ -4449,6 +4449,16 @@ BOOL WINAPI GetNumaAvailableMemoryNode(UCHAR node, PULONGLONG available_bytes)
>      return FALSE;
>  }
>
> +/**********************************************************************
> + *           GetNumaAvailableMemoryNodeEx     (KERNEL32.@)
> + */
> +BOOL WINAPI GetNumaAvailableMemoryNodeEx(USHORT node, PULONGLONG available_bytes)
> +{
> +    FIXME("(%c %p): stub\n", node, available_bytes);
> +    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
> +    return FALSE;
> +}
> +
>  /***********************************************************************
>   *           GetNumaProcessorNode (KERNEL32.@)
>   */
> @@ -4470,6 +4480,33 @@ BOOL WINAPI GetNumaProcessorNode(UCHAR processor, PUCHAR node)
>      return FALSE;
>  }
>
> +/***********************************************************************
> + *           GetNumaProcessorNodeEx (KERNEL32.@)
> + */
> +BOOL WINAPI GetNumaProcessorNodeEx(PPROCESSOR_NUMBER processor, PUSHORT node_number)
> +{
Missing FIXME message.
> +    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
> +    return FALSE;
> +}
> +
> +/***********************************************************************
> + *           GetNumaProximityNode (KERNEL32.@)
> + */
> +BOOL WINAPI GetNumaProximityNode(ULONG  proximity_id, PUCHAR node_number)
> +{
Missing FIXME message.
> +    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
> +    return FALSE;
> +}
> +
> +/***********************************************************************
> + *           GetNumaProximityNodeEx (KERNEL32.@)
> + */
> +BOOL WINAPI GetNumaProximityNodeEx(ULONG  proximity_id, PUSHORT node_number)
> +{
Missing FIXME message.
> +    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
> +    return FALSE;
> +}
> +
>  /**********************************************************************
>   *           GetProcessDEPPolicy     (KERNEL32.@)
>   */
> diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
> index 22ea65fe1c..abddb12533 100644
> --- a/dlls/kernelbase/kernelbase.spec
> +++ b/dlls/kernelbase/kernelbase.spec
> @@ -576,7 +576,8 @@
>  # @ stub GetNextFgPolicyRefreshInfoInternal
>  @ stdcall GetNumaHighestNodeNumber(ptr) kernel32.GetNumaHighestNodeNumber
>  @ stdcall GetNumaNodeProcessorMaskEx(long ptr) kernel32.GetNumaNodeProcessorMaskEx
> -# @ stub GetNumaProximityNodeEx
> +@ stdcall GetNumaProximityNode(long ptr) kernel32.GetNumaProximityNode
> +@ stdcall GetNumaProximityNodeEx(long ptr) kernel32.GetNumaProximityNodeEx
>  @ stdcall GetNumberFormatEx(wstr long wstr ptr ptr long) kernel32.GetNumberFormatEx
>  @ stdcall GetNumberFormatW(long long wstr ptr ptr long) kernel32.GetNumberFormatW
>  @ stdcall GetNumberOfConsoleInputEvents(long ptr) kernel32.GetNumberOfConsoleInputEvents
> diff --git a/include/ntdef.h b/include/ntdef.h
> index 83ecffd608..b9a27cabcb 100644
> --- a/include/ntdef.h
> +++ b/include/ntdef.h
> @@ -39,6 +39,8 @@ typedef enum _WAIT_TYPE {
>      WaitNotification
>  } WAIT_TYPE;
>
This define below is unused, please add all the related defines in
both ntdef.h and winnt.h
> +#define MAXUSHORT 0xffff
> +
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/include/winbase.h b/include/winbase.h
> index 314a8b7f60..867f0a846f 100644
> --- a/include/winbase.h
> +++ b/include/winbase.h
> @@ -1675,6 +1682,7 @@ typedef enum _PROC_THREAD_ATTRIBUTE_NUM
>      ProcThreadAttributeParentProcess = 0,
>      ProcThreadAttributeHandleList = 2,
>      ProcThreadAttributeGroupAffinity = 3,
> +    ProcThreadAttributePreferredNode = 4,
>      ProcThreadAttributeIdealProcessor = 5,
>      ProcThreadAttributeUmsThread = 6,
>      ProcThreadAttributeMitigationPolicy = 7,
> @@ -1690,6 +1698,7 @@ typedef enum _PROC_THREAD_ATTRIBUTE_NUM
>  #define PROC_THREAD_ATTRIBUTE_PARENT_PROCESS (ProcThreadAttributeParentProcess | PROC_THREAD_ATTRIBUTE_INPUT)
>  #define PROC_THREAD_ATTRIBUTE_HANDLE_LIST (ProcThreadAttributeHandleList | PROC_THREAD_ATTRIBUTE_INPUT)
>  #define PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY (ProcThreadAttributeGroupAffinity | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
> +#define PROC_THREAD_ATTRIBUTE_PREFERRED_NODE (ProcThreadAttributePreferredNode | PROC_THREAD_ATTRIBUTE_INPUT)
>  #define PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR (ProcThreadAttributeIdealProcessor | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
>  #define PROC_THREAD_ATTRIBUTE_UMS_THREAD (ProcThreadAttributeUmsThread | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
>  #define PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY (ProcThreadAttributeMitigationPolicy | PROC_THREAD_ATTRIBUTE_INPUT)
> @@ -2179,6 +2188,12 @@ WINBASEAPI BOOL        WINAPI GetNamedPipeServerSessionId(HANDLE,PULONG);
>  WINBASEAPI VOID        WINAPI GetNativeSystemInfo(LPSYSTEM_INFO);
>  WINBASEAPI PUMS_CONTEXT WINAPI GetNextUmsListItem(PUMS_CONTEXT);
>  WINBASEAPI BOOL        WINAPI GetNumaProcessorNode(UCHAR,PUCHAR);
> +WINBASEAPI BOOL        WINAPI GetNumaAvailableMemoryNode(UCHAR,PULONGLONG);
> +WINBASEAPI BOOL        WINAPI GetNumaNodeProcessorMaskEx(USHORT,PGROUP_AFFINITY);
> +WINBASEAPI BOOL        WINAPI GetNumaProcessorNodeEx(PPROCESSOR_NUMBER,PUSHORT);
> +WINBASEAPI BOOL        WINAPI GetNumaProximityNode(ULONG,PUCHAR);
> +WINBASEAPI BOOL        WINAPI GetNumaAvailableMemoryNodeEx(USHORT,PULONGLONG);
> +WINBASEAPI BOOL        WINAPI GetNumaProximityNodeEx(ULONG,PUSHORT);
>  WINADVAPI  BOOL        WINAPI GetNumberOfEventLogRecords(HANDLE,PDWORD);
>  WINADVAPI  BOOL        WINAPI GetOldestEventLogRecord(HANDLE,PDWORD);
>  WINBASEAPI BOOL        WINAPI GetOverlappedResult(HANDLE,LPOVERLAPPED,LPDWORD,BOOL);
> --
> 2.21.0
>
>
>



More information about the wine-devel mailing list