.. | .. |
---|
14 | 14 | Each /dev/fw* is associated with one IEEE 1394 node, which can |
---|
15 | 15 | be remote or local nodes. Operations on a /dev/fw* file have |
---|
16 | 16 | different scope: |
---|
| 17 | + |
---|
17 | 18 | - The 1394 node which is associated with the file: |
---|
| 19 | + |
---|
18 | 20 | - Asynchronous request transmission |
---|
19 | 21 | - Get the Configuration ROM |
---|
20 | 22 | - Query node ID |
---|
21 | 23 | - Query maximum speed of the path between this node |
---|
22 | 24 | and local node |
---|
| 25 | + |
---|
23 | 26 | - The 1394 bus (i.e. "card") to which the node is attached to: |
---|
| 27 | + |
---|
24 | 28 | - Isochronous stream transmission and reception |
---|
25 | 29 | - Asynchronous stream transmission and reception |
---|
26 | 30 | - Asynchronous broadcast request transmission |
---|
.. | .. |
---|
31 | 35 | manager |
---|
32 | 36 | - Query cycle time |
---|
33 | 37 | - Bus reset initiation, bus reset event reception |
---|
| 38 | + |
---|
34 | 39 | - All 1394 buses: |
---|
| 40 | + |
---|
35 | 41 | - Allocation of IEEE 1212 address ranges on the local |
---|
36 | 42 | link layers, reception of inbound requests to such |
---|
37 | 43 | an address range, asynchronous response transmission |
---|
.. | .. |
---|
43 | 49 | userland implement different access permission models, some |
---|
44 | 50 | operations are restricted to /dev/fw* files that are associated |
---|
45 | 51 | with a local node: |
---|
| 52 | + |
---|
46 | 53 | - Addition of descriptors or directories to the local |
---|
47 | 54 | nodes' Configuration ROM |
---|
48 | 55 | - PHY packet transmission and reception |
---|
.. | .. |
---|
55 | 62 | The following file operations are supported: |
---|
56 | 63 | |
---|
57 | 64 | open(2) |
---|
58 | | - Currently the only useful flags are O_RDWR. |
---|
| 65 | + Currently the only useful flags are O_RDWR. |
---|
59 | 66 | |
---|
60 | 67 | ioctl(2) |
---|
61 | | - Initiate various actions. Some take immediate effect, others |
---|
62 | | - are performed asynchronously while or after the ioctl returns. |
---|
63 | | - See the inline documentation in <linux/firewire-cdev.h> for |
---|
64 | | - descriptions of all ioctls. |
---|
| 68 | + Initiate various actions. Some take immediate effect, others |
---|
| 69 | + are performed asynchronously while or after the ioctl returns. |
---|
| 70 | + See the inline documentation in <linux/firewire-cdev.h> for |
---|
| 71 | + descriptions of all ioctls. |
---|
65 | 72 | |
---|
66 | 73 | poll(2), select(2), epoll_wait(2) etc. |
---|
67 | | - Watch for events to become available to be read. |
---|
| 74 | + Watch for events to become available to be read. |
---|
68 | 75 | |
---|
69 | 76 | read(2) |
---|
70 | | - Receive various events. There are solicited events like |
---|
71 | | - outbound asynchronous transaction completion or isochronous |
---|
72 | | - buffer completion, and unsolicited events such as bus resets, |
---|
73 | | - request reception, or PHY packet reception. Always use a read |
---|
74 | | - buffer which is large enough to receive the largest event that |
---|
75 | | - could ever arrive. See <linux/firewire-cdev.h> for descriptions |
---|
76 | | - of all event types and for which ioctls affect reception of |
---|
77 | | - events. |
---|
| 77 | + Receive various events. There are solicited events like |
---|
| 78 | + outbound asynchronous transaction completion or isochronous |
---|
| 79 | + buffer completion, and unsolicited events such as bus resets, |
---|
| 80 | + request reception, or PHY packet reception. Always use a read |
---|
| 81 | + buffer which is large enough to receive the largest event that |
---|
| 82 | + could ever arrive. See <linux/firewire-cdev.h> for descriptions |
---|
| 83 | + of all event types and for which ioctls affect reception of |
---|
| 84 | + events. |
---|
78 | 85 | |
---|
79 | 86 | mmap(2) |
---|
80 | | - Allocate a DMA buffer for isochronous reception or transmission |
---|
81 | | - and map it into the process address space. The arguments should |
---|
82 | | - be used as follows: addr = NULL, length = the desired buffer |
---|
83 | | - size, i.e. number of packets times size of largest packet, |
---|
84 | | - prot = at least PROT_READ for reception and at least PROT_WRITE |
---|
85 | | - for transmission, flags = MAP_SHARED, fd = the handle to the |
---|
86 | | - /dev/fw*, offset = 0. |
---|
| 87 | + Allocate a DMA buffer for isochronous reception or transmission |
---|
| 88 | + and map it into the process address space. The arguments should |
---|
| 89 | + be used as follows: addr = NULL, length = the desired buffer |
---|
| 90 | + size, i.e. number of packets times size of largest packet, |
---|
| 91 | + prot = at least PROT_READ for reception and at least PROT_WRITE |
---|
| 92 | + for transmission, flags = MAP_SHARED, fd = the handle to the |
---|
| 93 | + /dev/fw*, offset = 0. |
---|
87 | 94 | |
---|
88 | 95 | Isochronous reception works in packet-per-buffer fashion except |
---|
89 | 96 | for multichannel reception which works in buffer-fill mode. |
---|
90 | 97 | |
---|
91 | 98 | munmap(2) |
---|
92 | | - Unmap the isochronous I/O buffer from the process address space. |
---|
| 99 | + Unmap the isochronous I/O buffer from the process address space. |
---|
93 | 100 | |
---|
94 | 101 | close(2) |
---|
95 | | - Besides stopping and freeing I/O contexts that were associated |
---|
96 | | - with the file descriptor, back out any changes to the local |
---|
97 | | - nodes' Configuration ROM. Deallocate isochronous channels and |
---|
98 | | - bandwidth at the IRM that were marked for kernel-assisted |
---|
99 | | - re- and deallocation. |
---|
| 102 | + Besides stopping and freeing I/O contexts that were associated |
---|
| 103 | + with the file descriptor, back out any changes to the local |
---|
| 104 | + nodes' Configuration ROM. Deallocate isochronous channels and |
---|
| 105 | + bandwidth at the IRM that were marked for kernel-assisted |
---|
| 106 | + re- and deallocation. |
---|
100 | 107 | |
---|
101 | | -Users: libraw1394 |
---|
102 | | - libdc1394 |
---|
103 | | - libhinawa |
---|
| 108 | +Users: libraw1394; |
---|
| 109 | + libdc1394; |
---|
| 110 | + libhinawa; |
---|
104 | 111 | tools like linux-firewire-utils, fwhack, ... |
---|