ADC Home > Reference Library > Reference > Hardware & Drivers > I/O Kit Framework Reference

 


IOFireWireCommandInterface

Declared In:

Overview

IOFireWireLib command object.

Discussion

Represents an object that is configured and submitted to issue synchronous and asynchronous bus commands. This is a superclass containing all command object functionality not specific to any kind of bus transaction.

Note that data may not always be transferred to or from the data buffer for command objects at the time the command is submitted. In some cases the transfer may happen as soon as SetBuffer (for v2 interfaces and later) is called. You can use the SetFlags call (for v2 interfaces and later) to control this behavior.



Member Data


IOFIREWIRELIBCOMMAND_C_GUTS_v2


Set flags governing this command's execution.

IOFIREWIRELIBCOMMAND_C_GUTS_v2;  
Fields
self

The command object interface of interest

inFlags

A UInt32 with bits set corresponding to the flags that should be set for this command object. The following values may be used:

  • kFWCommandNoFlags -- all flags off
  • kFWCommandInterfaceForceNoCopy -- data sent by this command should always be received/sent directly from the buffer set with SetBuffer(). Whatever data is in the buffer when the command is submitted will be used.
  • kFWCommandInterfaceForceCopyAlways -- data will always be copied out of the command object data buffer when SetBuffer() is called, up to a maximum allowed size (kFWUserCommandSubmitWithCopyMaxBufferBytes). This can result in faster data transfer. Changes made to the data buffer contents after calling SetBuffer() will be ignored; SetBuffer() should be called whenever the data buffer contents change.
  • kFWCommandInterfaceSyncExecute -- Setting this flag causes the command object to execute synchronously. The calling context will block until the command object has completed execution or an error occurs. Using synchronous execution can avoid kernel transitions associated with asynchronous completion and often remove the need for a state machine.
  • kFWCommandInterfaceForceBlockRequest -- Setting this flag causes read and write transactions to use block request packets even if the payload is 4 bytes. If this flag is not set 4 byte transactions will occur using quadlet transactions.
Discussion

Availability: (for interfaces obtained with ID)

kIOFireWireReadCommandInterfaceID NO
kIOFireWireReadCommandInterfaceID_v2 YES
kIOFireWireWriteCommandInterfaceID NO
kIOFireWireWriteCommandInterfaceID_v2 YES
kIOFireWireReadQuadletCommandInterfaceID NO
kIOFireWireWriteQuadletCommandInterfaceID NO
kIOFireWireCompareSwapCommandInterfaceID NO
kIOFireWireAsyncStreamCommandInterfaceID NO
kIOFireWireAsyncStreamCommandInterfaceID YES


IOFIREWIRELIBCOMMAND_C_GUTS_v3


Gets the refcon associated with this command

IOFIREWIRELIBCOMMAND_C_GUTS_v3;  
Fields
self

A reference to the command


Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.

 

Last Updated: 2009-02-23