add get core count

This commit is contained in:
Colin Davidson
2023-01-05 01:06:55 -08:00
parent 782f1b4718
commit 944396128b
5 changed files with 97 additions and 1 deletions
+44
View File
@@ -370,6 +370,8 @@ foreign kernel32 {
lpTotalNumberOfBytes: PULARGE_INTEGER,
lpTotalNumberOfFreeBytes: PULARGE_INTEGER,
) -> BOOL ---
GetLogicalProcessorInformation :: proc(buffer: ^LOGICAL_PROCESSOR_INFORMATION, returnedLength: PDWORD) -> BOOL ---
}
@@ -999,3 +1001,45 @@ foreign kernel32 {
ConvertThreadToFiber :: proc(lpParameter: LPVOID) -> LPVOID ---
SwitchToFiber :: proc(lpFiber: LPVOID) ---
}
LOGICAL_PROCESSOR_RELATIONSHIP :: enum c_int {
RelationProcessorCore,
RelationNumaNode,
RelationCache,
RelationProcessorPackage,
RelationGroup,
RelationProcessorDie,
RelationNumaNodeEx,
RelationProcessorModule,
RelationAll = 0xffff,
}
PROCESSOR_CACHE_TYPE :: enum c_int {
CacheUnified,
CacheInstruction,
CacheData,
CacheTrace,
}
CACHE_DESCRIPTOR :: struct {
Level: BYTE,
Associativity: BYTE,
LineSize: WORD,
Size: DWORD,
Type: PROCESSOR_CACHE_TYPE,
}
SYSTEM_LOGICAL_PROCESSOR_INFORMATION :: struct {
ProcessorMask: ULONGPTR,
Relationship: LOGICAL_PROCESSOR_RELATIONSHIP,
DUMMYUNIONNAME :: union {
ProcessorCore :: struct {
Flags: BYTE,
},
NumaNode :: struct {
NodeNumber: DWORD,
},
Cache: CACHE_DESCRIPTOR,
Reserved: [2]ULONGLONG,
},
}