module Facter::Aix::FfiHelper

Constants

KINFO_GET_AVENRUN
KINFO_READ

Public Class Methods

read_load_averages() click to toggle source
# File lib/facter/resolvers/aix/ffi/ffi_helper.rb, line 23
def self.read_load_averages
  averages = FFI::MemoryPointer.new(:long_long, 3)
  averages_size = FFI::MemoryPointer.new(:int, 1)
  averages_size.write_int(averages.size)

  return if Libc.getkerninfo(KINFO_READ | KINFO_GET_AVENRUN, averages, averages_size, 0).negative?

  averages.read_array_of_long_long(3).map { |x| (x / 65_536.0).round(5) }
end