Class SmcUtil

java.lang.Object
oshi.util.platform.mac.SmcUtil

@ThreadSafe
public final class SmcUtil
extends java.lang.Object
Provides access to SMC calls on macOS
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Class Description
    static class  SmcUtil.SMCKeyData
    Holds the return value of SMC query.
    static class  SmcUtil.SMCKeyDataKeyInfo
    Holds the return value of SMC KeyInfo query.
    static class  SmcUtil.SMCKeyDataPLimitData
    Holds the return value of SMC pLimit query.
    static class  SmcUtil.SMCKeyDataVers
    Holds the return value of SMC version query.
    static class  SmcUtil.SMCVal
    Holds an SMC value
  • Field Summary

    Fields 
    Modifier and Type Field Description
    static int KERNEL_INDEX_SMC  
    static byte SMC_CMD_READ_BYTES  
    static byte SMC_CMD_READ_KEYINFO  
    static java.lang.String SMC_KEY_CPU_TEMP  
    static java.lang.String SMC_KEY_CPU_VOLTAGE  
    static java.lang.String SMC_KEY_FAN_NUM  
    static java.lang.String SMC_KEY_FAN_SPEED  
  • Method Summary

    Modifier and Type Method Description
    static int smcCall​(com.sun.jna.platform.mac.IOKit.IOConnect conn, int index, SmcUtil.SMCKeyData inputStructure, SmcUtil.SMCKeyData outputStructure)
    Call SMC
    static int smcClose​(com.sun.jna.platform.mac.IOKit.IOConnect conn)
    Close connection to SMC.
    static double smcGetFloat​(com.sun.jna.platform.mac.IOKit.IOConnect conn, java.lang.String key)
    Get a value from SMC which is in a floating point datatype (SP78, FPE2, FLT)
    static int smcGetKeyInfo​(com.sun.jna.platform.mac.IOKit.IOConnect conn, SmcUtil.SMCKeyData inputStructure, SmcUtil.SMCKeyData outputStructure)
    Get cached keyInfo if it exists, or generate new keyInfo
    static long smcGetLong​(com.sun.jna.platform.mac.IOKit.IOConnect conn, java.lang.String key)
    Get a 64-bit integer value from SMC
    static com.sun.jna.platform.mac.IOKit.IOConnect smcOpen()
    Open a connection to SMC.
    static int smcReadKey​(com.sun.jna.platform.mac.IOKit.IOConnect conn, java.lang.String key, SmcUtil.SMCVal val)
    Read a key from SMC

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Method Details

    • smcOpen

      public static com.sun.jna.platform.mac.IOKit.IOConnect smcOpen()
      Open a connection to SMC.
      Returns:
      The connection if successful, null if failure
    • smcClose

      public static int smcClose​(com.sun.jna.platform.mac.IOKit.IOConnect conn)
      Close connection to SMC.
      Parameters:
      conn - The connection
      Returns:
      0 if successful, nonzero if failure
    • smcGetFloat

      public static double smcGetFloat​(com.sun.jna.platform.mac.IOKit.IOConnect conn, java.lang.String key)
      Get a value from SMC which is in a floating point datatype (SP78, FPE2, FLT)
      Parameters:
      conn - The connection
      key - The key to retrieve
      Returns:
      Double representing the value
    • smcGetLong

      public static long smcGetLong​(com.sun.jna.platform.mac.IOKit.IOConnect conn, java.lang.String key)
      Get a 64-bit integer value from SMC
      Parameters:
      conn - The connection
      key - The key to retrieve
      Returns:
      Long representing the value
    • smcGetKeyInfo

      public static int smcGetKeyInfo​(com.sun.jna.platform.mac.IOKit.IOConnect conn, SmcUtil.SMCKeyData inputStructure, SmcUtil.SMCKeyData outputStructure)
      Get cached keyInfo if it exists, or generate new keyInfo
      Parameters:
      conn - The connection
      inputStructure - Key data input
      outputStructure - Key data output
      Returns:
      0 if successful, nonzero if failure
    • smcReadKey

      public static int smcReadKey​(com.sun.jna.platform.mac.IOKit.IOConnect conn, java.lang.String key, SmcUtil.SMCVal val)
      Read a key from SMC
      Parameters:
      conn - The connection
      key - Key to read
      val - Structure to receive the result
      Returns:
      0 if successful, nonzero if failure
    • smcCall

      public static int smcCall​(com.sun.jna.platform.mac.IOKit.IOConnect conn, int index, SmcUtil.SMCKeyData inputStructure, SmcUtil.SMCKeyData outputStructure)
      Call SMC
      Parameters:
      conn - The connection
      index - Kernel index
      inputStructure - Key data input
      outputStructure - Key data output
      Returns:
      0 if successful, nonzero if failure