Class IOKit.IOObject

java.lang.Object
com.sun.jna.PointerType
com.sun.jna.platform.mac.IOKit.IOObject
All Implemented Interfaces:
NativeMapped
Direct Known Subclasses:
IOKit.IOIterator, IOKit.IORegistryEntry
Enclosing interface:
IOKit

public static class IOKit.IOObject extends PointerType
IOKitLib implements non-kernel task access to common IOKit object types - IORegistryEntry, IOService, IOIterator etc. These functions are generic - families may provide API that is more specific.

IOKitLib represents IOKit objects outside the kernel with the types io_object_t, io_registry_entry_t, io_service_t, and io_connect_t. Function names usually begin with the type of object they are compatible with - e.g., IOObjectRelease can be used with any io_object_t. Inside the kernel, the c++ class hierarchy allows the subclasses of each object type to receive the same requests from user level clients, for example in the kernel, IOService is a subclass of IORegistryEntry, which means any of the IORegistryEntryXXX functions in IOKitLib may be used with io_service_t's as well as io_registry_t's. There are functions available to introspect the class of the kernel object which any io_object_t et al. represents. IOKit objects returned by all functions should be released with IOKit.IOObjectRelease(IOKit.IOObject).

  • Constructor Details

    • IOObject

      public IOObject()
    • IOObject

      public IOObject(Pointer p)
  • Method Details

    • conformsTo

      public boolean conformsTo(String className)
      Convenience method for IOKit.IOObjectConformsTo(IOKit.IOObject, String) on this object.
      Parameters:
      className - The name of the class.
      Returns:
      If the object handle is valid, and represents an object in the kernel that dynamic casts to the class true is returned, otherwise false.
    • release

      public int release()
      Convenience method for IOKit.IOObjectRelease(IOKit.IOObject) on this object.
      Returns:
      0 if successful, otherwise a kern_return_t error code.