class Facter::Resolvers::HardwareArchitecture
Private Class Methods
Source
# File lib/facter/resolvers/windows/hardware_architecture.rb, line 59 def build_facts_list(facts) @fact_list[:hardware] = facts[:hardware] @fact_list[:architecture] = facts[:architecture] end
Source
# File lib/facter/resolvers/windows/hardware_architecture.rb, line 48 def determine_architecture(hardware) case hardware when /i[3456]86/ 'x86' when 'x86_64' 'x64' else hardware end end
Source
# File lib/facter/resolvers/windows/hardware_architecture.rb, line 30 def determine_hardware(sys_info) union = sys_info[:dummyunionname] struct = union[:dummystructname] case struct[:wProcessorArchitecture] when HardwareFFI::PROCESSOR_ARCHITECTURE_AMD64 'x86_64' when HardwareFFI::PROCESSOR_ARCHITECTURE_ARM 'arm' when HardwareFFI::PROCESSOR_ARCHITECTURE_IA64 'ia64' when HardwareFFI::PROCESSOR_ARCHITECTURE_INTEL family = sys_info[:wProcessorLevel] > 5 ? 6 : sys_info[:wProcessorLevel] "i#{family}86" else 'unknown' end end
Source
# File lib/facter/resolvers/windows/hardware_architecture.rb, line 11 def post_resolve(fact_name, _options) @fact_list.fetch(fact_name) { read_hardware_information(fact_name) } end
Source
# File lib/facter/resolvers/windows/hardware_architecture.rb, line 15 def read_hardware_information(fact_name) require_relative '../../../facter/resolvers/windows/ffi/hardware_ffi' sys_info_ptr = FFI::MemoryPointer.new(SystemInfo.size) HardwareFFI::GetNativeSystemInfo(sys_info_ptr) sys_info = SystemInfo.new(sys_info_ptr) hard = determine_hardware(sys_info) arch = determine_architecture(hard) build_facts_list(hardware: hard, architecture: arch) @fact_list[fact_name] rescue LoadError => e log.debug("The ffi gem has not been installed: #{e}") end