Package com.sun.jna.platform.mac

# Class IOKitUtil

java.lang.Object
com.sun.jna.platform.mac.IOKitUtil

public class IOKitUtil extends Object
Provides utilities for IOKit.

## Method Summary

Modifier and Type
Method
Description
`static CoreFoundation.CFMutableDictionaryRef`
`getBSDNameMatchingDict(String bsdName)`
Convenience method to get the IO dictionary matching a bsd name.
`static int`
`getMasterPort()`
Gets a pointer to the Mach Master Port.
`static IOKit.IOService`
`getMatchingService(CoreFoundation.CFDictionaryRef matchingDictionary)`
Opens a the first IOService matching a dictionary.
`static IOKit.IOService`
`getMatchingService(String serviceName)`
Opens a the first IOService matching a service name.
`static IOKit.IOIterator`
`getMatchingServices(CoreFoundation.CFDictionaryRef matchingDictionary)`
Convenience method to get IOService objects matching a dictionary.
`static IOKit.IOIterator`
`getMatchingServices(String serviceName)`
Convenience method to get IOService objects matching a service name.
`static IOKit.IORegistryEntry`
`getRoot()`
Gets the IO Registry root.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Method Details

### getMasterPort

public static int getMasterPort()
Gets a pointer to the Mach Master Port.

Returns:
  The master port.

  Multiple calls to `getMasterPort()` will not result in leaking ports (each call to `IOKit.IOMasterPort(int, com.sun.jna.ptr.IntByReference)` adds another send right to the port) but it is considered good programming practice to deallocate the port when you are finished with it, using `SystemB.mach_port_deallocate(int, int)`.

### getRoot

public static IOKit.IORegistryEntry getRoot()
Gets the IO Registry root.

Returns:
  a handle to the IORoot. Callers should release when finished, using `IOKit.IOObjectRelease(com.sun.jna.platform.mac.IOKit.IOObject)`.

### getMatchingService

public static IOKit.IOService getMatchingService(String serviceName)
Opens a the first IOService matching a service name.

Parameters:
  `serviceName` - The service name to match
Returns:
  a handle to an IOService if successful, `null` if failed. Callers should release when finished, using `IOKit.IOObjectRelease(com.sun.jna.platform.mac.IOKit.IOObject)`.

### getMatchingService

public static IOKit.IOService getMatchingService(CoreFoundation.CFDictionaryRef matchingDictionary)
Opens a the first IOService matching a dictionary.

Parameters:
  `matchingDictionary` - The dictionary to match. This method will consume a reference to the dictionary.
Returns:
  a handle to an IOService if successful, `null` if failed. Callers should release when finished, using `IOKit.IOObjectRelease(com.sun.jna.platform.mac.IOKit.IOObject)`.

### getMatchingServices

public static IOKit.IOIterator getMatchingServices(String serviceName)
Convenience method to get IOService objects matching a service name.

Parameters:
  `serviceName` - The service name to match
Returns:
  a handle to an IOIterator if successful, `null` if failed. Callers should release when finished, using `IOKit.IOObjectRelease(com.sun.jna.platform.mac.IOKit.IOObject)`.

### getMatchingServices

public static IOKit.IOIterator getMatchingServices(CoreFoundation.CFDictionaryRef matchingDictionary)
Convenience method to get IOService objects matching a dictionary.

Parameters:
  `matchingDictionary` - The dictionary to match. This method will consume a reference to the dictionary.
Returns:
  a handle to an IOIterator if successful, `null` if failed. Callers should release when finished, using `IOKit.IOObjectRelease(com.sun.jna.platform.mac.IOKit.IOObject)`.

### getBSDNameMatchingDict

public static CoreFoundation.CFMutableDictionaryRef getBSDNameMatchingDict(String bsdName)
Convenience method to get the IO dictionary matching a bsd name.

Parameters:
  `bsdName` - The bsd name of the registry entry
Returns:
  The dictionary ref if successful, `null` if failed. Callers should release when finished, using `IOKit.IOObjectRelease(com.sun.jna.platform.mac.IOKit.IOObject)`.