Paul Chitescu : kernel32: Declare structures related to logical processor information (core, cache, node, group).
Alexandre Julliard
julliard at winehq.org
Tue Jul 20 11:20:30 CDT 2010
Module: wine
Branch: master
Commit: 25c8f445c0819ff53243f9d7158838206df1fd26
URL: http://source.winehq.org/git/wine.git/?a=commit;h=25c8f445c0819ff53243f9d7158838206df1fd26
Author: Paul Chitescu <paulc at voip.null.ro>
Date: Mon Jul 19 18:32:38 2010 +0300
kernel32: Declare structures related to logical processor information (core, cache, node, group).
---
include/winnt.h | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 108 insertions(+), 0 deletions(-)
diff --git a/include/winnt.h b/include/winnt.h
index eb3ab2c..e29444a 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -5476,6 +5476,114 @@ typedef enum _JOBOBJECTINFOCLASS
MaxJobObjectInfoClass
} JOBOBJECTINFOCLASS;
+typedef enum _LOGICAL_PROCESSOR_RELATIONSHIP
+{
+ RelationProcessorCore = 0,
+ RelationNumaNode = 1,
+ RelationCache = 2,
+ RelationProcessorPackage = 3,
+ RelationGroup = 4,
+ RelationAll = 0xffff
+} LOGICAL_PROCESSOR_RELATIONSHIP;
+
+typedef enum _PROCESSOR_CACHE_TYPE
+{
+ CacheUnified,
+ CacheInstruction,
+ CacheData,
+ CacheTrace
+} PROCESSOR_CACHE_TYPE;
+
+typedef struct _PROCESSOR_GROUP_INFO
+{
+ BYTE MaximumProcessorCount;
+ BYTE ActiveProcessorCount;
+ BYTE Reserved[38];
+ KAFFINITY ActiveProcessorMask;
+} PROCESSOR_GROUP_INFO, *PPROCESSOR_GROUP_INFO;
+
+typedef struct _CACHE_DESCRIPTOR
+{
+ BYTE Level;
+ BYTE Associativity;
+ WORD LineSize;
+ DWORD Size;
+ PROCESSOR_CACHE_TYPE Type;
+} CACHE_DESCRIPTOR, *PCACHE_DESCRIPTOR;
+
+typedef struct _GROUP_AFFINITY
+{
+ KAFFINITY Mask;
+ WORD Group;
+ WORD Reserved[3];
+} GROUP_AFFINITY, *PGROUP_AFFINITY;
+
+typedef struct _PROCESSOR_RELATIONSHIP
+{
+ BYTE Flags;
+ BYTE Reserved[21];
+ WORD GroupCount;
+ GROUP_AFFINITY GroupMask[ANYSIZE_ARRAY];
+} PROCESSOR_RELATIONSHIP, *PPROCESSOR_RELATIONSHIP;
+
+
+typedef struct _NUMA_NODE_RELATIONSHIP
+{
+ DWORD NodeNumber;
+ BYTE Reserved[20];
+ GROUP_AFFINITY GroupMask;
+} NUMA_NODE_RELATIONSHIP, *PNUMA_NODE_RELATIONSHIP;
+
+typedef struct _CACHE_RELATIONSHIP
+{
+ BYTE Level;
+ BYTE Associativity;
+ WORD LineSize;
+ PROCESSOR_CACHE_TYPE Type;
+ BYTE Reserved[20];
+ GROUP_AFFINITY GroupMask;
+} CACHE_RELATIONSHIP, *PCACHE_RELATIONSHIP;
+
+typedef struct _GROUP_RELATIONSHIP
+{
+ WORD MaximumGroupCount;
+ WORD ActiveGroupCount;
+ BYTE Reserved[20];
+ PROCESSOR_GROUP_INFO GroupInfo[ANYSIZE_ARRAY];
+} GROUP_RELATIONSHIP, *PGROUP_RELATIONSHIP;
+
+typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION
+{
+ ULONG_PTR ProcessorMask;
+ LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
+ union
+ {
+ struct
+ {
+ BYTE Flags;
+ } ProcessorCore;
+ struct
+ {
+ DWORD NodeNumber;
+ } NumaNode;
+ CACHE_DESCRIPTOR Cache;
+ ULONGLONG Reserved[2];
+ } DUMMYUNIONNAME;
+} SYSTEM_LOGICAL_PROCESSOR_INFORMATION, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION;
+
+typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
+{
+ LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
+ DWORD Size;
+ union
+ {
+ PROCESSOR_RELATIONSHIP Processor;
+ NUMA_NODE_RELATIONSHIP NumaNode;
+ CACHE_RELATIONSHIP Cache;
+ GROUP_RELATIONSHIP Group;
+ } DUMMYUNIONNAME;
+} SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX;
+
NTSYSAPI BOOLEAN NTAPI RtlGetProductInfo(DWORD,DWORD,DWORD,DWORD,PDWORD);
#ifdef __cplusplus
More information about the wine-cvs
mailing list