|
|
Log In | Not a Member? |
Contact ADC |
|
ADC Home > Reference Library > Reference > Hardware & Drivers > I/O Kit Framework Reference
|
IOFireWireLib.h |
| Includes: |
IOFireWireLib is the software used by user space software to communicate with FireWire
devices and control the FireWire bus. IOFireWireLib is the lowest-level FireWire interface available
in user space.
To communicate with a device on the FireWire bus, an instance of IOFireWireDeviceInterface (a struct
which is defined below) is created. The methods of IOFireWireDeviceInterface allow you
to communicate with the device and create instances of other interfaces which provide extended
functionality (for example, creation of unit directories on the local machine).
References to interfaces should be kept using the interface reference typedefs defined herein.
For example, you should use IOFireWireLibDeviceRef to refer to instances of IOFireWireDeviceInterface,
IOFireWireLibCommandRef to refer to instances of IOFireWireCommandInterface, and so on.
To obtain an IOFireWireDeviceInterface for a device on the FireWire bus, use the function
IOCreatePlugInInterfaceForService() defined in IOKit/IOCFPlugIn.h. (Note the "i" in "PlugIn" is
always upper-case.) Quick usage reference:
AddCommand |
Adds a command to the vector command.
void ( *AddCommand)( IOFireWireLibVectorCommandRef self, IOFireWireLibCommandRef command);
selfcommandAn IOReturn result code
allocateIsochResources |
Use this interface to allocate isochronous resources
IOReturn ( *allocateIsochResources)( IOFireWireLibIRMAllocationRef self, UInt8 isochChannel, UInt32 bandwidthUnits);
selfisochChannelbandwidthUnitsReturns true if allocation success
areIsochResourcesAllocated |
Poll to see if IRM resources are still allocated
Boolean ( *areIsochResourcesAllocated)( IOFireWireLibIRMAllocationRef self, UInt8 *pAllocatedIsochChannel, UInt32 *pAllocatedBandwidthUnits);
selfpAllocatedIsochChannelpAllocatedBandwidthUnitsReturns true if currently allocated, false otherwise
ClientCommandIsComplete |
Notify the PHY packet listener object that a packet notification handler has completed.
void ( *ClientCommandIsComplete)( IOFireWireLibPHYPacketListenerRef self, FWClientCommandID commandID );
selfcommandIDPacket notifications are received one at a time, in order. This function must be called after a packet handler has completed its work.
deallocateIsochResources |
Deallocate previously allocated resources
IOReturn ( *deallocateIsochResources)( IOFireWireLibIRMAllocationRef self);
selfReturns true if deallocation success
DidLock |
Was the last lock operation successful?
Boolean ( *DidLock)( IOFireWireLibCompareSwapCommandRef self);
selfReturns true if the last lock operation performed by this command object was successful, false otherwise.
Available in v2 and newer.
EnsureCapacity |
Sets the number of commands this vector can hold.
IOReturn ( *EnsureCapacity)( IOFireWireLibVectorCommandRef self, UInt32 capacity);
selfcapacityAn IOReturn result code
The vector can grow dynamically, but for performance reasons developers may want the storage preallocated for a certain number of commmands
GetCommandAtIndex |
Returns the command at a given index.
IOFireWireLibCommandRef ( *GetCommandAtIndex)( IOFireWireLibVectorCommandRef self, UInt32 index);
selfindexThe IOFireWireLibCommandRef at the specified index on return
Returns kIOReturnBadArgument if the index is out of bounds.
GetCommandCount |
Returns the number of commands currently in this vector.
UInt32 ( *GetCommandCount)( IOFireWireLibVectorCommandRef self);
selfUInt32 The number of commands in this vector
GetFlags(IOFireWireLibPHYPacketListenerRef) |
get the flags of listener.
UInt32 ( *GetFlags)( IOFireWireLibPHYPacketListenerRef self );
selfflags No current flags are defined.
GetFlags(IOFireWireLibVectorCommandRef) |
Get the flags currently set for this command.
UInt32 ( *GetFlags)( IOFireWireLibVectorCommandRef self);
selfThe flags set in SetFlags
GetIndexOfCommand |
Returns the index of the specified command.
UInt32 ( *GetIndexOfCommand)( IOFireWireLibVectorCommandRef self, IOFireWireLibCommandRef command);
selfcommandThe index of the specified command
Returns kIOReturnNotFound if the command does not exist in this vector.
GetRefCon |
Returns the user refCon value for thisinterface.
void* ( *GetRefCon)( IOFireWireLibPHYPacketListenerRef self );
selfreturns the refcon
GetRefCon(IOFireWireLibIRMAllocationRef) |
Get the current refcon
void* ( *GetRefCon)( IOFireWireLibIRMAllocationRef self);
selfReturns the current refcon value
GetRefCon(IOFireWireLibVectorCommandRef) |
Get the reference constant for this command.
void * ( *GetRefCon)( IOFireWireLibVectorCommandRef self);
selfThe reference contant set in SetRefCon
InsertCommandAtIndex |
Inserts a command at a given index. Commands at and after this index will be moved to their next sequential index.
void ( *InsertCommandAtIndex)( IOFireWireLibVectorCommandRef self, IOFireWireLibCommandRef command, UInt32 index);
selfcommandindexIsExecuting |
Checks if the vector command is currently executing.
Boolean ( *IsExecuting)( IOFireWireLibVectorCommandRef self);
selfTrue if the command is executing, false otherwise
Locked |
Get the 32-bit value returned on the last compare swap operation.
IOReturn ( *Locked)( IOFireWireLibCompareSwapCommandRef self, UInt32 *oldValue);
selfoldValueReturns kIOReturnBadArgument if the last compare swap operation performed was 64-bit.
Available in v2 and newer.
Locked64 |
Get the 64-bit value returned on the last compare swap operation.
IOReturn ( *Locked64)( IOFireWireLibCompareSwapCommandRef self, UInt64 *oldValue);
selfoldValueReturns kIOReturnBadArgument if the last compare swap performed was 32-bit.
Available in v2 and newer.
NotificationIsOn(IOFireWireLibIRMAllocationRef) |
Is notification on?
Boolean ( *NotificationIsOn)( IOFireWireLibIRMAllocationRef self);
selfReturns true if notifications for this IRMAllocation are enabled
NotificationIsOn(IOFireWireLibPHYPacketListenerRef) |
Is notification on?
Boolean ( *NotificationIsOn)( IOFireWireLibPHYPacketListenerRef self );
selfReturns true if packet notifications for this listener are active
RemoveAllCommands |
Removes all commands from the vector.
void ( *RemoveAllCommands)( IOFireWireLibVectorCommandRef self);
selfRemoveCommand |
Removes a command to the vector command.
void ( *RemoveCommand)( IOFireWireLibVectorCommandRef self, IOFireWireLibCommandRef command);
selfcommandAn IOReturn result code
RemoveCommandAtIndex |
Removes the command at a give index. Commands at and afte this index will be moved to their previous sequential index.
void ( *RemoveCommandAtIndex)( IOFireWireLibVectorCommandRef self, UInt32 index);
selfcommandoutIndexReturns kIOReturnBadArgument if the index is out of bounds.
SetCallback |
Set the callback routine for this command.
void ( *SetCallback)( IOFireWireLibVectorCommandRef self, IOFireWireLibCommandCallback inCallback);
selfinCallbackvoid
SetDataQuads |
Set the 2 quadlets of data to be sent in a PHY packet.
void ( *SetDataQuads)( IOFireWireLibPHYCommandRef self, UInt32 data1, UInt32 data2 );
selfdata1data2Available in v1 and newer.
SetFlags(IOFireWireLibPHYPacketListenerRef, UInt32) |
set flags for the listener.
void ( *SetFlags)( IOFireWireLibPHYPacketListenerRef self, UInt32 flags );
selfflagsSetFlags(IOFireWireLibVectorCommandRef, UInt32) |
Set flags governing this command's execution.
See Also:
- SetRefCon
void ( *SetFlags)( IOFireWireLibVectorCommandRef self, UInt32 inFlags);
selfinFlagsSetListenerCallback |
Set the callback that should be called to handle incoming phy packets
void ( *SetListenerCallback)( IOFireWireLibPHYPacketListenerRef self, IOFireWireLibPHYPacketCallback inCallback );
selfinCallbackSetQuads |
Set destination for read data
void ( *SetQuads)( IOFireWireLibReadQuadletCommandRef self, UInt32 inQuads[], UInt32 inNumQuads);
selfinQuadsinNumQuadsSetRefCon(IOFireWireLibIRMAllocationRef, void *) |
Set a new refcon
void ( *SetRefCon)( IOFireWireLibIRMAllocationRef self, void *refCon);
selfrefConSetRefCon(IOFireWireLibPHYPacketListenerRef, void *) |
Sets the user refCon value for this interface.
void ( *SetRefCon)( IOFireWireLibPHYPacketListenerRef self, void *refcon );
selfrefconSetRefCon(IOFireWireLibVectorCommandRef, UInt32) |
Set flags governing this command's execution.
See Also:
- SetFlags
void ( *SetFlags)( IOFireWireLibVectorCommandRef self, UInt32 inFlags);
selfinFlagsvoid
SetRefCon(IOFireWireLibVectorCommandRef, void *) |
Set the reference constant for this command.
void ( *SetRefCon)( IOFireWireLibVectorCommandRef self, void *refCon);
selfrefConvoid
setReleaseIRMResourcesOnFree |
Set a new value for releaseIRMResourcesOnFree
const void ( *setReleaseIRMResourcesOnFree)( IOFireWireLibIRMAllocationRef self, Boolean doRelease);
selfdoReleaseSetSkippedPacketCallback |
Set the callback that should be called when incoming phy packets are dropped by the listener space.
void ( *SetSkippedPacketCallback)( IOFireWireLibPHYPacketListenerRef self, IOFireWireLibPHYPacketSkippedCallback inCallback );
selfinCallbackSetValues |
Set values for 32-bit compare swap operation. Calling this function will make the command object perform 32-bit compare swap transactions on the bus. To perform 64-bit compare swap operations, use the SetValues64() call, below.
void ( *SetValues)( IOFireWireLibCompareSwapCommandRef self, UInt32 cmpVal, UInt32 newVal);
selfcmpValnewValAvailable in v2 and newer.
SetValues64 |
Set values for 64-bit compare swap operation. Calling this function will make the command object perform 64-bit compare swap transactions on the bus. To perform 32-bit compare swap operations, use the SetValues() call, above.
void ( *SetValues64)( IOFireWireLibCompareSwapCommandRef self, UInt64 cmpVal, UInt64 newVal);
selfcmpValnewValAvailable in v2 and newer.
Submit(IOFireWireLibVectorCommandRef) |
Submit this command object to FireWire for execution.
IOReturn ( *Submit)( IOFireWireLibVectorCommandRef self);
selfAn IOReturn result code
Submit(IOFireWireLibVectorCommandRef, void *, IOFireWireLibCommandCallback) |
Submit this command object to FireWire for execution.
See Also:
- SubmitWithRefconAndCallback
IOReturn ( *SubmitWithRefconAndCallback)( IOFireWireLibVectorCommandRef self, void *refCon, IOFireWireLibCommandCallback inCallback);
selfrefConinCallbackAn IOReturn result code
A convienence method to set the callback and refcon and then submit.
SubmitWithRefconAndCallback |
Submit this command object to FireWire for execution.
See Also:
- Submit
IOReturn ( *SubmitWithRefconAndCallback)( IOFireWireLibVectorCommandRef self, void *refCon, IOFireWireLibCommandCallback inCallback);
selfrefConinCallbackA convienence method to set the callback and refcon and then submit.
TurnOffNotification(IOFireWireLibIRMAllocationRef) |
Force notification off.
void ( *TurnOffNotification)( IOFireWireLibIRMAllocationRef self);
selfTurnOffNotification(IOFireWireLibPHYPacketListenerRef) |
Turn packet notification off.
void ( *TurnOffNotification)( IOFireWireLibPHYPacketListenerRef self );
selfTurnOnNotification(IOFireWireLibIRMAllocationRef) |
Try to turn on notifications
Boolean ( *TurnOnNotification)( IOFireWireLibIRMAllocationRef self);
selfReturns true upon success
TurnOnNotification(IOFireWireLibPHYPacketListenerRef) |
Try to turn on packet notifications for this listener.
IOReturn ( *TurnOnNotification)( IOFireWireLibPHYPacketListenerRef self );
selfReturns kIOReturnSuccess if successful
IOFireWireBusResetDoneHandler |
Called when a bus reset has occured and FireWire has completed configuring the bus.
typedef void ( *IOFireWireBusResetDoneHandler)( IOFireWireLibDeviceRef interface, FWClientCommandID commandID ); // parameters may change
interface- A reference to the device on which the callback was installed.
commandID- An FWClientCommandID to be passed to ClientCommandIsComplete().
IOFireWireBusResetHandler |
Called when a bus reset has occured, but before FireWire has completed configuring the bus.
typedef void ( *IOFireWireBusResetHandler)( IOFireWireLibDeviceRef interface, FWClientCommandID commandID ); // parameters may change
interface- A reference to the device on which the callback was installed.
commandID- An FWClientCommandID to be passed to ClientCommandIsComplete().
IOFireWireLibCommandCallback |
Callback called when an asynchronous command has completed executing.
typedef void ( *IOFireWireLibCommandCallback)( void *refCon, IOReturn completionStatus);
refCon- A user-specified reference value set before command object was submitted.
IOFireWireLibIRMAllocationLostNotificationProc |
Callback called when an IOFireWireLibIRMAllocationRef fails to reclaim IRM resources after a bus-reset
typedef void ( *IOFireWireLibIRMAllocationLostNotificationProc)( IOFireWireLibIRMAllocationRef irmAllocation, void *refCon);
IOFireWireLibPHYPacketCallback |
Callback called to handle incoming PHY packets
typedef void ( *IOFireWireLibPHYPacketCallback)( IOFireWireLibPHYPacketListenerRef listener, FWClientCommandID commandID, UInt32 data1, UInt32 data2, void *refCon );
listener- The listener which received the callback
commandID- An FWClientCommandID to be passed to ClientCommandIsComplete()
data1- first quad of received PHY packet
data2- second quad of received PHY packet
refCon- user specified reference value specified on the listener
IOFireWireLibPHYPacketSkippedCallback |
Callback called when incoming packets have been dropped from the internal queue
typedef void ( *IOFireWireLibPHYPacketSkippedCallback)( IOFireWireLibPHYPacketListenerRef listener, FWClientCommandID commandID, UInt32 skippedPacketCount, void *refCon );
listener- The listener which dropped the packets
commandID- An FWClientCommandID to be passed to ClientCommandIsComplete()
skippedPacketCount- The number of skipped packets
refCon- user specified reference value specified on the listener
IOFireWirePseudoAddressSpaceReadHandler |
Handles read requests to pseudo address spaces.
typedef UInt32 ( *IOFireWirePseudoAddressSpaceReadHandler)( IOFireWireLibPseudoAddressSpaceRef addressSpace, FWClientCommandID commandID, UInt32 packetLen, UInt32 packetOffset, UInt16 srcNodeID, // nodeID of requester UInt32 destAddressHi, // destination on this node UInt32 destAddressLo, void *refCon);
addressSpace- The address space to which the request is being made.
commandID- An FWClientCommandID which should be passed to ClientCommandIsComplete when the buffer has been filled in.
packetLen- Number of bytes requested.
packetOffset- Number of bytes from beginning of address space backing store.
srcNodeID- NodeID of the requester.
destAddressHi- High 16 bits of destination address on this computer.
destAddressLo- Low 32 bits of destination address on this computer.
refCon- User-specified reference number passed in when the address space was created.
This callback is called to handle read requests to pseudo address spaces. This function should fill in the specified area in the pseudo address space backing store and call ClientCommandIsComplete with the specified command ID.
IOFireWirePseudoAddressSpaceSkippedPacketHandler |
Callback called when incoming packets have been dropped from the internal queue.
typedef void ( *IOFireWirePseudoAddressSpaceSkippedPacketHandler)( IOFireWireLibPseudoAddressSpaceRef addressSpace, FWClientCommandID commandID, UInt32 skippedPacketCount);
addressSpace- The address space which dropped the packet(s).
commandID- An FWClientCommandID to be passed to ClientCommandIsComplete().
skippedPacketCount- The number of skipped packets.
IOFireWirePseudoAddressSpaceWriteHandler |
Callback called to handle write requests to a pseudo address space.
typedef UInt32 ( *IOFireWirePseudoAddressSpaceWriteHandler)( IOFireWireLibPseudoAddressSpaceRef addressSpace, FWClientCommandID commandID, UInt32 packetLen, void *packet, UInt16 srcNodeID, // nodeID of sender UInt32 destAddressHi, // destination on this node UInt32 destAddressLo, void *refCon);
addressSpace- The address space to which the write is being made.
commandID- An FWClientCommandID to be passed to ClientCommandIsComplete().
packetLen- Length in bytes of incoming packet.
packet- Pointer to the received data.
srcNodeID- Node ID of the sender.
destAddressHi- High 16 bits of destination address on this computer.
destAddressLo- Low 32 bits of destination address on this computer.
refCon- User-specified reference number passed in when the address space was created.
IOFWAsyncStreamListenerHandler |
Callback called to handle Async Stream packets.
typedef UInt32 ( *IOFWAsyncStreamListenerHandler)( IOFWAsyncStreamListenerInterfaceRef listener, FWClientCommandID commandID, UInt32 size, void *packet, void *refCon);
listener- The listener which received the callback
commandID- An FWClientCommandID to be passed to ClientCommandIsComplete()
packet- Pointer to the received data
refCon- user specified reference number passed in when async stream interface is created
IOFWAsyncStreamListenerSkippedPacketHandler |
Callback called when incoming packets have been dropped from the internal queue
typedef void ( *IOFWAsyncStreamListenerSkippedPacketHandler)( IOFWAsyncStreamListenerInterfaceRef listener, FWClientCommandID commandID, UInt32 skippedPacketCount);
listener- The listener which dropped the packets
commandID- An FWClientCommandID to be passed to ClientCommandIsComplete()
skippedPacketCount- The number of skipped packets
|