Structure

IOFireWireDeviceInterface

IOFireWireDeviceInterface is your primary gateway to the functionality contained in IOFireWireLib.

Overview

You can use IOFireWireDeviceInterface to:

  • perform synchronous read, write and lock operations

  • perform other miscellanous bus operations, such as reset the FireWire bus.

  • create FireWire command objects and interfaces used to perform synchronous/asynchronous read, write and lock operations. These include:

    • IOFireWireReadCommandInterface

    • IOFireWireReadQuadletCommandInterface

    • IOFireWireWriteCommandInterface

    • IOFireWireWriteQuadletCommandInterface

    • IOFireWireCompareSwapCommandInterface

  • create interfaces which provide other extended services. These include:

    • IOFireWirePseudoAddressSpaceInterface -- pseudo address space services

    • IOFireWirePhysicalAddressSpaceInterface -- physical address space services

    • IOFireWireLocalUnitDirectoryInterface -- manage local unit directories in the mac

    • IOFireWireConfigDirectoryInterface -- access and browse remote device config directories

  • create interfaces which provide isochronous services (see IOFireWireLibIsoch.h). These include:

    • IOFireWireIsochChannelInterface -- create/manage talker and listener isoch channels

    • IOFireWireLocalIsochPortInterface -- create local isoch ports

    • IOFireWireRemoteIsochPortInterface -- create remote isoch ports

    • IOFireWireDCLCommandPoolInterface -- create a DCL command pool allocator.

Topics

Miscellaneous

AddCallbackDispatcherToRunLoop

Installs the proper run loop event source to allow callbacks to function. This method must be called before callback notifications for this interface or any interfaces created using this interface can function.

AddCallbackDispatcherToRunLoopForMode

Add a run loop event source to allow IOFireWireLib callbacks to function.

AddIsochCallbackDispatcherToRunLoop(IOFireWireLibDeviceRef, CFRunLoopRef)

This function adds an event source for the isochronous callback dispatcher to the specified CFRunLoop. Isochronous related callbacks will not function before this function is called. This functions is similar to AddCallbackDispatcherToRunLoop. The passed CFRunLoop can be different from that passed to AddCallbackDispatcherToRunLoop.

AddIsochCallbackDispatcherToRunLoop(IOFireWireLibDeviceRef, CFRunLoopRef, CFStringRef)

Add a run loop event source to allow IOFireWireLib isoch callbacks to function.

AddIsochCallbackDispatcherToRunLoopForMode

Add a run loop event source to allow IOFireWireLib isoch callbacks to function.

AllocateIRMBandwidthInGeneration

Attempt to allocate some isochronous bandwidth from the IRM

AllocateIRMChannelInGeneration

Attempt to allocate an isochronous channel from the IRM

BusReset

Cause a bus reset

ClientCommandIsComplete

This function must be called from callback routines once they have completed processing a callback. This function only applies to callbacks which take an IOFireWireLibDeviceRef (i.e. bus reset), parameter.

Close

Release exclusive access to the device

CompareSwap

Perform synchronous lock operation

CompareSwap64

Perform synchronous lock operation

CreateAsyncStreamCommand

Create a command object for sending Async Stream packets

CreateAsyncStreamListener

Creates a async stream listener object and returns an interface to it.

CreateCompareSwapCommand

Create a quadlet compare/swap command object.

CreateCompareSwapCommand64

Create a quadlet compare/swap command object and initialize it with 64-bit values.

CreateConfigDirectoryWithIOObject

This function can be used to create a config directory object and a corresponding interface from an opaque IOObject reference. Some configuration directory interface methods may return an io_object_t instead of an IOFireWireLibConfigDirectoryRef. Use this function to obtain an IOFireWireLibConfigDirectoryRef from an io_object_t.

CreateDCLCommandPool

Creates a command pool object and returns an interface to it. The command pool can be used to build DCL programs.

CreateInitialUnitsPseudoAddressSpace

Creates a pseudo address space in initial units space.

CreateIRMAllocation

Attempt to create an IRM allocation that persists accross bus-resets.

CreateIsochChannel

Creates an isochronous channel object and returns an interface to it. An isochronous channel object is an abstract entity used to represent a FireWire isochronous channel.

CreateLocalIsochPort

Creates a local isochronous port object and returns an interface to it. A local isochronous port object is an abstract entity used to represent a talking or listening endpoint in the local machine.

CreateLocalIsochPortWithOptions

Create a local isoch port

CreateLocalUnitDirectory

Creates a local unit directory object and returns an interface to it. An instance of a unit directory object corresponds to an instance of a unit directory in the local machine's configuration ROM.

CreatePHYCommand

Create a command object for sending a PHY packet

CreatePHYPacketListener

Create a listener object for receiving PHY packets

CreatePhysicalAddressSpace

Creates a physical address space object and returns an interface to it. This will create a physical address space on the local machine.

