File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # frozen_string_literal: true
2+
3+ module Facts
4+ module Openbsd
5+ module Processors
6+ class Count
7+ FACT_NAME = 'processors.count'
8+
9+ def call_the_resolver
10+ fact_value = Facter ::Resolvers ::Openbsd ::Processors . resolve ( :online_count )
11+ Facter ::ResolvedFact . new ( FACT_NAME , fact_value )
12+ end
13+ end
14+ end
15+ end
16+ end
Original file line number Diff line number Diff line change 709709 require_relative '../../facts/openbsd/os/hardware'
710710 require_relative '../../facts/openbsd/os/name'
711711 require_relative '../../facts/openbsd/os/release'
712+ require_relative '../../facts/openbsd/processors/count'
712713 require_relative '../../facts/openbsd/processors/isa'
713714 require_relative '../../facts/openbsd/ruby/platform'
714715 require_relative '../../facts/openbsd/ruby/sitedir'
721722 require_relative '../../resolvers/openbsd/dhcp'
722723 require_relative '../../resolvers/openbsd/dmi'
723724 require_relative '../../resolvers/openbsd/mountpoints'
725+ require_relative '../../resolvers/openbsd/processors'
724726 require_relative '../../resolvers/openbsd/virtual'
725727
726728 when 'openwrt'
Original file line number Diff line number Diff line change 1+ # frozen_string_literal: true
2+
3+ require_relative '../../../facter/resolvers/bsd/processors'
4+
5+ module Facter
6+ module Resolvers
7+ module Openbsd
8+ class Processors < BaseResolver
9+ init_resolver
10+
11+ class << self
12+ private
13+
14+ def post_resolve ( fact_name , _options )
15+ @fact_list . fetch ( fact_name ) { collect_processors_info ( fact_name ) }
16+ end
17+
18+ def collect_processors_info ( fact_name )
19+ require_relative '../../../facter/resolvers/bsd/ffi/ffi_helper'
20+
21+ count = online_count
22+ model = processor_model
23+ speed = processor_speed
24+
25+ @fact_list [ :online_count ] = count
26+ @fact_list [ :model ] = Array . new ( count , model ) if online_count && model
27+ @fact_list [ :speed ] = speed * 1000 * 1000 if speed
28+
29+ @fact_list [ fact_name ]
30+ end
31+
32+ CTL_HW = 6
33+ HW_MODEL = 2
34+ HW_NCPUONLINE = 25
35+ HW_CPUSPEED = 12
36+
37+ def processor_model
38+ Facter ::Bsd ::FfiHelper . sysctl ( :string , [ CTL_HW , HW_MODEL ] )
39+ end
40+
41+ def online_count
42+ Facter ::Bsd ::FfiHelper . sysctl ( :uint32_t , [ CTL_HW , HW_NCPUONLINE ] )
43+ end
44+
45+ def processor_speed
46+ Facter ::Bsd ::FfiHelper . sysctl ( :uint32_t , [ CTL_HW , HW_CPUSPEED ] )
47+ end
48+ end
49+ end
50+ end
51+ end
52+ end
You can’t perform that action at this time.
0 commit comments