Package oshi.util.platform.mac
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
-
-
Field Summary
Fields Modifier and Type Field Description private static byte[]DATATYPE_FLTprivate static byte[]DATATYPE_FPE2private static byte[]DATATYPE_SP78Byte array used for matching return typeprivate static IOKitIOstatic intKERNEL_INDEX_SMCprivate static java.util.Map<java.lang.Integer,IOKit.SMCKeyDataKeyInfo>keyInfoCacheThread-safe map for caching info retrieved by a key necessary for subsequent calls.private static org.slf4j.LoggerLOGstatic byteSMC_CMD_READ_BYTESstatic byteSMC_CMD_READ_KEYINFOstatic java.lang.StringSMC_KEY_CPU_TEMPstatic java.lang.StringSMC_KEY_CPU_VOLTAGEstatic java.lang.StringSMC_KEY_FAN_NUMstatic java.lang.StringSMC_KEY_FAN_SPEED
-
Constructor Summary
Constructors Modifier Constructor Description privateSmcUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static intsmcCall(com.sun.jna.platform.mac.IOKit.IOConnect conn, int index, IOKit.SMCKeyData inputStructure, IOKit.SMCKeyData outputStructure)Call SMCstatic intsmcClose(com.sun.jna.platform.mac.IOKit.IOConnect conn)Close connection to SMC.static doublesmcGetFloat(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 intsmcGetKeyInfo(com.sun.jna.platform.mac.IOKit.IOConnect conn, IOKit.SMCKeyData inputStructure, IOKit.SMCKeyData outputStructure)Get cached keyInfo if it exists, or generate new keyInfostatic longsmcGetLong(com.sun.jna.platform.mac.IOKit.IOConnect conn, java.lang.String key)Get a 64-bit integer value from SMCstatic com.sun.jna.platform.mac.IOKit.IOConnectsmcOpen()Open a connection to SMC.static intsmcReadKey(com.sun.jna.platform.mac.IOKit.IOConnect conn, java.lang.String key, IOKit.SMCVal val)Read a key from SMC
-
-
-
Field Detail
-
LOG
private static final org.slf4j.Logger LOG
-
IO
private static final IOKit IO
-
keyInfoCache
private static java.util.Map<java.lang.Integer,IOKit.SMCKeyDataKeyInfo> keyInfoCache
Thread-safe map for caching info retrieved by a key necessary for subsequent calls.
-
DATATYPE_SP78
private static final byte[] DATATYPE_SP78
Byte array used for matching return type
-
DATATYPE_FPE2
private static final byte[] DATATYPE_FPE2
-
DATATYPE_FLT
private static final byte[] DATATYPE_FLT
-
SMC_KEY_FAN_NUM
public static final java.lang.String SMC_KEY_FAN_NUM
- See Also:
- Constant Field Values
-
SMC_KEY_FAN_SPEED
public static final java.lang.String SMC_KEY_FAN_SPEED
- See Also:
- Constant Field Values
-
SMC_KEY_CPU_TEMP
public static final java.lang.String SMC_KEY_CPU_TEMP
- See Also:
- Constant Field Values
-
SMC_KEY_CPU_VOLTAGE
public static final java.lang.String SMC_KEY_CPU_VOLTAGE
- See Also:
- Constant Field Values
-
SMC_CMD_READ_BYTES
public static final byte SMC_CMD_READ_BYTES
- See Also:
- Constant Field Values
-
SMC_CMD_READ_KEYINFO
public static final byte SMC_CMD_READ_KEYINFO
- See Also:
- Constant Field Values
-
KERNEL_INDEX_SMC
public static final int KERNEL_INDEX_SMC
- See Also:
- Constant Field Values
-
-
Method Detail
-
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 connectionkey- 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 connectionkey- The key to retrieve- Returns:
- Long representing the value
-
smcGetKeyInfo
public static int smcGetKeyInfo(com.sun.jna.platform.mac.IOKit.IOConnect conn, IOKit.SMCKeyData inputStructure, IOKit.SMCKeyData outputStructure)Get cached keyInfo if it exists, or generate new keyInfo- Parameters:
conn- The connectioninputStructure- Key data inputoutputStructure- 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, IOKit.SMCVal val)Read a key from SMC- Parameters:
conn- The connectionkey- Key to readval- 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, IOKit.SMCKeyData inputStructure, IOKit.SMCKeyData outputStructure)Call SMC- Parameters:
conn- The connectionindex- Kernel indexinputStructure- Key data inputoutputStructure- Key data output- Returns:
- 0 if successful, nonzero if failure
-
-