Facter::Util::Processor

Public Class Methods

enum_cpuinfo() click to toggle source
    # File lib/facter/util/processor.rb, line 2
 2:   def self.enum_cpuinfo
 3:     processor_num = 1
 4:     processor_list = []
 5:     cpuinfo = "/proc/cpuinfo"
 6: 
 7:     if File.exists?(cpuinfo)
 8:       model = Facter.value(:architecture)
 9:       case model
10:       when "x86_64", "amd64", "i386", /parisc/, "hppa", "ia64"
11:         Thread::exclusive do
12:           File.readlines(cpuinfo).each do |l|
13:             if l =~ /processor\s+:\s+(\d+)/
14:               processor_num = $1.to_i
15:             elsif l =~ /model name\s+:\s+(.*)\s*$/
16:               processor_list[processor_num] = $1 unless processor_num == 1
17:               processor_num = 1
18:             elsif l =~ /processor\s+(\d+):\s+(.*)/
19:               processor_num = $1.to_i
20:               processor_list[processor_num] = $2 unless processor_num == 1
21:             end
22:           end
23:         end
24: 
25:       when "ppc64"
26:         Thread::exclusive do
27:           File.readlines(cpuinfo).each do |l|
28:             if l =~ /processor\s+:\s+(\d+)/
29:               processor_num = $1.to_i
30:             elsif l =~ /cpu\s+:\s+(.*)\s*$/
31:               processor_list[processor_num] = $1 unless processor_num == 1
32:               processor_num = 1
33:             end
34:           end
35:         end
36: 
37:       when /arm/
38:         Thread::exclusive do
39:           File.readlines(cpuinfo).each do |l|
40:             if l =~ /Processor\s+:\s+(.+)/
41:               processor_num += 1
42:               processor_list[processor_num] = $1.chomp
43:             elsif l =~ /processor\s+:\s+(\d+)\s*$/
44:               proc_num = $1.to_i
45:               if proc_num != 0
46:                 processor_num += 1
47:                 processor_list[processor_num] = processor_list[processor_num-1]
48:               end
49:             end
50:           end
51:         end
52: 
53:       when /sparc/
54:         Thread::exclusive do
55:           File.readlines(cpuinfo).each do |l|
56:             if l =~ /cpu\s+:\s+(.*)\s*$/
57:               processor_num += 1
58:               processor_list[processor_num] = $1
59:             end
60:           end
61:         end
62:       end
63:     end
64:     processor_list
65:   end
enum_kstat() click to toggle source
     # File lib/facter/util/processor.rb, line 89
 89:   def self.enum_kstat
 90:     processor_num = 1
 91:     processor_list = []
 92:     Thread::exclusive do
 93:       kstat = Facter::Util::Resolution.exec('/usr/bin/kstat cpu_info')
 94:       if kstat
 95:         kstat.each_line do |l|
 96:           if l =~ /cpu_info(\d+)/
 97:             processor_num = $1.to_i
 98:           elsif l =~ /brand\s+(.*)\s*$/
 99:             processor_list[processor_num] = $1 unless processor_num == 1
100:             processor_num = 1
101:           end
102:         end
103:       end
104:     end
105:     processor_list
106:   end
enum_lsdev() click to toggle source
    # File lib/facter/util/processor.rb, line 67
67:   def self.enum_lsdev
68:     processor_num = 1
69:     processor_list = {}
70:     Thread::exclusive do
71:       procs = Facter::Util::Resolution.exec('lsdev -Cc processor')
72:       if procs
73:         procs.each_line do |proc|
74:           if proc =~ /^proc(\d+)/
75:             processor_num = $1.to_i
76:             # Not retrieving the frequency since AIX 4.3.3 doesn't support the
77:             # attribute and some people still use the OS.
78:             proctype = Facter::Util::Resolution.exec('lsattr -El proc0 -a type')
79:             if proctype =~ /^type\s+(\S+)\s+/
80:               processor_list[processor_num] = $1
81:             end
82:           end
83:         end
84:       end
85:     end
86:     processor_list
87:   end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.