CreatePseudoAddressSpace

Creates a pseudo address space object and returns an interface to it. This will create a pseudo address space (software-backed) on the local machine.

CreateReadCommand

Create a block read command object.

CreateReadQuadletCommand

Create a quadlet read command object.

CreateRemoteIsochPort

Creates a remote isochronous port object and returns an interface to it. A remote isochronous port object is an abstract entity used to represent a remote talker or listener device on an isochronous channel.

CreateVectorCommand

Create a vector command object.

CreateWriteCommand

Create a block write command object.

CreateWriteQuadletCommand

Create a quadlet write command object.

FireLog

Logs string to in-kernel debug buffer

GetBusCycleTime

Get bus and cycle time.

GetBusGeneration

Get bus generation number.

GetConfigDirectory

Creates a config directory object and returns an interface to it. The created config directory object represents the config directory in the remote device or unit to which the creating device interface is attached.

GetCycleTime

Get bus cycle time.

GetCycleTimeAndUpTime

Get bus cycle time and cpu uptime.

GetDevice

Get the IOKit service to which this interface is connected.

GetGenerationAndNodeID

(Obsolete) Get bus generation and remote device node ID.

GetIsochAsyncPort

Returns the notification port used for async and isoch callbacks

GetLocalNodeID

(Obsolete) Get local node ID.

GetLocalNodeIDWithGeneration

Get node ID of local machine.

GetRefCon

Get user reference value set on this interface

GetRemoteNodeID

Get node ID of device to which this interface is attached.

GetResetTime

Get time since last bus reset.

GetSpeedBetweenNodes

Get the maximum transfer speed between nodes 'srcNodeID' and 'destNodeID'.

GetSpeedToNode

Get maximum transfer speed to device to which this interface is attached.

InterfaceIsInited

Determine whether interface has been properly inited.

NotificationIsOn

Determine whether callback notifications for this interface are currently active

Open

Open the connected device for exclusive access. When you have the device open using this method, all accesses by other clients of this device will be denied until Close() is called.

OpenWithSessionRef

An open function which allows this interface to have access to the device when already opened. The service which has already opened the device must be able to provide an IOFireWireSessionRef.

PrintDCLProgram

Walk a DCL program linked list and print its contents

Read

Perform synchronous block read

ReadQuadlet

Perform synchronous quadlet read

ReleaseIRMBandwidthInGeneration

Attempt to release some isochronous bandwidth from the IRM

ReleaseIRMChannelInGeneration

Attempt to release an isochronous channel from the IRM

RemoveCallbackDispatcherFromRunLoop

Reverses the effects of AddCallbackDispatcherToRunLoop(). This method removes the run loop event source that was added to the specified run loop preventing any future callbacks from being called

RemoveIsochCallbackDispatcherFromRunLoop

Removes an IOFireWireLib-added run loop event source.

Seize

Seize control of device/unit

SetBusResetDoneHandler

Sets the callback that should be called after a bus reset has occurred and reconfiguration of the bus has been completed. This function will only be called once per bus reset.

SetBusResetHandler

Sets the callback that should be called when a bus reset occurs. Note that this callback can be called multiple times before the bus reset done handler is called. (f.ex., multiple bus resets might occur before bus reconfiguration has completed.)

SetRefCon

Set user reference value on this interface

TurnOffNotification

Deactivates and callbacks specified for this device interface. Reverses the effects of TurnOnNotification()

TurnOnNotification

Activates any callbacks specified for this device interface. Only works after AddCallbackDispatcherToRunLoop has been called. See also AddIsochCallbackDispatcherToRunLoop().

Write

Perform synchronous block write

WriteQuadlet

Perform synchronous quadlet write

Instance Variables

See Also

COM Interfaces

IOATASMARTInterface

Self-Monitoring, Analysis, and Reporting Technology Interface.

IOFireWireAVCLibConsumerInterface

Interface for an asynchronous connection consumer.

IOFireWireAVCLibProtocolInterface

Initial interface discovered for all AVC protocol drivers.

IOFireWireAVCLibUnitInterface

Initial interface discovered for all AVC Unit drivers.

IOFireWireCommandInterface

IOFireWireLib command object.

IOFireWireConfigDirectoryInterface

IOFireWireLib device config ROM browsing interface

IOFireWireIsochChannelInterface

FireWire user client isochronous channel object.

IOFireWireIsochPortInterface

FireWire user client isochronous port interface

IOFireWireLibPHYPacketListenerInterface

Represents and provides management functions for a phy packet listener object.

IOFireWireLibVectorCommandInterface

IOFireWireLib command object for grouping commands execution.

IOFireWireLocalIsochPortInterface

FireWire user client local isochronous port object.

IOFireWireNubInterface

IOFireWireDeviceInterface is your primary gateway to the functionality contained in IOFireWireLib.

