What:		/dev/fw[0-9]+
Date:		May 2007
KernelVersion:	2.6.22
Contact:	linux1394-devel@lists.sourceforge.net
Description:
		The character device files /dev/fw* are the interface between
		firewire-core and IEEE 1394 device drivers implemented in
		userspace.  The ioctl(2)- and read(2)-based ABI is defined and
		documented in <linux/firewire-cdev.h>.

		This ABI offers most of the features which firewire-core also
		exposes to kernelspace IEEE 1394 drivers.

		Each /dev/fw* is associated with one IEEE 1394 node, which can
		be remote or local nodes.  Operations on a /dev/fw* file have
		different scope:

		  - The 1394 node which is associated with the file:

			  - Asynchronous request transmission
			  - Get the Configuration ROM
			  - Query node ID
			  - Query maximum speed of the path between this node
			    and local node

		  - The 1394 bus (i.e. "card") to which the node is attached to:

			  - Isochronous stream transmission and reception
			  - Asynchronous stream transmission and reception
			  - Asynchronous broadcast request transmission
			  - PHY packet transmission and reception
			  - Allocate, reallocate, deallocate isochronous
			    resources (channels, bandwidth) at the bus's IRM
			  - Query node IDs of local node, root node, IRM, bus
			    manager
			  - Query cycle time
			  - Bus reset initiation, bus reset event reception

		  - All 1394 buses:

			  - Allocation of IEEE 1212 address ranges on the local
			    link layers, reception of inbound requests to such
			    an address range, asynchronous response transmission
			    to inbound requests
			  - Addition of descriptors or directories to the local
			    nodes' Configuration ROM

		Due to the different scope of operations and in order to let
		userland implement different access permission models, some
		operations are restricted to /dev/fw* files that are associated
		with a local node:

			  - Addition of descriptors or directories to the local
			    nodes' Configuration ROM
			  - PHY packet transmission and reception

		A /dev/fw* file remains associated with one particular node
		during its entire life time.  Bus topology changes, and hence
		node ID changes, are tracked by firewire-core.  ABI users do not
		need to be aware of topology.

		The following file operations are supported:

		open(2)
		    Currently the only useful flags are O_RDWR.

		ioctl(2)
		    Initiate various actions.  Some take immediate effect, others
		    are performed asynchronously while or after the ioctl returns.
		    See the inline documentation in <linux/firewire-cdev.h> for
		    descriptions of all ioctls.

		poll(2), select(2), epoll_wait(2) etc.
		    Watch for events to become available to be read.

		read(2)
		    Receive various events.  There are solicited events like
		    outbound asynchronous transaction completion or isochronous
		    buffer completion, and unsolicited events such as bus resets,
		    request reception, or PHY packet reception.  Always use a read
		    buffer which is large enough to receive the largest event that
		    could ever arrive.  See <linux/firewire-cdev.h> for descriptions
		    of all event types and for which ioctls affect reception of
		    events.

		mmap(2)
		    Allocate a DMA buffer for isochronous reception or transmission
		    and map it into the process address space.  The arguments should
		    be used as follows:  addr = NULL, length = the desired buffer
		    size, i.e. number of packets times size of largest packet,
		    prot = at least PROT_READ for reception and at least PROT_WRITE
		    for transmission, flags = MAP_SHARED, fd = the handle to the
		    /dev/fw*, offset = 0.

		Isochronous reception works in packet-per-buffer fashion except
		for multichannel reception which works in buffer-fill mode.

		munmap(2)
		    Unmap the isochronous I/O buffer from the process address space.

		close(2)
		    Besides stopping and freeing I/O contexts that were associated
		    with the file descriptor, back out any changes to the local
		    nodes' Configuration ROM.  Deallocate isochronous channels and
		    bandwidth at the IRM that were marked for kernel-assisted
		    re- and deallocation.

Users:		libraw1394;
		libdc1394;
		libhinawa;
		tools like linux-firewire-utils, fwhack, ...
