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.
41 lines
1.2 KiB
41 lines
1.2 KiB
5 years ago
|
//-------------------------------------------------------------------------------------
|
||
|
// 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
|