IOFireWireNuDCLPoolInterface

Use this interface to build NuDCL-based DCL programs.

IOFireWirePhysicalAddressSpaceInterface

IOFireWireLib physical address space object. ( interface name: IOFireWirePhysicalAddressSpaceInterface )

IOFireWireReadCommandInterface

IOFireWireLib block read command object.

IOFireWireReadQuadletCommandInterface

IOFireWireReadQuadletCommandInterface -- IOFireWireLib quadlet read command object.

IOFireWireSBP2LibLoginInterface

Supplies the login maintenance and Normal Command ORB execution portions of the API.

IOFireWireSBP2LibLUNInterface

Initial interface disovered for all drivers.

IOFireWireSBP2LibMgmtORBInterface

Supplies non login related management ORBs. Management ORBs can be executed independent of a login, if necessary. Management ORBs are created using the IOFireWireSBP2LibLUNInterface.

IOFireWireSBP2LibORBInterface

Represents an SBP2 normal command ORB. Supplies the APIs for configuring normal command ORBs. This includes setting the command block and writing the page tables for I/O. The ORBs are executed using the submitORB method in IOFireWireSBP2LibLoginInterface.

IOFireWireUnitInterface

IOFireWireDeviceInterface is your primary gateway to the functionality contained in IOFireWireLib.

IOFireWireWriteCommandInterface

IOFireWireLib block read command object.

IOFireWireWriteQuadletCommandInterface

IOFireWireLib quadlet read command object.

IOFWAsyncStreamListenerInterface

Represents and provides management functions for a asyn stream listener object.

IOHIDDeviceDeviceInterface

The object you use to access HID devices from user space, returned by version 1.5 of the IOHIDFamily.

IOHIDDeviceInterface

CFPlugin object subclass which provides the primary interface to HID devices.

IOHIDDeviceInterface121

CFPlugin object subclass which provides the primary interface to HID devices. This class is a subclass of IOHIDDeviceInterface.

IOHIDDeviceInterface122

CFPlugin object subclass which provides the primary interface to HID devices. This class is a subclass of IOHIDDeviceInterface121.

IOHIDDeviceQueueInterface

The object you use to access a HID queue from user space, returned by version 1.5 of the IOHIDFamily.

IOHIDDeviceTransactionInterface

The object you use to access a HID transaction from user space, returned by version 1.5 of the IOHIDFamily.

IOHIDOutputTransactionInterface

CFPlugin object subclass which privides interface for output transactions to HID devices. Created by a IOHIDDeviceInterface object.

IOHIDQueueInterface

CFPlugin object subclass which provides an interface for input queues from HID devices. Created by an IOHIDDeviceInterface object.

IOUPSPlugInInterface

Represents and provides management functions for a UPS device.

IOUSBDeviceInterface

The object you use to access USB devices from user space, returned by all versions of the IOUSBFamily currently shipping.

IOUSBDeviceInterface182

The object you use to access USB devices from user space, returned by the IOUSBFamily version 1.8.2 and above.

IOUSBDeviceInterface187

The object you use to access USB devices from user space, returned by the IOUSBFamily version 10.8.7 and above.

IOUSBDeviceInterface197

The object you use to access USB devices from user space, returned by the IOUSBFamily version 1.9.7 and above.

IOUSBDeviceInterface245

The object you use to access USB devices from user space, returned by the IOUSBFamily version 2.4.5 and above.

IOUSBDeviceInterface300

The object you use to access USB devices from user space, returned by the IOUSBFamily version 3.0.0 and above.

IOUSBDeviceInterface320

The object you use to access USB devices from user space, returned by the IOUSBFamily version 3.2.0 and above.

IOUSBDeviceInterface500

The object you use to access USB devices from user space, returned by the IOUSBFamily version 3.2.0 and above.

IOUSBInterfaceInterface

The object you use to access a USB device interface from user space, returned by all versions of the IOUSBFamily currently shipping.

IOUSBInterfaceInterface182

The object you use to access a USB device interface from user space, returned by the IOUSBFamily version 1.8.2 and above.

IOUSBInterfaceInterface183

The object you use to access a USB device interface from user space, returned by the IOUSBFamily version 1.8.3 and above.

IOUSBInterfaceInterface190

The object you use to access a USB device interface from user space, returned by the IOUSBFamily version 1.9 and above.

IOUSBInterfaceInterface192

The object you use to access a USB device interface from user space, returned by the IOUSBFamily version 1.9.2 and above.

IOUSBInterfaceInterface197

The object you use to access a USB device interface from user space, returned by the IOUSBFamily version 1.9.7 and above.

MMCDeviceInterface

Basic interface for an MMC-2 Compliant Device.

SCSITaskDeviceInterface

Basic interface for a SCSITask Device.

SCSITaskInterface

Basic interface for a SCSITask.