You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.2 KiB
40 lines
1.2 KiB
//------------------------------------------------------------------------------------- |
|
// CpuTopology.h |
|
// |
|
// CpuToplogy class declaration. |
|
// |
|
// Copyright (c) Microsoft Corporation. All rights reserved. |
|
//------------------------------------------------------------------------------------- |
|
#pragma once |
|
#ifndef CPU_TOPOLOGY_H |
|
#define CPU_TOPOLOGY_H |
|
|
|
#include "winlite.h" |
|
|
|
class ICpuTopology; |
|
|
|
//--------------------------------------------------------------------------------- |
|
// Name: CpuToplogy |
|
// Desc: This class constructs a supported cpu topology implementation object on |
|
// initialization and forwards calls to it. This is the Abstraction class |
|
// in the traditional Bridge Pattern. |
|
//--------------------------------------------------------------------------------- |
|
class CpuTopology |
|
{ |
|
public: |
|
CpuTopology( BOOL bForceCpuid = FALSE ); |
|
~CpuTopology(); |
|
|
|
BOOL IsDefaultImpl() const; |
|
DWORD NumberOfProcessCores() const; |
|
DWORD NumberOfSystemCores() const; |
|
DWORD_PTR CoreAffinityMask( DWORD coreIdx ) const; |
|
|
|
void ForceCpuid( BOOL bForce ); |
|
private: |
|
void Destroy_(); |
|
|
|
ICpuTopology* m_pImpl; |
|
}; |
|
|
|
#endif // CPU_TOPOLOGY_H
|
|
|