• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef BASE_CPU_H_
6 #define BASE_CPU_H_
7 
8 #include <string>
9 
10 namespace base {
11 
12 // Query information about the processor.
13 class CPU {
14  public:
15   // Constructor
16   CPU();
17 
18   // Accessors for CPU information.
vendor_name()19   const std::string& vendor_name() const { return cpu_vendor_; }
stepping()20   int stepping() const { return stepping_; }
model()21   int model() const { return model_; }
family()22   int family() const { return family_; }
type()23   int type() const { return type_; }
extended_model()24   int extended_model() const { return ext_model_; }
extended_family()25   int extended_family() const { return ext_family_; }
26 
27  private:
28   // Query the processor for CPUID information.
29   void Initialize();
30 
31   int type_;  // process type
32   int family_;  // family of the processor
33   int model_;  // model of processor
34   int stepping_;  // processor revision number
35   int ext_model_;
36   int ext_family_;
37   std::string cpu_vendor_;
38 };
39 
40 }  // namespace base
41 
42 #endif  // BASE_CPU_H_
43