Class OpenBsdCentralProcessor

java.lang.Object
oshi.hardware.common.AbstractCentralProcessor
oshi.hardware.platform.unix.openbsd.OpenBsdCentralProcessor
All Implemented Interfaces:
CentralProcessor

@ThreadSafe public class OpenBsdCentralProcessor extends AbstractCentralProcessor
OpenBSD Central Processor implementation
  • Field Details

  • Constructor Details

    • OpenBsdCentralProcessor

      public OpenBsdCentralProcessor()
  • Method Details

    • queryProcessorId

      protected CentralProcessor.ProcessorIdentifier queryProcessorId()
      Description copied from class: AbstractCentralProcessor
      Updates logical and physical processor counts and arrays
      Specified by:
      queryProcessorId in class AbstractCentralProcessor
      Returns:
      An array of initialized Logical Processors
    • cpuidToFamilyModelStepping

      private static Triplet<Integer,Integer,Integer> cpuidToFamilyModelStepping(int cpuid)
    • queryCurrentFreq

      protected long[] queryCurrentFreq()
      Description copied from class: AbstractCentralProcessor
      Get processor current frequency.
      Specified by:
      queryCurrentFreq in class AbstractCentralProcessor
      Returns:
      The current frequency.
    • initProcessorCounts

      Description copied from class: AbstractCentralProcessor
      Initializes logical and physical processor lists and feature flags.
      Specified by:
      initProcessorCounts in class AbstractCentralProcessor
      Returns:
      Lists of initialized Logical Processors, Physical Processors, Processor Caches, and Feature Flags.
    • parseCacheStr

      private CentralProcessor.ProcessorCache parseCacheStr(String cacheStr)
    • queryContextSwitches

      protected long queryContextSwitches()
      Get number of context switches
      Specified by:
      queryContextSwitches in class AbstractCentralProcessor
      Returns:
      The context switches
    • queryInterrupts

      protected long queryInterrupts()
      Get number of interrupts
      Specified by:
      queryInterrupts in class AbstractCentralProcessor
      Returns:
      The interrupts
    • queryVmStats

      private static Pair<Long,Long> queryVmStats()
    • querySystemCpuLoadTicks

      protected long[] querySystemCpuLoadTicks()
      Get the system CPU load ticks
      Specified by:
      querySystemCpuLoadTicks in class AbstractCentralProcessor
      Returns:
      The system CPU load ticks
    • queryProcessorCpuLoadTicks

      protected long[][] queryProcessorCpuLoadTicks()
      Get the processor CPU load ticks
      Specified by:
      queryProcessorCpuLoadTicks in class AbstractCentralProcessor
      Returns:
      The processor CPU load ticks
    • cpTimeToTicks

      private static long[] cpTimeToTicks(com.sun.jna.Memory m, boolean force64bit)
      Parse memory buffer returned from sysctl kern.cptime or kern.cptime2 to an array of 5 or 6 longs depending on version.

      Versions 6.4 and later have a 6-element array while earlier versions have only 5 elements. Additionally kern.cptime uses a native-sized long (32- or 64-bit) value while kern.cptime2 is always a 64-bit value.

      Parameters:
      m - A buffer containing the array.
      force64bit - True if the buffer is filled with 64-bit longs, false if native long sized values
      Returns:
      The array
    • getSystemLoadAverage

      public double[] getSystemLoadAverage(int nelem)
      Returns the system load average for the number of elements specified, up to 3, representing 1, 5, and 15 minutes. The system load average is the sum of the number of runnable entities queued to the available processors and the number of runnable entities running on the available processors averaged over a period of time. The way in which the load average is calculated is operating system specific but is typically a damped time-dependent average. If the load average is not available, a negative value is returned. This method is designed to provide a hint about the system load and may be queried frequently.

      The load average may be unavailable on some platforms (e.g., Windows) where it is expensive to implement this method.

      Parameters:
      nelem - Number of elements to return.
      Returns:
      an array of the system load averages for 1, 5, and 15 minutes with the size of the array specified by nelem; or negative values if not available.