Contents

IOUserSCSIParallelInterfaceController

A DriverKit provider object that manages communications with SCSI-based devices.

Declaration

class IOUserSCSIParallelInterfaceController;

Overview

Implement your driver by subclassing this class and overriding all pure virtual methods.

Specifying the Driver’s Personality Information

When you subclass IOUserSCSIParallelInterfaceController, update the IOKitPersonalities key of your driver extension’s Info.plist file with information to match your driver to appropriate hardware. For this class, always include the keys and values in the following table:

Key

Value

IOClass

IOUserSCSIParallelInterfaceController

IOUserClass

The name of your custom dext class.

IOProviderClass

IOPCIDevice

CFBundleIdentifierKernel

com.apple.iokit.IOSCSIParallelFamily

Supporting Power Capabilities

IOUserSCSIParallelInterfaceController supports the following power capabilities:

Implement the SetPowerState method in your service object and use it to put your driver in a safe state for the new power setting. Call super either as the last step in your implementation, or when the dext is ready to acknowledge the power state transition.

The following code example implements SetPowerState by performing a check to see if the new state is kIOServicePowerCapabilityOn. If it is, the implementation calls a private IssueHardReset() method.

kern_return_t
IMPL ( ExampleSCSIDext, SetPowerState )
{
    
    kern_return_t ret = kIOReturnError;



    if ( powerState == kIOServicePowerCapabilityOn )
    {
        ret = IssueHardReset ( );
 
        ivars->fCurrentPowerState = kIOServicePowerCapabilityOn;
    }

    return ret;

}

The hypothetical driver in this example still needs to acknowledge the power state change when it’s appropriate. For example, it could ensure a rescan has brought up all its targets, and then call SetPowerState ( powerState, SUPERDISPATCH );.

Topics

Managing Controllers

Managing Tasks

Managing Bundled Parallel Tasks

Managing Targets

Performing SCSI Standard Task Management

Managing Host Bus Adapters

Managing Direct Memory Access

Supporting SCSI Power States

Instance Methods