Blame view

kernel/linux-imx6_3.14.28/Documentation/ABI/stable/firewire-cdev 4.04 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
  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
  		tools like jujuutils, fwhack, ...