sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}(hhparenthuba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget'/translations/zh_CN/driver-api/firewiremodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}(hhhh2ubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/zh_TW/driver-api/firewiremodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}(hhhhFubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/it_IT/driver-api/firewiremodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}(hhhhZubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ja_JP/driver-api/firewiremodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}(hhhhnubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ko_KR/driver-api/firewiremodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}(hhhhubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/sp_SP/driver-api/firewiremodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(h+Firewire (IEEE 1394) driver Interface Guideh]h+Firewire (IEEE 1394) driver Interface Guide}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhA/var/lib/git/docbuild/linux/Documentation/driver-api/firewire.rsthKubh)}(hhh](h)}(hIntroduction and Overviewh]hIntroduction and Overview}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhdefinition_list)}(hhh]hdefinition_list_item)}(hwThe Linux FireWire subsystem adds some interfaces into the Linux system to use/maintain+any resource on IEEE 1394 bus. h](hterm)}(hJThe Linux FireWire subsystem adds some interfaces into the Linux system toh]hJThe Linux FireWire subsystem adds some interfaces into the Linux system to}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhubh definition)}(hhh]h paragraph)}(h+use/maintain+any resource on IEEE 1394 bus.h]h+use/maintain+any resource on IEEE 1394 bus.}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhK hhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(hThe main purpose of these interfaces is to access address space on each node on IEEE 1394 bus by ISO/IEC 13213 (IEEE 1212) procedure, and to control isochronous resources on the bus by IEEE 1394 procedure.h]hThe main purpose of these interfaces is to access address space on each node on IEEE 1394 bus by ISO/IEC 13213 (IEEE 1212) procedure, and to control isochronous resources on the bus by IEEE 1394 procedure.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hTwo types of interfaces are added, according to consumers of the interface. A set of userspace interfaces is available via `firewire character devices`. A set of kernel interfaces is available via exported symbols in `firewire-core` module.h](h{Two types of interfaces are added, according to consumers of the interface. A set of userspace interfaces is available via }(h{Two types of interfaces are added, according to consumers of the interface. A set of userspace interfaces is available via hjhhhNhNubhtitle_reference)}(h`firewire character devices`h]hfirewire character devices}(hhhj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubhB. A set of kernel interfaces is available via exported symbols in }(hB. A set of kernel interfaces is available via exported symbols in hjhhhNhNubj")}(h`firewire-core`h]h firewire-core}(hhhj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubh module.}(h module.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h]introduction-and-overviewah ]h"]introduction and overviewah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h$Firewire char device data structuresh]h$Firewire char device data structures}(hj\hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhhhhhKubh literal_block)}(hXWhat: /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 . 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 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 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, ... h]hXWhat: /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 . 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 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 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, ... }(hhhjjubah}(h]h ]h"]h$]h&]source&Documentation/ABI/stable/firewire-cdev xml:spacepreserveuh1jhhKhjWhhhhubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlefw_cdev_event_common (C struct)c.fw_cdev_event_commonhNtauh1j|hjWhhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhNubhdesc)}(hhh](hdesc_signature)}(hfw_cdev_event_commonh]hdesc_signature_line)}(hstruct fw_cdev_event_commonh](hdesc_sig_keyword)}(hstructh]hstruct}(hhhjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjhhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhK9ubhdesc_sig_space)}(h h]h }(hhhjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhK9ubh desc_name)}(hfw_cdev_event_commonh]h desc_sig_name)}(hjh]hfw_cdev_event_common}(hhhjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]jzj{uh1jhjhhhjhK9ubeh}(h]h ]h"]h$]h&]jzj{ add_permalinkuh1jsphinx_line_type declaratorhjhhhjhK9ubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multilineuh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjhhubh desc_content)}(hhh]h)}(h(Common part of all fw_cdev_event_* typesh]h(Common part of all fw_cdev_event_* types}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhK8hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK9ubeh}(h]h ](cstructeh"]h$]h&]domainjobjtypejdesctypejnoindexuh1jhhhjWhjhNubh container)}(h**Definition**:: struct fw_cdev_event_common { __u64 closure; __u32 type; }; **Members** ``closure`` For arbitrary use by userspace ``type`` Discriminates the fw_cdev_event_* typesh](h)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hhhj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubh:}(h:hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(h **Members**h]j$)}(hjPh]hMembers}(hhhjRhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKChjubh)}(hhh](h)}(h+``closure`` For arbitrary use by userspace h](h)}(h ``closure``h]hliteral)}(hjoh]hclosure}(hhhjshhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjmubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhK:hjiubh)}(hhh]h)}(hFor arbitrary use by userspaceh]hFor arbitrary use by userspace}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK:hjubah}(h]h ]h"]h$]h&]uh1hhjiubeh}(h]h ]h"]h$]h&]uh1hhjhK:hjfubh)}(h0``type`` Discriminates the fw_cdev_event_* typesh](h)}(h``type``h]jr)}(hjh]htype}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhK:hjubh)}(hhh]h)}(h'Discriminates the fw_cdev_event_* typesh]h'Discriminates the fw_cdev_event_* types}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhK;hjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhK:hjfubeh}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hjh]h Description}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhK>hjWhhubh)}(hoThis struct may be used to access generic members of all fw_cdev_event_* types regardless of the specific type.h]hoThis struct may be used to access generic members of all fw_cdev_event_* types regardless of the specific type.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhKQhjubeh}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hjlh]h Description}(hhhjnhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKUhjWhhubh)}(hThis event is sent when the bus the device belongs to goes through a bus reset. It provides information about the new bus configuration, such as new node ID for this device, new root ID, and others.h]hThis event is sent when the bus the device belongs to goes through a bus reset. It provides information about the new bus configuration, such as new node ID for this device, new root ID, and others.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKShjWhhubh)}(hIf **bm_node_id** is 0xffff right after bus reset it can be reread by an ``FW_CDEV_IOC_GET_INFO`` ioctl after bus manager selection was finished. Kernels with ABI version < 4 do not set **bm_node_id**.h](hIf }(hIf hjhhhNhNubj$)}(h**bm_node_id**h]h bm_node_id}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubh8 is 0xffff right after bus reset it can be reread by an }(h8 is 0xffff right after bus reset it can be reread by an hjhhhNhNubjr)}(h``FW_CDEV_IOC_GET_INFO``h]hFW_CDEV_IOC_GET_INFO}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubhY ioctl after bus manager selection was finished. Kernels with ABI version < 4 do not set }(hY ioctl after bus manager selection was finished. Kernels with ABI version < 4 do not set hjhhhNhNubj$)}(h**bm_node_id**h]h bm_node_id}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubh.}(h.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKWhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j!fw_cdev_event_response (C struct)c.fw_cdev_event_responsehNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_event_responseh]j)}(hstruct fw_cdev_event_responseh](j)}(hjh]hstruct}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKhubj)}(hfw_cdev_event_responseh]j)}(hjh]hfw_cdev_event_response}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhjhhhjhKhubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhjhhhjhKhubah}(h]jah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhK^hjhhubj)}(hhh]h)}(h(Sent when a response packet was receivedh]h(Sent when a response packet was received}(hj8hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKghj3hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKhubeh}(h]h ](jstructeh"]h$]h&]jjjjNjjNjuh1jhhhjWhjhNubj)}(hXG**Definition**:: struct fw_cdev_event_response { __u64 closure; __u32 type; __u32 rcode; __u32 length; __u32 data[]; }; **Members** ``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_SEND_REQUEST`` or ``FW_CDEV_IOC_SEND_BROADCAST_REQUEST`` or ``FW_CDEV_IOC_SEND_STREAM_PACKET`` ioctl ``type`` See :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_RESPONSE`` ``rcode`` Response code returned by the remote node ``length`` Data length, i.e. the response's payload size in bytes ``data`` Payload data, if anyh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjZhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjVubh:}(hj7hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKkhjRubji)}(hzstruct fw_cdev_event_response { __u64 closure; __u32 type; __u32 rcode; __u32 length; __u32 data[]; };h]hzstruct fw_cdev_event_response { __u64 closure; __u32 type; __u32 rcode; __u32 length; __u32 data[]; };}(hhhjsubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKmhjRubh)}(h **Members**h]j$)}(hjh]hMembers}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKuhjRubh)}(hhh](h)}(h``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_SEND_REQUEST`` or ``FW_CDEV_IOC_SEND_BROADCAST_REQUEST`` or ``FW_CDEV_IOC_SEND_STREAM_PACKET`` ioctl h](h)}(h ``closure``h]jr)}(hjh]hclosure}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKkhjubh)}(hhh]h)}(hSee :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_SEND_REQUEST`` or ``FW_CDEV_IOC_SEND_BROADCAST_REQUEST`` or ``FW_CDEV_IOC_SEND_STREAM_PACKET`` ioctlh](hSee }(hSee hjhhhNhNubh)}(h:c:type:`fw_cdev_event_common`h]jr)}(hjh]hfw_cdev_event_common}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_commonuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKihjubh ; set by }(h ; set by hjhhhNhNubjr)}(h``FW_CDEV_IOC_SEND_REQUEST``h]hFW_CDEV_IOC_SEND_REQUEST}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubh or }(h or hjhhhNhNubjr)}(h&``FW_CDEV_IOC_SEND_BROADCAST_REQUEST``h]h"FW_CDEV_IOC_SEND_BROADCAST_REQUEST}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubh or }(hjhjubjr)}(h"``FW_CDEV_IOC_SEND_STREAM_PACKET``h]hFW_CDEV_IOC_SEND_STREAM_PACKET}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubh ioctl}(h ioctlhjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKihjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKkhjubh)}(hO``type`` See :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_RESPONSE`` h](h)}(h``type``h]jr)}(hj:h]htype}(hhhj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj8ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKlhj4ubh)}(hhh]h)}(hESee :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_RESPONSE``h](hSee }(hSee hjShhhNhNubh)}(h:c:type:`fw_cdev_event_common`h]jr)}(hj^h]hfw_cdev_event_common}(hhhj`hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj\ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_commonuh1hhjOhKlhjSubh ; always }(h ; always hjShhhNhNubjr)}(h``FW_CDEV_EVENT_RESPONSE``h]hFW_CDEV_EVENT_RESPONSE}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjSubeh}(h]h ]h"]h$]h&]uh1hhjOhKlhjPubah}(h]h ]h"]h$]h&]uh1hhj4ubeh}(h]h ]h"]h$]h&]uh1hhjOhKlhjubh)}(h4``rcode`` Response code returned by the remote node h](h)}(h ``rcode``h]jr)}(hjh]hrcode}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKmhjubh)}(hhh]h)}(h)Response code returned by the remote nodeh]h)Response code returned by the remote node}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKmhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKmhjubh)}(hB``length`` Data length, i.e. the response's payload size in bytes h](h)}(h ``length``h]jr)}(hjh]hlength}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKnhjubh)}(hhh]h)}(h6Data length, i.e. the response's payload size in bytesh]h8Data length, i.e. the response’s payload size in bytes}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKnhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKnhjubh)}(h``data`` Payload data, if anyh](h)}(h``data``h]jr)}(hj h]hdata}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKnhj ubh)}(hhh]h)}(hPayload data, if anyh]hPayload data, if any}(hj3 hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKohj. ubah}(h]h ]h"]h$]h&]uh1hhj ubeh}(h]h ]h"]h$]h&]uh1hhj- hKnhjubeh}(h]h ]h"]h$]h&]uh1hhjRubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hj[ h]h Description}(hhhj] hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjY ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKrhjWhhubh)}(hThis event is sent instead of :c:type:`fw_cdev_event_response` if the kernel or the client implements ABI version <= 5. It has the lack of time stamp field comparing to :c:type:`fw_cdev_event_response2`.h](hThis event is sent instead of }(hThis event is sent instead of hjq hhhNhNubh)}(h :c:type:`fw_cdev_event_response`h]jr)}(hj| h]hfw_cdev_event_response}(hhhj~ hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjz ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_responseuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKphjq ubhk if the kernel or the client implements ABI version <= 5. It has the lack of time stamp field comparing to }(hk if the kernel or the client implements ABI version <= 5. It has the lack of time stamp field comparing to hjq hhhNhNubh)}(h!:c:type:`fw_cdev_event_response2`h]jr)}(hj h]hfw_cdev_event_response2}(hhhj hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_response2uh1hhj hKphjq ubh.}(hjhjq hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hKphjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j"fw_cdev_event_response2 (C struct)c.fw_cdev_event_response2hNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_event_response2h]j)}(hstruct fw_cdev_event_response2h](j)}(hjh]hstruct}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhK}ubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hK}ubj)}(hfw_cdev_event_response2h]j)}(hj h]hfw_cdev_event_response2}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj hhhj hK}ubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj hhhj hK}ubah}(h]j ah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKvhj hhubj)}(hhh]h)}(h(Sent when a response packet was receivedh]h(Sent when a response packet was received}(hj& hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhK|hj! hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hK}ubeh}(h]h ](jstructeh"]h$]h&]jjjj< jj< juh1jhhhjWhjhNubj)}(hX**Definition**:: struct fw_cdev_event_response2 { __u64 closure; __u32 type; __u32 rcode; __u32 length; __u32 request_tstamp; __u32 response_tstamp; __u32 padding; __u32 data[]; }; **Members** ``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_SEND_REQUEST`` or ``FW_CDEV_IOC_SEND_BROADCAST_REQUEST`` or ``FW_CDEV_IOC_SEND_STREAM_PACKET`` ioctl ``type`` See :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_RESPONSE`` ``rcode`` Response code returned by the remote node ``length`` Data length, i.e. the response's payload size in bytes ``request_tstamp`` The time stamp of isochronous cycle at which the request was sent. ``response_tstamp`` The time stamp of isochronous cycle at which the response was sent. ``padding`` Padding to keep the size of structure as multiples of 8 in various architectures since 4 byte alignment is used for 8 byte of object type in System V ABI for i386 architecture. ``data`` Payload data, if anyh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjH hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjD ubh:}(hj7hjD hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj@ ubji)}(hstruct fw_cdev_event_response2 { __u64 closure; __u32 type; __u32 rcode; __u32 length; __u32 request_tstamp; __u32 response_tstamp; __u32 padding; __u32 data[]; };h]hstruct fw_cdev_event_response2 { __u64 closure; __u32 type; __u32 rcode; __u32 length; __u32 request_tstamp; __u32 response_tstamp; __u32 padding; __u32 data[]; };}(hhhja ubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj@ ubh)}(h **Members**h]j$)}(hjr h]hMembers}(hhhjt hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjp ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj@ ubh)}(hhh](h)}(h``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_SEND_REQUEST`` or ``FW_CDEV_IOC_SEND_BROADCAST_REQUEST`` or ``FW_CDEV_IOC_SEND_STREAM_PACKET`` ioctl h](h)}(h ``closure``h]jr)}(hj h]hclosure}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj ubh)}(hhh]h)}(hSee :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_SEND_REQUEST`` or ``FW_CDEV_IOC_SEND_BROADCAST_REQUEST`` or ``FW_CDEV_IOC_SEND_STREAM_PACKET`` ioctlh](hSee }(hSee hj hhhNhNubh)}(h:c:type:`fw_cdev_event_common`h]jr)}(hj h]hfw_cdev_event_common}(hhhj hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_commonuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhK~hj ubh ; set by }(h ; set by hj hhhNhNubjr)}(h``FW_CDEV_IOC_SEND_REQUEST``h]hFW_CDEV_IOC_SEND_REQUEST}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj ubh or }(h or hj hhhNhNubjr)}(h&``FW_CDEV_IOC_SEND_BROADCAST_REQUEST``h]h"FW_CDEV_IOC_SEND_BROADCAST_REQUEST}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj ubh or }(hj hj ubjr)}(h"``FW_CDEV_IOC_SEND_STREAM_PACKET``h]hFW_CDEV_IOC_SEND_STREAM_PACKET}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj ubh ioctl}(h ioctlhj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hK~hj ubah}(h]h ]h"]h$]h&]uh1hhj ubeh}(h]h ]h"]h$]h&]uh1hhj hKhj ubh)}(hO``type`` See :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_RESPONSE`` h](h)}(h``type``h]jr)}(hj( h]htype}(hhhj* hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj& ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj" ubh)}(hhh]h)}(hESee :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_RESPONSE``h](hSee }(hSee hjA hhhNhNubh)}(h:c:type:`fw_cdev_event_common`h]jr)}(hjL h]hfw_cdev_event_common}(hhhjN hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjJ ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_commonuh1hhj= hKhjA ubh ; always }(h ; always hjA hhhNhNubjr)}(h``FW_CDEV_EVENT_RESPONSE``h]hFW_CDEV_EVENT_RESPONSE}(hhhjn hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjA ubeh}(h]h ]h"]h$]h&]uh1hhj= hKhj> ubah}(h]h ]h"]h$]h&]uh1hhj" ubeh}(h]h ]h"]h$]h&]uh1hhj= hKhj ubh)}(h4``rcode`` Response code returned by the remote node h](h)}(h ``rcode``h]jr)}(hj h]hrcode}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj ubh)}(hhh]h)}(h)Response code returned by the remote nodeh]h)Response code returned by the remote node}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1hhj ubeh}(h]h ]h"]h$]h&]uh1hhj hKhj ubh)}(hB``length`` Data length, i.e. the response's payload size in bytes h](h)}(h ``length``h]jr)}(hj h]hlength}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj ubh)}(hhh]h)}(h6Data length, i.e. the response's payload size in bytesh]h8Data length, i.e. the response’s payload size in bytes}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1hhj ubeh}(h]h ]h"]h$]h&]uh1hhj hKhj ubh)}(hV``request_tstamp`` The time stamp of isochronous cycle at which the request was sent. h](h)}(h``request_tstamp``h]jr)}(hj h]hrequest_tstamp}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj ubh)}(hhh]h)}(hBThe time stamp of isochronous cycle at which the request was sent.h]hBThe time stamp of isochronous cycle at which the request was sent.}(hj! hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1hhj ubeh}(h]h ]h"]h$]h&]uh1hhj hKhj ubh)}(hX``response_tstamp`` The time stamp of isochronous cycle at which the response was sent. h](h)}(h``response_tstamp``h]jr)}(hj? h]hresponse_tstamp}(hhhjA hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj= ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj9 ubh)}(hhh]h)}(hCThe time stamp of isochronous cycle at which the response was sent.h]hCThe time stamp of isochronous cycle at which the response was sent.}(hjZ hjX hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjT hKhjU ubah}(h]h ]h"]h$]h&]uh1hhj9 ubeh}(h]h ]h"]h$]h&]uh1hhjT hKhj ubh)}(h``padding`` Padding to keep the size of structure as multiples of 8 in various architectures since 4 byte alignment is used for 8 byte of object type in System V ABI for i386 architecture. h](h)}(h ``padding``h]jr)}(hjx h]hpadding}(hhhjz hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjv ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjr ubh)}(hhh]h)}(hPadding to keep the size of structure as multiples of 8 in various architectures since 4 byte alignment is used for 8 byte of object type in System V ABI for i386 architecture.h]hPadding to keep the size of structure as multiples of 8 in various architectures since 4 byte alignment is used for 8 byte of object type in System V ABI for i386 architecture.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj ubah}(h]h ]h"]h$]h&]uh1hhjr ubeh}(h]h ]h"]h$]h&]uh1hhj hKhj ubh)}(h``data`` Payload data, if anyh](h)}(h``data``h]jr)}(hj h]hdata}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj ubh)}(hhh]h)}(hPayload data, if anyh]hPayload data, if any}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj ubah}(h]h ]h"]h$]h&]uh1hhj ubeh}(h]h ]h"]h$]h&]uh1hhj hKhj ubeh}(h]h ]h"]h$]h&]uh1hhj@ ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hj h]h Description}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjWhhubh)}(hXThis event is sent when the stack receives a response to an outgoing request sent by ``FW_CDEV_IOC_SEND_REQUEST`` ioctl. The payload data for responses carrying data (read and lock responses) follows immediately and can be accessed through the **data** field.h](hUThis event is sent when the stack receives a response to an outgoing request sent by }(hUThis event is sent when the stack receives a response to an outgoing request sent by hj hhhNhNubjr)}(h``FW_CDEV_IOC_SEND_REQUEST``h]hFW_CDEV_IOC_SEND_REQUEST}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj ubh ioctl. The payload data for responses carrying data (read and lock responses) follows immediately and can be accessed through the }(h ioctl. The payload data for responses carrying data (read and lock responses) follows immediately and can be accessed through the hj hhhNhNubj$)}(h**data**h]hdata}(hhhj' hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj ubh field.}(h field.hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjWhhubh)}(hXThe event is also generated after conclusions of transactions that do not involve response packets. This includes unified write transactions, broadcast write transactions, and transmission of asynchronous stream packets. **rcode** indicates success or failure of such transmissions.h](hThe event is also generated after conclusions of transactions that do not involve response packets. This includes unified write transactions, broadcast write transactions, and transmission of asynchronous stream packets. }(hThe event is also generated after conclusions of transactions that do not involve response packets. This includes unified write transactions, broadcast write transactions, and transmission of asynchronous stream packets. hjA hhhNhNubj$)}(h **rcode**h]hrcode}(hhhjJ hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjA ubh4 indicates success or failure of such transmissions.}(h4 indicates success or failure of such transmissions.hjA hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjWhhubh)}(hXThe value of **request_tstamp** expresses the isochronous cycle at which the request was sent to initiate the transaction. The value of **response_tstamp** expresses the isochronous cycle at which the response arrived to complete the transaction. Each value is unsigned 16 bit integer containing three low order bits of second field and all 13 bits of cycle field in format of CYCLE_TIMER register.h](h The value of }(h The value of hjd hhhNhNubj$)}(h**request_tstamp**h]hrequest_tstamp}(hhhjm hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjd ubhi expresses the isochronous cycle at which the request was sent to initiate the transaction. The value of }(hi expresses the isochronous cycle at which the request was sent to initiate the transaction. The value of hjd hhhNhNubj$)}(h**response_tstamp**h]hresponse_tstamp}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjd ubh expresses the isochronous cycle at which the response arrived to complete the transaction. Each value is unsigned 16 bit integer containing three low order bits of second field and all 13 bits of cycle field in format of CYCLE_TIMER register.}(h expresses the isochronous cycle at which the response arrived to complete the transaction. Each value is unsigned 16 bit integer containing three low order bits of second field and all 13 bits of cycle field in format of CYCLE_TIMER register.hjd hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j fw_cdev_event_request (C struct)c.fw_cdev_event_requesthNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_event_requesth]j)}(hstruct fw_cdev_event_requesth](j)}(hjh]hstruct}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hKubj)}(hfw_cdev_event_requesth]j)}(hj h]hfw_cdev_event_request}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj hhhj hKubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj hhhj hKubah}(h]j ah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj hhubj)}(hhh]h)}(h/Old version of :c:type:`fw_cdev_event_request2`h](hOld version of }(hOld version of hj hhhNhNubh)}(h :c:type:`fw_cdev_event_request2`h]jr)}(hjh]hfw_cdev_event_request2}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfji)}jl]jg ASTIdentifier)} identifierj sbc.fw_cdev_event_requestasbjnfw_cdev_event_request2uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj ubeh}(h]h ]h"]h$]h&]uh1hhj(hKhj hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hKubeh}(h]h ](jstructeh"]h$]h&]jjjj8jj8juh1jhhhjWhjhNubj)}(hX**Definition**:: struct fw_cdev_event_request { __u64 closure; __u32 type; __u32 tcode; __u64 offset; __u32 handle; __u32 length; __u32 data[]; }; **Members** ``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_ALLOCATE`` ioctl ``type`` See :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_REQUEST`` ``tcode`` Transaction code of the incoming request ``offset`` The offset into the 48-bit per-node address space ``handle`` Reference to the kernel-side pending request ``length`` Data length, i.e. the request's payload size in bytes ``data`` Incoming data, if anyh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj@ubh:}(hj7hj@hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj<ubji)}(hstruct fw_cdev_event_request { __u64 closure; __u32 type; __u32 tcode; __u64 offset; __u32 handle; __u32 length; __u32 data[]; };h]hstruct fw_cdev_event_request { __u64 closure; __u32 type; __u32 tcode; __u64 offset; __u32 handle; __u32 length; __u32 data[]; };}(hhhj]ubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj<ubh)}(h **Members**h]j$)}(hjnh]hMembers}(hhhjphhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjlubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj<ubh)}(hhh](h)}(hV``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_ALLOCATE`` ioctl h](h)}(h ``closure``h]jr)}(hjh]hclosure}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(hISee :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_ALLOCATE`` ioctlh](hSee }(hSee hjhhhNhNubh)}(h:c:type:`fw_cdev_event_common`h]jr)}(hjh]hfw_cdev_event_common}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_commonuh1hhjhKhjubh ; set by }(h ; set by hjhhhNhNubjr)}(h``FW_CDEV_IOC_ALLOCATE``h]hFW_CDEV_IOC_ALLOCATE}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubh ioctl}(h ioctlhjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(hN``type`` See :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_REQUEST`` h](h)}(h``type``h]jr)}(hjh]htype}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(hDSee :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_REQUEST``h](hSee }(hSee hjhhhNhNubh)}(h:c:type:`fw_cdev_event_common`h]jr)}(hj"h]hfw_cdev_event_common}(hhhj$hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_commonuh1hhjhKhjubh ; always }(h ; always hjhhhNhNubjr)}(h``FW_CDEV_EVENT_REQUEST``h]hFW_CDEV_EVENT_REQUEST}(hhhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(h3``tcode`` Transaction code of the incoming request h](h)}(h ``tcode``h]jr)}(hjjh]htcode}(hhhjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjhubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjdubh)}(hhh]h)}(h(Transaction code of the incoming requesth]h(Transaction code of the incoming request}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjdubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(h=``offset`` The offset into the 48-bit per-node address space h](h)}(h ``offset``h]jr)}(hjh]hoffset}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(h1The offset into the 48-bit per-node address spaceh]h1The offset into the 48-bit per-node address space}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(h8``handle`` Reference to the kernel-side pending request h](h)}(h ``handle``h]jr)}(hjh]hhandle}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(h,Reference to the kernel-side pending requesth]h,Reference to the kernel-side pending request}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(hA``length`` Data length, i.e. the request's payload size in bytes h](h)}(h ``length``h]jr)}(hjh]hlength}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(h5Data length, i.e. the request's payload size in bytesh]h7Data length, i.e. the request’s payload size in bytes}(hj0hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hKhj+ubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhj*hKhjubh)}(h``data`` Incoming data, if anyh](h)}(h``data``h]jr)}(hjNh]hdata}(hhhjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjLubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjHubh)}(hhh]h)}(hIncoming data, if anyh]hIncoming data, if any}(hjihjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjdubah}(h]h ]h"]h$]h&]uh1hhjHubeh}(h]h ]h"]h$]h&]uh1hhjchKhjubeh}(h]h ]h"]h$]h&]uh1hhj<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hjh]h Description}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjWhhubh)}(hThis event is sent instead of :c:type:`fw_cdev_event_request2` if the kernel or the client implements ABI version <= 3. :c:type:`fw_cdev_event_request` lacks essential information; use :c:type:`fw_cdev_event_request2` instead.h](hThis event is sent instead of }(hThis event is sent instead of hjhhhNhNubh)}(h :c:type:`fw_cdev_event_request2`h]jr)}(hjh]hfw_cdev_event_request2}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_request2uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh; if the kernel or the client implements ABI version <= 3. }(h; if the kernel or the client implements ABI version <= 3. hjhhhNhNubh)}(h:c:type:`fw_cdev_event_request`h]jr)}(hjh]hfw_cdev_event_request}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_requestuh1hhjhKhjubh" lacks essential information; use }(h" lacks essential information; use hjhhhNhNubh)}(h :c:type:`fw_cdev_event_request2`h]jr)}(hjh]hfw_cdev_event_request2}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_request2uh1hhjhKhjubh instead.}(h instead.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j!fw_cdev_event_request2 (C struct)c.fw_cdev_event_request2hNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_event_request2h]j)}(hstruct fw_cdev_event_request2h](j)}(hjh]hstruct}(hhhj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKubj)}(h h]h }(hhhjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8hhhjIhKubj)}(hfw_cdev_event_request2h]j)}(hj6h]hfw_cdev_event_request2}(hhhj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj8hhhjIhKubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj4hhhjIhKubah}(h]j/ah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj1hhubj)}(hhh]h)}(h-Sent on incoming request to an address regionh]h-Sent on incoming request to an address region}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj|hhubah}(h]h ]h"]h$]h&]uh1jhj1hhhjIhKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjuh1jhhhjWhjhNubj)}(hX**Definition**:: struct fw_cdev_event_request2 { __u64 closure; __u32 type; __u32 tcode; __u64 offset; __u32 source_node_id; __u32 destination_node_id; __u32 card; __u32 generation; __u32 handle; __u32 length; __u32 data[]; }; **Members** ``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_ALLOCATE`` ioctl ``type`` See :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_REQUEST2`` ``tcode`` Transaction code of the incoming request ``offset`` The offset into the 48-bit per-node address space ``source_node_id`` Sender node ID ``destination_node_id`` Destination node ID ``card`` The index of the card from which the request came ``generation`` Bus generation in which the request is valid ``handle`` Reference to the kernel-side pending request ``length`` Data length, i.e. the request's payload size in bytes ``data`` Incoming data, if anyh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubh:}(hj7hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubji)}(hstruct fw_cdev_event_request2 { __u64 closure; __u32 type; __u32 tcode; __u64 offset; __u32 source_node_id; __u32 destination_node_id; __u32 card; __u32 generation; __u32 handle; __u32 length; __u32 data[]; };h]hstruct fw_cdev_event_request2 { __u64 closure; __u32 type; __u32 tcode; __u64 offset; __u32 source_node_id; __u32 destination_node_id; __u32 card; __u32 generation; __u32 handle; __u32 length; __u32 data[]; };}(hhhjubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(h **Members**h]j$)}(hjh]hMembers}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh](h)}(hV``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_ALLOCATE`` ioctl h](h)}(h ``closure``h]jr)}(hjh]hclosure}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(hISee :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_ALLOCATE`` ioctlh](hSee }(hSee hjhhhNhNubh)}(h:c:type:`fw_cdev_event_common`h]jr)}(hjh]hfw_cdev_event_common}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_commonuh1hhjhKhjubh ; set by }(h ; set by hjhhhNhNubjr)}(h``FW_CDEV_IOC_ALLOCATE``h]hFW_CDEV_IOC_ALLOCATE}(hhhj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubh ioctl}(h ioctlhjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(hO``type`` See :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_REQUEST2`` h](h)}(h``type``h]jr)}(hj]h]htype}(hhhj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj[ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjWubh)}(hhh]h)}(hESee :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_REQUEST2``h](hSee }(hSee hjvhhhNhNubh)}(h:c:type:`fw_cdev_event_common`h]jr)}(hjh]hfw_cdev_event_common}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_commonuh1hhjrhKhjvubh ; always }(h ; always hjvhhhNhNubjr)}(h``FW_CDEV_EVENT_REQUEST2``h]hFW_CDEV_EVENT_REQUEST2}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjvubeh}(h]h ]h"]h$]h&]uh1hhjrhKhjsubah}(h]h ]h"]h$]h&]uh1hhjWubeh}(h]h ]h"]h$]h&]uh1hhjrhKhjubh)}(h3``tcode`` Transaction code of the incoming request h](h)}(h ``tcode``h]jr)}(hjh]htcode}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(h(Transaction code of the incoming requesth]h(Transaction code of the incoming request}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(h=``offset`` The offset into the 48-bit per-node address space h](h)}(h ``offset``h]jr)}(hjh]hoffset}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(h1The offset into the 48-bit per-node address spaceh]h1The offset into the 48-bit per-node address space}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(h"``source_node_id`` Sender node ID h](h)}(h``source_node_id``h]jr)}(hj;h]hsource_node_id}(hhhj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj9ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj5ubh)}(hhh]h)}(hSender node IDh]hSender node ID}(hjVhjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhKhjQubah}(h]h ]h"]h$]h&]uh1hhj5ubeh}(h]h ]h"]h$]h&]uh1hhjPhKhjubh)}(h,``destination_node_id`` Destination node ID h](h)}(h``destination_node_id``h]jr)}(hjth]hdestination_node_id}(hhhjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjrubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjnubh)}(hhh]h)}(hDestination node IDh]hDestination node ID}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjnubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(h;``card`` The index of the card from which the request came h](h)}(h``card``h]jr)}(hjh]hcard}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(h1The index of the card from which the request cameh]h1The index of the card from which the request came}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(h<``generation`` Bus generation in which the request is valid h](h)}(h``generation``h]jr)}(hjh]h generation}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(h,Bus generation in which the request is validh]h,Bus generation in which the request is valid}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(h8``handle`` Reference to the kernel-side pending request h](h)}(h ``handle``h]jr)}(hjh]hhandle}(hhhj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(h,Reference to the kernel-side pending requesth]h,Reference to the kernel-side pending request}(hj:hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hKhj5ubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhj4hKhjubh)}(hA``length`` Data length, i.e. the request's payload size in bytes h](h)}(h ``length``h]jr)}(hjXh]hlength}(hhhjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjVubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjRubh)}(hhh]h)}(h5Data length, i.e. the request's payload size in bytesh]h7Data length, i.e. the request’s payload size in bytes}(hjshjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmhKhjnubah}(h]h ]h"]h$]h&]uh1hhjRubeh}(h]h ]h"]h$]h&]uh1hhjmhKhjubh)}(h``data`` Incoming data, if anyh](h)}(h``data``h]jr)}(hjh]hdata}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(hIncoming data, if anyh]hIncoming data, if any}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubeh}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hjh]h Description}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjWhhubh)}(hThis event is sent instead of :c:type:`fw_cdev_event_request3` if the kernel or the client implements ABI version <= 5. It has the lack of time stamp field comparing to :c:type:`fw_cdev_event_request3`.h](hThis event is sent instead of }(hThis event is sent instead of hjhhhNhNubh)}(h :c:type:`fw_cdev_event_request3`h]jr)}(hjh]hfw_cdev_event_request3}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_request3uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubhk if the kernel or the client implements ABI version <= 5. It has the lack of time stamp field comparing to }(hk if the kernel or the client implements ABI version <= 5. It has the lack of time stamp field comparing to hjhhhNhNubh)}(h :c:type:`fw_cdev_event_request3`h]jr)}(hjh]hfw_cdev_event_request3}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_request3uh1hhjhKhjubh.}(hjhjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j!fw_cdev_event_request3 (C struct)c.fw_cdev_event_request3hNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_event_request3h]j)}(hstruct fw_cdev_event_request3h](j)}(hjh]hstruct}(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKubj)}(h h]h }(hhhjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhjghKubj)}(hfw_cdev_event_request3h]j)}(hjTh]hfw_cdev_event_request3}(hhhjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhjVhhhjghKubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhjRhhhjghKubah}(h]jMah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjOhhubj)}(hhh]h)}(h-Sent on incoming request to an address regionh]h-Sent on incoming request to an address region}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjOhhhjghKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjuh1jhhhjWhjhNubj)}(hX**Definition**:: struct fw_cdev_event_request3 { __u64 closure; __u32 type; __u32 tcode; __u64 offset; __u32 source_node_id; __u32 destination_node_id; __u32 card; __u32 generation; __u32 handle; __u32 length; __u32 tstamp; __u32 padding; __u32 data[]; }; **Members** ``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_ALLOCATE`` ioctl ``type`` See :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_REQUEST2`` ``tcode`` Transaction code of the incoming request ``offset`` The offset into the 48-bit per-node address space ``source_node_id`` Sender node ID ``destination_node_id`` Destination node ID ``card`` The index of the card from which the request came ``generation`` Bus generation in which the request is valid ``handle`` Reference to the kernel-side pending request ``length`` Data length, i.e. the request's payload size in bytes ``tstamp`` The time stamp of isochronous cycle at which the request arrived. ``padding`` Padding to keep the size of structure as multiples of 8 in various architectures since 4 byte alignment is used for 8 byte of object type in System V ABI for i386 architecture. ``data`` Incoming data, if anyh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubh:}(hj7hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubji)}(hX"struct fw_cdev_event_request3 { __u64 closure; __u32 type; __u32 tcode; __u64 offset; __u32 source_node_id; __u32 destination_node_id; __u32 card; __u32 generation; __u32 handle; __u32 length; __u32 tstamp; __u32 padding; __u32 data[]; };h]hX"struct fw_cdev_event_request3 { __u64 closure; __u32 type; __u32 tcode; __u64 offset; __u32 source_node_id; __u32 destination_node_id; __u32 card; __u32 generation; __u32 handle; __u32 length; __u32 tstamp; __u32 padding; __u32 data[]; };}(hhhjubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(h **Members**h]j$)}(hjh]hMembers}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh](h)}(hV``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_ALLOCATE`` ioctl h](h)}(h ``closure``h]jr)}(hj h]hclosure}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(hISee :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_ALLOCATE`` ioctlh](hSee }(hSee hj#hhhNhNubh)}(h:c:type:`fw_cdev_event_common`h]jr)}(hj.h]hfw_cdev_event_common}(hhhj0hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj,ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_commonuh1hhjhKhj#ubh ; set by }(h ; set by hj#hhhNhNubjr)}(h``FW_CDEV_IOC_ALLOCATE``h]hFW_CDEV_IOC_ALLOCATE}(hhhjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj#ubh ioctl}(h ioctlhj#hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(hO``type`` See :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_REQUEST2`` h](h)}(h``type``h]jr)}(hj{h]htype}(hhhj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjyubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjuubh)}(hhh]h)}(hESee :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_REQUEST2``h](hSee }(hSee hjhhhNhNubh)}(h:c:type:`fw_cdev_event_common`h]jr)}(hjh]hfw_cdev_event_common}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_commonuh1hhjhKhjubh ; always }(h ; always hjhhhNhNubjr)}(h``FW_CDEV_EVENT_REQUEST2``h]hFW_CDEV_EVENT_REQUEST2}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjuubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(h3``tcode`` Transaction code of the incoming request h](h)}(h ``tcode``h]jr)}(hjh]htcode}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(h(Transaction code of the incoming requesth]h(Transaction code of the incoming request}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(h=``offset`` The offset into the 48-bit per-node address space h](h)}(h ``offset``h]jr)}(hj h]hoffset}(hhhj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(h1The offset into the 48-bit per-node address spaceh]h1The offset into the 48-bit per-node address space}(hj;hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hKhj6ubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhj5hKhjubh)}(h"``source_node_id`` Sender node ID h](h)}(h``source_node_id``h]jr)}(hjYh]hsource_node_id}(hhhj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjWubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjSubh)}(hhh]h)}(hSender node IDh]hSender node ID}(hjthjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhKhjoubah}(h]h ]h"]h$]h&]uh1hhjSubeh}(h]h ]h"]h$]h&]uh1hhjnhKhjubh)}(h,``destination_node_id`` Destination node ID h](h)}(h``destination_node_id``h]jr)}(hjh]hdestination_node_id}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(hDestination node IDh]hDestination node ID}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(h;``card`` The index of the card from which the request came h](h)}(h``card``h]jr)}(hjh]hcard}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(h1The index of the card from which the request cameh]h1The index of the card from which the request came}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(h<``generation`` Bus generation in which the request is valid h](h)}(h``generation``h]jr)}(hjh]h generation}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(h,Bus generation in which the request is validh]h,Bus generation in which the request is valid}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(h8``handle`` Reference to the kernel-side pending request h](h)}(h ``handle``h]jr)}(hj=h]hhandle}(hhhj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj;ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj7ubh)}(hhh]h)}(h,Reference to the kernel-side pending requesth]h,Reference to the kernel-side pending request}(hjXhjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhKhjSubah}(h]h ]h"]h$]h&]uh1hhj7ubeh}(h]h ]h"]h$]h&]uh1hhjRhKhjubh)}(hA``length`` Data length, i.e. the request's payload size in bytes h](h)}(h ``length``h]jr)}(hjvh]hlength}(hhhjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjtubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjpubh)}(hhh]h)}(h5Data length, i.e. the request's payload size in bytesh]h7Data length, i.e. the request’s payload size in bytes}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjpubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(hM``tstamp`` The time stamp of isochronous cycle at which the request arrived. h](h)}(h ``tstamp``h]jr)}(hjh]htstamp}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(hAThe time stamp of isochronous cycle at which the request arrived.h]hAThe time stamp of isochronous cycle at which the request arrived.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(h``padding`` Padding to keep the size of structure as multiples of 8 in various architectures since 4 byte alignment is used for 8 byte of object type in System V ABI for i386 architecture. h](h)}(h ``padding``h]jr)}(hjh]hpadding}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(hPadding to keep the size of structure as multiples of 8 in various architectures since 4 byte alignment is used for 8 byte of object type in System V ABI for i386 architecture.h]hPadding to keep the size of structure as multiples of 8 in various architectures since 4 byte alignment is used for 8 byte of object type in System V ABI for i386 architecture.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(h``data`` Incoming data, if anyh](h)}(h``data``h]jr)}(hj"h]hdata}(hhhj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh)}(hhh]h)}(hIncoming data, if anyh]hIncoming data, if any}(hj=hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj8ubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhj7hKhjubeh}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hjeh]h Description}(hhhjghhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjcubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjWhhubh)}(hXMThis event is sent when the stack receives an incoming request to an address region registered using the ``FW_CDEV_IOC_ALLOCATE`` ioctl. The request is guaranteed to be completely contained in the specified region. Userspace is responsible for sending the response by ``FW_CDEV_IOC_SEND_RESPONSE`` ioctl, using the same **handle**.h](hiThis event is sent when the stack receives an incoming request to an address region registered using the }(hiThis event is sent when the stack receives an incoming request to an address region registered using the hj{hhhNhNubjr)}(h``FW_CDEV_IOC_ALLOCATE``h]hFW_CDEV_IOC_ALLOCATE}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj{ubh ioctl. The request is guaranteed to be completely contained in the specified region. Userspace is responsible for sending the response by }(h ioctl. The request is guaranteed to be completely contained in the specified region. Userspace is responsible for sending the response by hj{hhhNhNubjr)}(h``FW_CDEV_IOC_SEND_RESPONSE``h]hFW_CDEV_IOC_SEND_RESPONSE}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj{ubh ioctl, using the same }(h ioctl, using the same hj{hhhNhNubj$)}(h **handle**h]hhandle}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj{ubh.}(hjhj{hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjWhhubh)}(hThe payload data for requests carrying data (write and lock requests) follows immediately and can be accessed through the **data** field.h](hzThe payload data for requests carrying data (write and lock requests) follows immediately and can be accessed through the }(hzThe payload data for requests carrying data (write and lock requests) follows immediately and can be accessed through the hjhhhNhNubj$)}(h**data**h]hdata}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubh field.}(h field.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjWhhubh)}(hUnlike :c:type:`fw_cdev_event_request`, **tcode** of lock requests is one of the firewire-core specific ``TCODE_LOCK_MASK_SWAP``...``TCODE_LOCK_VENDOR_DEPENDENT``, i.e. encodes the extended transaction code.h](hUnlike }(hUnlike hjhhhNhNubh)}(h:c:type:`fw_cdev_event_request`h]jr)}(hjh]hfw_cdev_event_request}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_requestuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhjubh, }(h, hjhhhNhNubj$)}(h **tcode**h]htcode}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubh7 of lock requests is one of the firewire-core specific }(h7 of lock requests is one of the firewire-core specific hjhhhNhNubjr)}(h``TCODE_LOCK_MASK_SWAP``h]hTCODE_LOCK_MASK_SWAP}(hhhj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubhO...``TCODE_LOCK_VENDOR_DEPENDENT``, i.e. encodes the extended transaction code.}(hO...``TCODE_LOCK_VENDOR_DEPENDENT``, i.e. encodes the extended transaction code.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjWhhubh)}(hXl**card** may differ from :c:type:`fw_cdev_get_info.card ` because requests are received from all cards of the Linux host. **source_node_id**, **destination_node_id**, and **generation** pertain to that card. Destination node ID and bus generation may therefore differ from the corresponding fields of the last :c:type:`fw_cdev_event_bus_reset`.h](j$)}(h**card**h]hcard}(hhhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj@ubh may differ from }(h may differ from hj@hhhNhNubh)}(h2:c:type:`fw_cdev_get_info.card `h]jr)}(hjYh]hfw_cdev_get_info.card}(hhhj[hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjWubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_get_infouh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhKhj@ubhB because requests are received from all cards of the Linux host. }(hB because requests are received from all cards of the Linux host. hj@hhhNhNubj$)}(h**source_node_id**h]hsource_node_id}(hhhj|hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj@ubh, }(h, hj@hhhNhNubj$)}(h**destination_node_id**h]hdestination_node_id}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj@ubh, and }(h, and hj@hhhNhNubj$)}(h**generation**h]h generation}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj@ubh~ pertain to that card. Destination node ID and bus generation may therefore differ from the corresponding fields of the last }(h~ pertain to that card. Destination node ID and bus generation may therefore differ from the corresponding fields of the last hj@hhhNhNubh)}(h!:c:type:`fw_cdev_event_bus_reset`h]jr)}(hjh]hfw_cdev_event_bus_reset}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_bus_resetuh1hhjvhKhj@ubh.}(hjhj@hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjvhKhjWhhubh)}(hXc**destination_node_id** may also differ from the current node ID because of a non-local bus ID part or in case of a broadcast write request. Note, a client must call an ``FW_CDEV_IOC_SEND_RESPONSE`` ioctl even in case of a broadcast write request; the kernel will then release the kernel-side pending request but will not actually send a response packet.h](j$)}(h**destination_node_id**h]hdestination_node_id}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubh may also differ from the current node ID because of a non-local bus ID part or in case of a broadcast write request. Note, a client must call an }(h may also differ from the current node ID because of a non-local bus ID part or in case of a broadcast write request. Note, a client must call an hjhhhNhNubjr)}(h``FW_CDEV_IOC_SEND_RESPONSE``h]hFW_CDEV_IOC_SEND_RESPONSE}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubh ioctl even in case of a broadcast write request; the kernel will then release the kernel-side pending request but will not actually send a response packet.}(h ioctl even in case of a broadcast write request; the kernel will then release the kernel-side pending request but will not actually send a response packet.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hX1In case of a write request to FCP_REQUEST or FCP_RESPONSE, the kernel already sent a write response immediately after the request was received; in this case the client must still call an ``FW_CDEV_IOC_SEND_RESPONSE`` ioctl to release the kernel-side pending request, though another response won't be sent.h](hIn case of a write request to FCP_REQUEST or FCP_RESPONSE, the kernel already sent a write response immediately after the request was received; in this case the client must still call an }(hIn case of a write request to FCP_REQUEST or FCP_RESPONSE, the kernel already sent a write response immediately after the request was received; in this case the client must still call an hjhhhNhNubjr)}(h``FW_CDEV_IOC_SEND_RESPONSE``h]hFW_CDEV_IOC_SEND_RESPONSE}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubh[ ioctl to release the kernel-side pending request, though another response won’t be sent.}(hY ioctl to release the kernel-side pending request, though another response won't be sent.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hIf the client subsequently needs to initiate requests to the sender node of an :c:type:`fw_cdev_event_request3`, it needs to use a device file with matching card index, node ID, and generation for outbound requests.h](hOIf the client subsequently needs to initiate requests to the sender node of an }(hOIf the client subsequently needs to initiate requests to the sender node of an hj2hhhNhNubh)}(h :c:type:`fw_cdev_event_request3`h]jr)}(hj=h]hfw_cdev_event_request3}(hhhj?hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj;ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_request3uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM hj2ubhh, it needs to use a device file with matching card index, node ID, and generation for outbound requests.}(hh, it needs to use a device file with matching card index, node ID, and generation for outbound requests.hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjZhM hjWhhubh)}(h**tstamp** is isochronous cycle at which the request arrived. It is 16 bit integer value and the higher 3 bits expresses three low order bits of second field in the format of CYCLE_TIME register and the rest 13 bits expresses cycle field.h](j$)}(h **tstamp**h]htstamp}(hhhjjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjfubh is isochronous cycle at which the request arrived. It is 16 bit integer value and the higher 3 bits expresses three low order bits of second field in the format of CYCLE_TIME register and the rest 13 bits expresses cycle field.}(h is isochronous cycle at which the request arrived. It is 16 bit integer value and the higher 3 bits expresses three low order bits of second field in the format of CYCLE_TIME register and the rest 13 bits expresses cycle field.hjfhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j&fw_cdev_event_iso_interrupt (C struct)c.fw_cdev_event_iso_interrupthNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_event_iso_interrupth]j)}(h"struct fw_cdev_event_iso_interrupth](j)}(hjh]hstruct}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM'ubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM'ubj)}(hfw_cdev_event_iso_interrupth]j)}(hjh]hfw_cdev_event_iso_interrupt}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhjhhhjhM'ubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhjhhhjhM'ubah}(h]jah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjhhubj)}(hhh]h)}(h%Sent when an iso packet was completedh]h%Sent when an iso packet was completed}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM&hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM'ubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjuh1jhhhjWhjhNubj)}(hX **Definition**:: struct fw_cdev_event_iso_interrupt { __u64 closure; __u32 type; __u32 cycle; __u32 header_length; __u32 header[]; }; **Members** ``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_CREATE_ISO_CONTEXT`` ioctl ``type`` See :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_ISO_INTERRUPT`` ``cycle`` Cycle counter of the last completed packet ``header_length`` Total length of following headers, in bytes ``header`` Stripped headers, if anyh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubh:}(hj7hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM*hjubji)}(hstruct fw_cdev_event_iso_interrupt { __u64 closure; __u32 type; __u32 cycle; __u32 header_length; __u32 header[]; };h]hstruct fw_cdev_event_iso_interrupt { __u64 closure; __u32 type; __u32 cycle; __u32 header_length; __u32 header[]; };}(hhhjubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM,hjubh)}(h **Members**h]j$)}(hj.h]hMembers}(hhhj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj,ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM4hjubh)}(hhh](h)}(h\``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_CREATE_ISO_CONTEXT`` ioctl h](h)}(h ``closure``h]jr)}(hjMh]hclosure}(hhhjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjKubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM)hjGubh)}(hhh]h)}(hOSee :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_CREATE_ISO_CONTEXT`` ioctlh](hSee }(hSee hjfhhhNhNubh)}(h:c:type:`fw_cdev_event_common`h]jr)}(hjqh]hfw_cdev_event_common}(hhhjshhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjoubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_commonuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM(hjfubh ; set by }(h ; set by hjfhhhNhNubjr)}(h``FW_CDEV_CREATE_ISO_CONTEXT``h]hFW_CDEV_CREATE_ISO_CONTEXT}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjfubh ioctl}(h ioctlhjfhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM(hjcubah}(h]h ]h"]h$]h&]uh1hhjGubeh}(h]h ]h"]h$]h&]uh1hhjbhM)hjDubh)}(hT``type`` See :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_ISO_INTERRUPT`` h](h)}(h``type``h]jr)}(hjh]htype}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM*hjubh)}(hhh]h)}(hJSee :c:type:`fw_cdev_event_common`; always ``FW_CDEV_EVENT_ISO_INTERRUPT``h](hSee }(hSee hjhhhNhNubh)}(h:c:type:`fw_cdev_event_common`h]jr)}(hjh]hfw_cdev_event_common}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_commonuh1hhjhM*hjubh ; always }(h ; always hjhhhNhNubjr)}(h``FW_CDEV_EVENT_ISO_INTERRUPT``h]hFW_CDEV_EVENT_ISO_INTERRUPT}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]uh1hhjhM*hjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhM*hjDubh)}(h5``cycle`` Cycle counter of the last completed packet h](h)}(h ``cycle``h]jr)}(hj+h]hcycle}(hhhj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj)ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM+hj%ubh)}(hhh]h)}(h*Cycle counter of the last completed packeth]h*Cycle counter of the last completed packet}(hjFhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hM+hjAubah}(h]h ]h"]h$]h&]uh1hhj%ubeh}(h]h ]h"]h$]h&]uh1hhj@hM+hjDubh)}(h>``header_length`` Total length of following headers, in bytes h](h)}(h``header_length``h]jr)}(hjdh]h header_length}(hhhjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjbubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM,hj^ubh)}(hhh]h)}(h+Total length of following headers, in bytesh]h+Total length of following headers, in bytes}(hjhj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjyhM,hjzubah}(h]h ]h"]h$]h&]uh1hhj^ubeh}(h]h ]h"]h$]h&]uh1hhjyhM,hjDubh)}(h#``header`` Stripped headers, if anyh](h)}(h ``header``h]jr)}(hjh]hheader}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM,hjubh)}(hhh]h)}(hStripped headers, if anyh]hStripped headers, if any}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM-hjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhM,hjDubeh}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hjh]h Description}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM0hjWhhubh)}(hXThis event is sent when the controller has completed an :c:type:`fw_cdev_iso_packet` with the ``FW_CDEV_ISO_INTERRUPT`` bit set, when explicitly requested with ``FW_CDEV_IOC_FLUSH_ISO``, or when there have been so many completed packets without the interrupt bit set that the kernel's internal buffer for **header** is about to overflow. (In the last case, ABI versions < 5 drop header data up to the next interrupt packet.)h](h8This event is sent when the controller has completed an }(h8This event is sent when the controller has completed an hjhhhNhNubh)}(h:c:type:`fw_cdev_iso_packet`h]jr)}(hjh]hfw_cdev_iso_packet}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_iso_packetuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM.hjubh with the }(h with the hjhhhNhNubjr)}(h``FW_CDEV_ISO_INTERRUPT``h]hFW_CDEV_ISO_INTERRUPT}(hhhj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubh) bit set, when explicitly requested with }(h) bit set, when explicitly requested with hjhhhNhNubjr)}(h``FW_CDEV_IOC_FLUSH_ISO``h]hFW_CDEV_IOC_FLUSH_ISO}(hhhj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubhz, or when there have been so many completed packets without the interrupt bit set that the kernel’s internal buffer for }(hx, or when there have been so many completed packets without the interrupt bit set that the kernel's internal buffer for hjhhhNhNubj$)}(h **header**h]hheader}(hhhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubhn is about to overflow. (In the last case, ABI versions < 5 drop header data up to the next interrupt packet.)}(hn is about to overflow. (In the last case, ABI versions < 5 drop header data up to the next interrupt packet.)hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM.hjWhhubh)}(hLIsochronous transmit events (context type ``FW_CDEV_ISO_CONTEXT_TRANSMIT``):h](h*Isochronous transmit events (context type }(h*Isochronous transmit events (context type hjchhhNhNubjr)}(h ``FW_CDEV_ISO_CONTEXT_TRANSMIT``h]hFW_CDEV_ISO_CONTEXT_TRANSMIT}(hhhjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjcubh):}(h):hjchhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM5hjWhhubh)}(hXHIn version 3 and some implementations of version 2 of the ABI, :c:type:`header_length` is a multiple of 4 and :c:type:`header` contains timestamps of all packets up until the interrupt packet. The format of the timestamps is as described below for isochronous reception. In version 1 of the ABI, :c:type:`header_length` was 0.h](h?In version 3 and some implementations of version 2 of the ABI, }(h?In version 3 and some implementations of version 2 of the ABI, hjhhhNhNubh)}(h:c:type:`header_length`h]jr)}(hjh]h header_length}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjn header_lengthuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM7hjubh is a multiple of 4 and }(h is a multiple of 4 and hjhhhNhNubh)}(h:c:type:`header`h]jr)}(hjh]hheader}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnheaderuh1hhjhM7hjubh contains timestamps of all packets up until the interrupt packet. The format of the timestamps is as described below for isochronous reception. In version 1 of the ABI, }(h contains timestamps of all packets up until the interrupt packet. The format of the timestamps is as described below for isochronous reception. In version 1 of the ABI, hjhhhNhNubh)}(h:c:type:`header_length`h]jr)}(hjh]h header_length}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjn header_lengthuh1hhjhM7hjubh was 0.}(h was 0.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM7hjWhhubh)}(hJIsochronous receive events (context type ``FW_CDEV_ISO_CONTEXT_RECEIVE``):h](h)Isochronous receive events (context type }(h)Isochronous receive events (context type hjhhhNhNubjr)}(h``FW_CDEV_ISO_CONTEXT_RECEIVE``h]hFW_CDEV_ISO_CONTEXT_RECEIVE}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubh):}(h):hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM<hjWhhubh)}(hXThe headers stripped of all packets up until and including the interrupt packet are returned in the **header** field. The amount of header data per packet is as specified at iso context creation by :c:type:`fw_cdev_create_iso_context.header_size `.h](hdThe headers stripped of all packets up until and including the interrupt packet are returned in the }(hdThe headers stripped of all packets up until and including the interrupt packet are returned in the hj%hhhNhNubj$)}(h **header**h]hheader}(hhhj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj%ubhY field. The amount of header data per packet is as specified at iso context creation by }(hY field. The amount of header data per packet is as specified at iso context creation by hj%hhhNhNubh)}(hM:c:type:`fw_cdev_create_iso_context.header_size `h]jr)}(hjCh]h&fw_cdev_create_iso_context.header_size}(hhhjEhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjAubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_create_iso_contextuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM>hj%ubh.}(hjhj%hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj`hM>hjWhhubh)}(hX"Hence, _interrupt.header_length / _context.header_size is the number of packets received in this interrupt event. The client can now iterate through the mmap()'ed DMA buffer according to this number of packets and to the buffer sizes as the client specified in :c:type:`fw_cdev_queue_iso`.h](hXHence, _interrupt.header_length / _context.header_size is the number of packets received in this interrupt event. The client can now iterate through the mmap()’ed DMA buffer according to this number of packets and to the buffer sizes as the client specified in }(hXHence, _interrupt.header_length / _context.header_size is the number of packets received in this interrupt event. The client can now iterate through the mmap()'ed DMA buffer according to this number of packets and to the buffer sizes as the client specified in hjkhhhNhNubh)}(h:c:type:`fw_cdev_queue_iso`h]jr)}(hjvh]hfw_cdev_queue_iso}(hhhjxhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjtubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_queue_isouh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMChjkubh.}(hjhjkhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMChjWhhubh)}(hXvSince version 2 of this ABI, the portion for each packet in _interrupt.header consists of the 1394 isochronous packet header, followed by a timestamp quadlet if :c:type:`fw_cdev_create_iso_context.header_size ` > 4, followed by quadlets from the packet payload if :c:type:`fw_cdev_create_iso_context.header_size ` > 8.h](hSince version 2 of this ABI, the portion for each packet in _interrupt.header consists of the 1394 isochronous packet header, followed by a timestamp quadlet if }(hSince version 2 of this ABI, the portion for each packet in _interrupt.header consists of the 1394 isochronous packet header, followed by a timestamp quadlet if hjhhhNhNubh)}(hM:c:type:`fw_cdev_create_iso_context.header_size `h]jr)}(hjh]h&fw_cdev_create_iso_context.header_size}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_create_iso_contextuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMHhjubh6 > 4, followed by quadlets from the packet payload if }(h6 > 4, followed by quadlets from the packet payload if hjhhhNhNubh)}(hM:c:type:`fw_cdev_create_iso_context.header_size `h]jr)}(hjh]h&fw_cdev_create_iso_context.header_size}(hhhjhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_create_iso_contextuh1hhjhMHhjubh > 8.}(h > 8.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMHhjWhhubh)}(hFormat of 1394 iso packet header: 16 bits data_length, 2 bits tag, 6 bits channel, 4 bits tcode, 4 bits sy, in big endian byte order. data_length is the actual received size of the packet without the four 1394 iso packet header bytes.h]hFormat of 1394 iso packet header: 16 bits data_length, 2 bits tag, 6 bits channel, 4 bits tcode, 4 bits sy, in big endian byte order. data_length is the actual received size of the packet without the four 1394 iso packet header bytes.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMMhjWhhubh)}(hiFormat of timestamp: 16 bits invalid, 3 bits cycleSeconds, 13 bits cycleCount, in big endian byte order.h]hiFormat of timestamp: 16 bits invalid, 3 bits cycleSeconds, 13 bits cycleCount, in big endian byte order.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMRhjWhhubh)}(hIn version 1 of the ABI, no timestamp quadlet was inserted; instead, payload data followed directly after the 1394 is header if header_size > 4. Behaviour of ver. 1 of this ABI is no longer available since ABI ver. 2.h]hIn version 1 of the ABI, no timestamp quadlet was inserted; instead, payload data followed directly after the 1394 is header if header_size > 4. Behaviour of ver. 1 of this ABI is no longer available since ABI ver. 2.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMUhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j)fw_cdev_event_iso_interrupt_mc (C struct) c.fw_cdev_event_iso_interrupt_mchNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_event_iso_interrupt_mch]j)}(h%struct fw_cdev_event_iso_interrupt_mch](j)}(hjh]hstruct}(hhhj< hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8 hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMcubj)}(h h]h }(hhhjJ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8 hhhjI hMcubj)}(hfw_cdev_event_iso_interrupt_mch]j)}(hj6 h]hfw_cdev_event_iso_interrupt_mc}(hhhj\ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjX ubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj8 hhhjI hMcubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj4 hhhjI hMcubah}(h]j/ ah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM\hj1 hhubj)}(hhh]h)}(h!An iso buffer chunk was completedh]h!An iso buffer chunk was completed}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMbhj| hhubah}(h]h ]h"]h$]h&]uh1jhj1 hhhjI hMcubeh}(h]h ](jstructeh"]h$]h&]jjjj jj juh1jhhhjWhjhNubj)}(hXw**Definition**:: struct fw_cdev_event_iso_interrupt_mc { __u64 closure; __u32 type; __u32 completed; }; **Members** ``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_CREATE_ISO_CONTEXT`` ioctl ``type`` ``FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL`` ``completed`` Offset into the receive buffer; data before this offset is validh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj ubh:}(hj7hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMfhj ubji)}(hbstruct fw_cdev_event_iso_interrupt_mc { __u64 closure; __u32 type; __u32 completed; };h]hbstruct fw_cdev_event_iso_interrupt_mc { __u64 closure; __u32 type; __u32 completed; };}(hhhj ubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhhj ubh)}(h **Members**h]j$)}(hj h]hMembers}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMnhj ubh)}(hhh](h)}(h\``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_CREATE_ISO_CONTEXT`` ioctl h](h)}(h ``closure``h]jr)}(hj h]hclosure}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMehj ubh)}(hhh]h)}(hOSee :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_CREATE_ISO_CONTEXT`` ioctlh](hSee }(hSee hj!hhhNhNubh)}(h:c:type:`fw_cdev_event_common`h]jr)}(hj!h]hfw_cdev_event_common}(hhhj!hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj!ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_commonuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMdhj!ubh ; set by }(h ; set by hj!hhhNhNubjr)}(h``FW_CDEV_CREATE_ISO_CONTEXT``h]hFW_CDEV_CREATE_ISO_CONTEXT}(hhhj3!hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj!ubh ioctl}(h ioctlhj!hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj-!hMdhj!ubah}(h]h ]h"]h$]h&]uh1hhj ubeh}(h]h ]h"]h$]h&]uh1hhj!hMehj ubh)}(h6``type`` ``FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL`` h](h)}(h``type``h]jr)}(hj^!h]htype}(hhhj`!hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj\!ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMfhjX!ubh)}(hhh]h)}(h,``FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL``h]jr)}(hjy!h]h(FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL}(hhhj{!hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjw!ubah}(h]h ]h"]h$]h&]uh1hhjs!hMfhjt!ubah}(h]h ]h"]h$]h&]uh1hhjX!ubeh}(h]h ]h"]h$]h&]uh1hhjs!hMfhj ubh)}(hN``completed`` Offset into the receive buffer; data before this offset is validh](h)}(h ``completed``h]jr)}(hj!h]h completed}(hhhj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj!ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMfhj!ubh)}(hhh]h)}(h@Offset into the receive buffer; data before this offset is validh]h@Offset into the receive buffer; data before this offset is valid}(hj!hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMghj!ubah}(h]h ]h"]h$]h&]uh1hhj!ubeh}(h]h ]h"]h$]h&]uh1hhj!hMfhj ubeh}(h]h ]h"]h$]h&]uh1hhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hj!h]h Description}(hhhj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj!ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMjhjWhhubh)}(hX)This event is sent in multichannel contexts (context type ``FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL``) for :c:type:`fw_cdev_iso_packet` buffer chunks that have been completely filled and that have the ``FW_CDEV_ISO_INTERRUPT`` bit set, or when explicitly requested with ``FW_CDEV_IOC_FLUSH_ISO``.h](h:This event is sent in multichannel contexts (context type }(h:This event is sent in multichannel contexts (context type hj!hhhNhNubjr)}(h,``FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL``h]h(FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL}(hhhj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj!ubh) for }(h) for hj!hhhNhNubh)}(h:c:type:`fw_cdev_iso_packet`h]jr)}(hj"h]hfw_cdev_iso_packet}(hhhj"hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj"ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_iso_packetuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhhj!ubhB buffer chunks that have been completely filled and that have the }(hB buffer chunks that have been completely filled and that have the hj!hhhNhNubjr)}(h``FW_CDEV_ISO_INTERRUPT``h]hFW_CDEV_ISO_INTERRUPT}(hhhj:"hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj!ubh, bit set, or when explicitly requested with }(h, bit set, or when explicitly requested with hj!hhhNhNubjr)}(h``FW_CDEV_IOC_FLUSH_ISO``h]hFW_CDEV_IOC_FLUSH_ISO}(hhhjM"hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj!ubh.}(hjhj!hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj4"hMhhjWhhubh)}(hhh]h)}(hXThe buffer is continuously filled with the following data, per packet: - the 1394 iso packet header as described at :c:type:`fw_cdev_event_iso_interrupt`, but in little endian byte order, - packet payload (as many bytes as specified in the data_length field of the 1394 iso packet header) in big endian byte order, - 0...3 padding bytes as needed to align the following trailer quadlet, - trailer quadlet, containing the reception timestamp as described at :c:type:`fw_cdev_event_iso_interrupt`, but in little endian byte order. h](h)}(hFThe buffer is continuously filled with the following data, per packet:h]hFThe buffer is continuously filled with the following data, per packet:}(hjn"hjl"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMuhjh"ubh)}(hhh]h bullet_list)}(hhh](h list_item)}(hrthe 1394 iso packet header as described at :c:type:`fw_cdev_event_iso_interrupt`, but in little endian byte order,h]h)}(hrthe 1394 iso packet header as described at :c:type:`fw_cdev_event_iso_interrupt`, but in little endian byte order,h](h+the 1394 iso packet header as described at }(h+the 1394 iso packet header as described at hj"hhhNhNubh)}(h%:c:type:`fw_cdev_event_iso_interrupt`h]jr)}(hj"h]hfw_cdev_event_iso_interrupt}(hhhj"hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj"ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_iso_interruptuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMohj"ubh", but in little endian byte order,}(h", but in little endian byte order,hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj"hMohj"ubah}(h]h ]h"]h$]h&]uh1j"hj"ubj")}(h|packet payload (as many bytes as specified in the data_length field of the 1394 iso packet header) in big endian byte order,h]h)}(h|packet payload (as many bytes as specified in the data_length field of the 1394 iso packet header) in big endian byte order,h]h|packet payload (as many bytes as specified in the data_length field of the 1394 iso packet header) in big endian byte order,}(hj"hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMqhj"ubah}(h]h ]h"]h$]h&]uh1j"hj"ubj")}(hE0...3 padding bytes as needed to align the following trailer quadlet,h]h)}(hj"h]hE0...3 padding bytes as needed to align the following trailer quadlet,}(hj"hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMshj"ubah}(h]h ]h"]h$]h&]uh1j"hj"ubj")}(htrailer quadlet, containing the reception timestamp as described at :c:type:`fw_cdev_event_iso_interrupt`, but in little endian byte order. h]h)}(htrailer quadlet, containing the reception timestamp as described at :c:type:`fw_cdev_event_iso_interrupt`, but in little endian byte order.h](hDtrailer quadlet, containing the reception timestamp as described at }(hDtrailer quadlet, containing the reception timestamp as described at hj"hhhNhNubh)}(h%:c:type:`fw_cdev_event_iso_interrupt`h]jr)}(hj#h]hfw_cdev_event_iso_interrupt}(hhhj#hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj#ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_iso_interruptuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMthj"ubh", but in little endian byte order.}(h", but in little endian byte order.hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj #hMthj"ubah}(h]h ]h"]h$]h&]uh1j"hj"ubeh}(h]h ]h"]h$]h&]bullet-uh1j~"hj"hMohj{"ubah}(h]h ]h"]h$]h&]uh1hhjh"ubeh}(h]h ]h"]h$]h&]uh1hhjz"hMuhje"ubah}(h]h ]h"]h$]h&]uh1hhjWhhhjhNubh)}(hHence the per-packet size is data_length (rounded up to a multiple of 4) + 8. When processing the data, stop before a packet that would cross the **completed** offset.h](hHence the per-packet size is data_length (rounded up to a multiple of 4) + 8. When processing the data, stop before a packet that would cross the }(hHence the per-packet size is data_length (rounded up to a multiple of 4) + 8. When processing the data, stop before a packet that would cross the hjL#hhhNhNubj$)}(h **completed**h]h completed}(hhhjU#hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjL#ubh offset.}(h offset.hjL#hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMwhjWhhubh)}(hX'A packet near the end of a buffer chunk will typically spill over into the next queued buffer chunk. It is the responsibility of the client to check for this condition, assemble a broken-up packet from its parts, and not to re-queue any buffer chunks in which as yet unread packet parts reside.h]hX'A packet near the end of a buffer chunk will typically spill over into the next queued buffer chunk. It is the responsibility of the client to check for this condition, assemble a broken-up packet from its parts, and not to re-queue any buffer chunks in which as yet unread packet parts reside.}(hjq#hjo#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM{hjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j%fw_cdev_event_iso_resource (C struct)c.fw_cdev_event_iso_resourcehNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_event_iso_resourceh]j)}(h!struct fw_cdev_event_iso_resourceh](j)}(hjh]hstruct}(hhhj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMubj)}(h h]h }(hhhj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#hhhj#hMubj)}(hfw_cdev_event_iso_resourceh]j)}(hj#h]hfw_cdev_event_iso_resource}(hhhj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj#hhhj#hMubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj#hhhj#hMubah}(h]j#ah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj#hhubj)}(hhh]h)}(h%Iso resources were allocated or freedh]h%Iso resources were allocated or freed}(hj#hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj#hhubah}(h]h ]h"]h$]h&]uh1jhj#hhhj#hMubeh}(h]h ](jstructeh"]h$]h&]jjjj#jj#juh1jhhhjWhjhNubj)}(hXa**Definition**:: struct fw_cdev_event_iso_resource { __u64 closure; __u32 type; __u32 handle; __s32 channel; __s32 bandwidth; }; **Members** ``closure`` See :c:type:`fw_cdev_event_common`; set by``FW_CDEV_IOC_(DE)ALLOCATE_ISO_RESOURCE(_ONCE)`` ioctl ``type`` ``FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED`` or ``FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED`` ``handle`` Reference by which an allocated resource can be deallocated ``channel`` Isochronous channel which was (de)allocated, if any ``bandwidth`` Bandwidth allocation units which were (de)allocated, if anyh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj#ubh:}(hj7hj#hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj#ubji)}(hstruct fw_cdev_event_iso_resource { __u64 closure; __u32 type; __u32 handle; __s32 channel; __s32 bandwidth; };h]hstruct fw_cdev_event_iso_resource { __u64 closure; __u32 type; __u32 handle; __s32 channel; __s32 bandwidth; };}(hhhj$ubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj#ubh)}(h **Members**h]j$)}(hj($h]hMembers}(hhhj*$hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj&$ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj#ubh)}(hhh](h)}(hm``closure`` See :c:type:`fw_cdev_event_common`; set by``FW_CDEV_IOC_(DE)ALLOCATE_ISO_RESOURCE(_ONCE)`` ioctl h](h)}(h ``closure``h]jr)}(hjG$h]hclosure}(hhhjI$hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjE$ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjA$ubh)}(hhh]h)}(h`See :c:type:`fw_cdev_event_common`; set by``FW_CDEV_IOC_(DE)ALLOCATE_ISO_RESOURCE(_ONCE)`` ioctlh](hSee }(hSee hj`$hhhNhNubh)}(h:c:type:`fw_cdev_event_common`h]jr)}(hjk$h]hfw_cdev_event_common}(hhhjm$hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhji$ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_commonuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj`$ubh>; set by``FW_CDEV_IOC_(DE)ALLOCATE_ISO_RESOURCE(_ONCE)`` ioctl}(h>; set by``FW_CDEV_IOC_(DE)ALLOCATE_ISO_RESOURCE(_ONCE)`` ioctlhj`$hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj$hMhj]$ubah}(h]h ]h"]h$]h&]uh1hhjA$ubeh}(h]h ]h"]h$]h&]uh1hhj\$hMhj>$ubh)}(h```type`` ``FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED`` or ``FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED`` h](h)}(h``type``h]jr)}(hj$h]htype}(hhhj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj$ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj$ubh)}(hhh]h)}(hV``FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED`` or ``FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED``h](jr)}(h(``FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED``h]h$FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED}(hhhj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj$ubh or }(h or hj$hhhNhNubjr)}(h*``FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED``h]h&FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED}(hhhj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj$ubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj$ubah}(h]h ]h"]h$]h&]uh1hhj$ubeh}(h]h ]h"]h$]h&]uh1hhj$hMhj>$ubh)}(hG``handle`` Reference by which an allocated resource can be deallocated h](h)}(h ``handle``h]jr)}(hj$h]hhandle}(hhhj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj$ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj$ubh)}(hhh]h)}(h;Reference by which an allocated resource can be deallocatedh]h;Reference by which an allocated resource can be deallocated}(hj%hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hMhj%ubah}(h]h ]h"]h$]h&]uh1hhj$ubeh}(h]h ]h"]h$]h&]uh1hhj%hMhj>$ubh)}(h@``channel`` Isochronous channel which was (de)allocated, if any h](h)}(h ``channel``h]jr)}(hj6%h]hchannel}(hhhj8%hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj4%ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj0%ubh)}(hhh]h)}(h3Isochronous channel which was (de)allocated, if anyh]h3Isochronous channel which was (de)allocated, if any}(hjQ%hjO%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjK%hMhjL%ubah}(h]h ]h"]h$]h&]uh1hhj0%ubeh}(h]h ]h"]h$]h&]uh1hhjK%hMhj>$ubh)}(hI``bandwidth`` Bandwidth allocation units which were (de)allocated, if anyh](h)}(h ``bandwidth``h]jr)}(hjo%h]h bandwidth}(hhhjq%hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjm%ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhji%ubh)}(hhh]h)}(h;Bandwidth allocation units which were (de)allocated, if anyh]h;Bandwidth allocation units which were (de)allocated, if any}(hj%hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj%ubah}(h]h ]h"]h$]h&]uh1hhji%ubeh}(h]h ]h"]h$]h&]uh1hhj%hMhj>$ubeh}(h]h ]h"]h$]h&]uh1hhj#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hj%h]h Description}(hhhj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj%ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hAn ``FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED`` event is sent after an isochronous resource was allocated at the IRM. The client has to check **channel** and **bandwidth** for whether the allocation actually succeeded.h](hAn }(hAn hj%hhhNhNubjr)}(h(``FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED``h]h$FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED}(hhhj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj%ubh` event is sent after an isochronous resource was allocated at the IRM. The client has to check }(h` event is sent after an isochronous resource was allocated at the IRM. The client has to check hj%hhhNhNubj$)}(h **channel**h]hchannel}(hhhj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj%ubh and }(h and hj%hhhNhNubj$)}(h **bandwidth**h]h bandwidth}(hhhj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj%ubh/ for whether the allocation actually succeeded.}(h/ for whether the allocation actually succeeded.hj%hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hAn ``FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED`` event is sent after an isochronous resource was deallocated at the IRM. It is also sent when automatic reallocation after a bus reset failed.h](hAn }(hAn hj&hhhNhNubjr)}(h*``FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED``h]h&FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED}(hhhj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj&ubh event is sent after an isochronous resource was deallocated at the IRM. It is also sent when automatic reallocation after a bus reset failed.}(h event is sent after an isochronous resource was deallocated at the IRM. It is also sent when automatic reallocation after a bus reset failed.hj&hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(h**channel** is <0 if no channel was (de)allocated or if reallocation failed. **bandwidth** is 0 if no bandwidth was (de)allocated or if reallocation failed.h](j$)}(h **channel**h]hchannel}(hhhj8&hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj4&ubhB is <0 if no channel was (de)allocated or if reallocation failed. }(hB is <0 if no channel was (de)allocated or if reallocation failed. hj4&hhhNhNubj$)}(h **bandwidth**h]h bandwidth}(hhhjK&hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj4&ubhB is 0 if no bandwidth was (de)allocated or if reallocation failed.}(hB is 0 if no bandwidth was (de)allocated or if reallocation failed.hj4&hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j#fw_cdev_event_phy_packet (C struct)c.fw_cdev_event_phy_packethNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_event_phy_packeth]j)}(hstruct fw_cdev_event_phy_packeth](j)}(hjh]hstruct}(hhhj~&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjz&hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMubj)}(h h]h }(hhhj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjz&hhhj&hMubj)}(hfw_cdev_event_phy_packeth]j)}(hjx&h]hfw_cdev_event_phy_packet}(hhhj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhjz&hhhj&hMubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhjv&hhhj&hMubah}(h]jq&ah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjs&hhubj)}(hhh]h)}(h(A PHY packet was transmitted or receivedh]h(A PHY packet was transmitted or received}(hj&hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj&hhubah}(h]h ]h"]h$]h&]uh1jhjs&hhhj&hMubeh}(h]h ](jstructeh"]h$]h&]jjjj&jj&juh1jhhhjWhjhNubj)}(hX**Definition**:: struct fw_cdev_event_phy_packet { __u64 closure; __u32 type; __u32 rcode; __u32 length; __u32 data[]; }; **Members** ``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_SEND_PHY_PACKET`` or ``FW_CDEV_IOC_RECEIVE_PHY_PACKETS`` ioctl ``type`` ``FW_CDEV_EVENT_PHY_PACKET_SENT`` or %..._RECEIVED ``rcode`` ``RCODE_``..., indicates success or failure of transmission ``length`` Data length in bytes ``data`` Incoming data for ``FW_CDEV_IOC_RECEIVE_PHY_PACKETS``. For ``FW_CDEV_IOC_SEND_PHY_PACKET`` the field has the same data in the request, thus the length of 8 bytes.h](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj&ubh:}(hj7hj&hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj&ubji)}(h|struct fw_cdev_event_phy_packet { __u64 closure; __u32 type; __u32 rcode; __u32 length; __u32 data[]; };h]h|struct fw_cdev_event_phy_packet { __u64 closure; __u32 type; __u32 rcode; __u32 length; __u32 data[]; };}(hhhj&ubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj&ubh)}(h **Members**h]j$)}(hj'h]hMembers}(hhhj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj 'ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj&ubh)}(hhh](h)}(h``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_SEND_PHY_PACKET`` or ``FW_CDEV_IOC_RECEIVE_PHY_PACKETS`` ioctl h](h)}(h ``closure``h]jr)}(hj.'h]hclosure}(hhhj0'hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj,'ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj('ubh)}(hhh]h)}(hwSee :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_SEND_PHY_PACKET`` or ``FW_CDEV_IOC_RECEIVE_PHY_PACKETS`` ioctlh](hSee }(hSee hjG'hhhNhNubh)}(h:c:type:`fw_cdev_event_common`h]jr)}(hjR'h]hfw_cdev_event_common}(hhhjT'hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjP'ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_commonuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjG'ubh ; set by }(h ; set by hjG'hhhNhNubjr)}(h``FW_CDEV_IOC_SEND_PHY_PACKET``h]hFW_CDEV_IOC_SEND_PHY_PACKET}(hhhju'hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjG'ubh or }(h or hjG'hhhNhNubjr)}(h#``FW_CDEV_IOC_RECEIVE_PHY_PACKETS``h]hFW_CDEV_IOC_RECEIVE_PHY_PACKETS}(hhhj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjG'ubh ioctl}(h ioctlhjG'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjo'hMhjD'ubah}(h]h ]h"]h$]h&]uh1hhj('ubeh}(h]h ]h"]h$]h&]uh1hhjC'hMhj%'ubh)}(h<``type`` ``FW_CDEV_EVENT_PHY_PACKET_SENT`` or %..._RECEIVED h](h)}(h``type``h]jr)}(hj'h]htype}(hhhj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj'ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj'ubh)}(hhh]h)}(h2``FW_CDEV_EVENT_PHY_PACKET_SENT`` or %..._RECEIVEDh](jr)}(h!``FW_CDEV_EVENT_PHY_PACKET_SENT``h]hFW_CDEV_EVENT_PHY_PACKET_SENT}(hhhj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj'ubh or %..._RECEIVED}(h or %..._RECEIVEDhj'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj'hMhj'ubah}(h]h ]h"]h$]h&]uh1hhj'ubeh}(h]h ]h"]h$]h&]uh1hhj'hMhj%'ubh)}(hF``rcode`` ``RCODE_``..., indicates success or failure of transmission h](h)}(h ``rcode``h]jr)}(hj'h]hrcode}(hhhj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj'ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj'ubh)}(hhh]h)}(h;``RCODE_``..., indicates success or failure of transmissionh](jr)}(h ``RCODE_``h]hRCODE_}(hhhj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj(ubh1..., indicates success or failure of transmission}(h1..., indicates success or failure of transmissionhj(hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj(hMhj(ubah}(h]h ]h"]h$]h&]uh1hhj'ubeh}(h]h ]h"]h$]h&]uh1hhj(hMhj%'ubh)}(h ``length`` Data length in bytes h](h)}(h ``length``h]jr)}(hjC(h]hlength}(hhhjE(hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjA(ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj=(ubh)}(hhh]h)}(hData length in bytesh]hData length in bytes}(hj^(hj\(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjX(hMhjY(ubah}(h]h ]h"]h$]h&]uh1hhj=(ubeh}(h]h ]h"]h$]h&]uh1hhjX(hMhj%'ubh)}(h``data`` Incoming data for ``FW_CDEV_IOC_RECEIVE_PHY_PACKETS``. For ``FW_CDEV_IOC_SEND_PHY_PACKET`` the field has the same data in the request, thus the length of 8 bytes.h](h)}(h``data``h]jr)}(hj|(h]hdata}(hhhj~(hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjz(ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjv(ubh)}(hhh]h)}(hIncoming data for ``FW_CDEV_IOC_RECEIVE_PHY_PACKETS``. For ``FW_CDEV_IOC_SEND_PHY_PACKET`` the field has the same data in the request, thus the length of 8 bytes.h](hIncoming data for }(hIncoming data for hj(hhhNhNubjr)}(h#``FW_CDEV_IOC_RECEIVE_PHY_PACKETS``h]hFW_CDEV_IOC_RECEIVE_PHY_PACKETS}(hhhj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj(ubh. For }(h. For hj(hhhNhNubjr)}(h``FW_CDEV_IOC_SEND_PHY_PACKET``h]hFW_CDEV_IOC_SEND_PHY_PACKET}(hhhj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj(ubhH the field has the same data in the request, thus the length of 8 bytes.}(hH the field has the same data in the request, thus the length of 8 bytes.hj(hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj(hMhj(ubah}(h]h ]h"]h$]h&]uh1hhjv(ubeh}(h]h ]h"]h$]h&]uh1hhj(hMhj%'ubeh}(h]h ]h"]h$]h&]uh1hhj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hj(h]h Description}(hhhj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj(ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hThis event is sent instead of :c:type:`fw_cdev_event_phy_packet2` if the kernel or the client implements ABI version <= 5. It has the lack of time stamp field comparing to :c:type:`fw_cdev_event_phy_packet2`.h](hThis event is sent instead of }(hThis event is sent instead of hj(hhhNhNubh)}(h#:c:type:`fw_cdev_event_phy_packet2`h]jr)}(hj)h]hfw_cdev_event_phy_packet2}(hhhj)hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj)ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_phy_packet2uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj(ubhk if the kernel or the client implements ABI version <= 5. It has the lack of time stamp field comparing to }(hk if the kernel or the client implements ABI version <= 5. It has the lack of time stamp field comparing to hj(hhhNhNubh)}(h#:c:type:`fw_cdev_event_phy_packet2`h]jr)}(hj+)h]hfw_cdev_event_phy_packet2}(hhhj-)hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj))ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_phy_packet2uh1hhj#)hMhj(ubh.}(hjhj(hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj#)hMhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j$fw_cdev_event_phy_packet2 (C struct)c.fw_cdev_event_phy_packet2hNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_event_phy_packet2h]j)}(h struct fw_cdev_event_phy_packet2h](j)}(hjh]hstruct}(hhhjk)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg)hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMubj)}(h h]h }(hhhjy)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg)hhhjx)hMubj)}(hfw_cdev_event_phy_packet2h]j)}(hje)h]hfw_cdev_event_phy_packet2}(hhhj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhjg)hhhjx)hMubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhjc)hhhjx)hMubah}(h]j^)ah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj`)hhubj)}(hhh]h)}(h9A PHY packet was transmitted or received with time stamp.h]h9A PHY packet was transmitted or received with time stamp.}(hj)hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj)hhubah}(h]h ]h"]h$]h&]uh1jhj`)hhhjx)hMubeh}(h]h ](jstructeh"]h$]h&]jjjj)jj)juh1jhhhjWhjhNubj)}(hX5**Definition**:: struct fw_cdev_event_phy_packet2 { __u64 closure; __u32 type; __u32 rcode; __u32 length; __u32 tstamp; __u32 data[]; }; **Members** ``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_SEND_PHY_PACKET`` or ``FW_CDEV_IOC_RECEIVE_PHY_PACKETS`` ioctl ``type`` ``FW_CDEV_EVENT_PHY_PACKET_SENT2`` or ``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2`` ``rcode`` ``RCODE_``..., indicates success or failure of transmission ``length`` Data length in bytes ``tstamp`` For ``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``, the time stamp of isochronous cycle at which the packet arrived. For ``FW_CDEV_EVENT_PHY_PACKET_SENT2`` and non-ping packet, the time stamp of isochronous cycle at which the packet was sent. For ping packet, the tick count for round-trip time measured by 1394 OHCI controller. The time stamp of isochronous cycle at which either the response was sent for ``FW_CDEV_EVENT_PHY_PACKET_SENT2`` or the request arrived for ``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``. ``data`` Incoming datah](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj)ubh:}(hj7hj)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj)ubji)}(hstruct fw_cdev_event_phy_packet2 { __u64 closure; __u32 type; __u32 rcode; __u32 length; __u32 tstamp; __u32 data[]; };h]hstruct fw_cdev_event_phy_packet2 { __u64 closure; __u32 type; __u32 rcode; __u32 length; __u32 tstamp; __u32 data[]; };}(hhhj)ubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj)ubh)}(h **Members**h]j$)}(hj)h]hMembers}(hhhj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj)ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj)ubh)}(hhh](h)}(h``closure`` See :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_SEND_PHY_PACKET`` or ``FW_CDEV_IOC_RECEIVE_PHY_PACKETS`` ioctl h](h)}(h ``closure``h]jr)}(hj*h]hclosure}(hhhj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj*ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj*ubh)}(hhh]h)}(hwSee :c:type:`fw_cdev_event_common`; set by ``FW_CDEV_IOC_SEND_PHY_PACKET`` or ``FW_CDEV_IOC_RECEIVE_PHY_PACKETS`` ioctlh](hSee }(hSee hj4*hhhNhNubh)}(h:c:type:`fw_cdev_event_common`h]jr)}(hj?*h]hfw_cdev_event_common}(hhhjA*hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj=*ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_commonuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj4*ubh ; set by }(h ; set by hj4*hhhNhNubjr)}(h``FW_CDEV_IOC_SEND_PHY_PACKET``h]hFW_CDEV_IOC_SEND_PHY_PACKET}(hhhjb*hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj4*ubh or }(h or hj4*hhhNhNubjr)}(h#``FW_CDEV_IOC_RECEIVE_PHY_PACKETS``h]hFW_CDEV_IOC_RECEIVE_PHY_PACKETS}(hhhju*hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj4*ubh ioctl}(h ioctlhj4*hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj\*hMhj1*ubah}(h]h ]h"]h$]h&]uh1hhj*ubeh}(h]h ]h"]h$]h&]uh1hhj0*hMhj*ubh)}(hV``type`` ``FW_CDEV_EVENT_PHY_PACKET_SENT2`` or ``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2`` h](h)}(h``type``h]jr)}(hj*h]htype}(hhhj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj*ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj*ubh)}(hhh]h)}(hL``FW_CDEV_EVENT_PHY_PACKET_SENT2`` or ``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``h](jr)}(h"``FW_CDEV_EVENT_PHY_PACKET_SENT2``h]hFW_CDEV_EVENT_PHY_PACKET_SENT2}(hhhj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj*ubh or }(h or hj*hhhNhNubjr)}(h&``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``h]h"FW_CDEV_EVENT_PHY_PACKET_RECEIVED2}(hhhj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj*ubeh}(h]h ]h"]h$]h&]uh1hhj*hMhj*ubah}(h]h ]h"]h$]h&]uh1hhj*ubeh}(h]h ]h"]h$]h&]uh1hhj*hMhj*ubh)}(hF``rcode`` ``RCODE_``..., indicates success or failure of transmission h](h)}(h ``rcode``h]jr)}(hj*h]hrcode}(hhhj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj*ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj*ubh)}(hhh]h)}(h;``RCODE_``..., indicates success or failure of transmissionh](jr)}(h ``RCODE_``h]hRCODE_}(hhhj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj+ubh1..., indicates success or failure of transmission}(h1..., indicates success or failure of transmissionhj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj +hMhj +ubah}(h]h ]h"]h$]h&]uh1hhj*ubeh}(h]h ]h"]h$]h&]uh1hhj +hMhj*ubh)}(h ``length`` Data length in bytes h](h)}(h ``length``h]jr)}(hj>+h]hlength}(hhhj@+hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj<+ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj8+ubh)}(hhh]h)}(hData length in bytesh]hData length in bytes}(hjY+hjW+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjS+hMhjT+ubah}(h]h ]h"]h$]h&]uh1hhj8+ubeh}(h]h ]h"]h$]h&]uh1hhjS+hMhj*ubh)}(hX``tstamp`` For ``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``, the time stamp of isochronous cycle at which the packet arrived. For ``FW_CDEV_EVENT_PHY_PACKET_SENT2`` and non-ping packet, the time stamp of isochronous cycle at which the packet was sent. For ping packet, the tick count for round-trip time measured by 1394 OHCI controller. The time stamp of isochronous cycle at which either the response was sent for ``FW_CDEV_EVENT_PHY_PACKET_SENT2`` or the request arrived for ``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``. h](h)}(h ``tstamp``h]jr)}(hjw+h]htstamp}(hhhjy+hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhju+ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjq+ubh)}(hhh]h)}(hXFor ``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``, the time stamp of isochronous cycle at which the packet arrived. For ``FW_CDEV_EVENT_PHY_PACKET_SENT2`` and non-ping packet, the time stamp of isochronous cycle at which the packet was sent. For ping packet, the tick count for round-trip time measured by 1394 OHCI controller. The time stamp of isochronous cycle at which either the response was sent for ``FW_CDEV_EVENT_PHY_PACKET_SENT2`` or the request arrived for ``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``.h](hFor }(hFor hj+hhhNhNubjr)}(h&``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``h]h"FW_CDEV_EVENT_PHY_PACKET_RECEIVED2}(hhhj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj+ubhG, the time stamp of isochronous cycle at which the packet arrived. For }(hG, the time stamp of isochronous cycle at which the packet arrived. For hj+hhhNhNubjr)}(h"``FW_CDEV_EVENT_PHY_PACKET_SENT2``h]hFW_CDEV_EVENT_PHY_PACKET_SENT2}(hhhj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj+ubh and non-ping packet, the time stamp of isochronous cycle at which the packet was sent. For ping packet, the tick count for round-trip time measured by 1394 OHCI controller. The time stamp of isochronous cycle at which either the response was sent for }(h and non-ping packet, the time stamp of isochronous cycle at which the packet was sent. For ping packet, the tick count for round-trip time measured by 1394 OHCI controller. The time stamp of isochronous cycle at which either the response was sent for hj+hhhNhNubjr)}(h"``FW_CDEV_EVENT_PHY_PACKET_SENT2``h]hFW_CDEV_EVENT_PHY_PACKET_SENT2}(hhhj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj+ubh or the request arrived for }(h or the request arrived for hj+hhhNhNubjr)}(h&``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``h]h"FW_CDEV_EVENT_PHY_PACKET_RECEIVED2}(hhhj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj+ubh.}(hjhj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj+ubah}(h]h ]h"]h$]h&]uh1hhjq+ubeh}(h]h ]h"]h$]h&]uh1hhj+hMhj*ubh)}(h``data`` Incoming datah](h)}(h``data``h]jr)}(hj+h]hdata}(hhhj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj+ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj+ubh)}(hhh]h)}(h Incoming datah]h Incoming data}(hj,hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj,ubah}(h]h ]h"]h$]h&]uh1hhj+ubeh}(h]h ]h"]h$]h&]uh1hhj,hMhj*ubeh}(h]h ]h"]h$]h&]uh1hhj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hj@,h]h Description}(hhhjB,hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj>,ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hIf **type** is ``FW_CDEV_EVENT_PHY_PACKET_SENT2``, **length** is 8 and **data** consists of the two PHY packet quadlets to be sent, in host byte order,h](hIf }(hIf hjV,hhhNhNubj$)}(h**type**h]htype}(hhhj_,hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjV,ubh is }(h is hjV,hhhNhNubjr)}(h"``FW_CDEV_EVENT_PHY_PACKET_SENT2``h]hFW_CDEV_EVENT_PHY_PACKET_SENT2}(hhhjr,hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjV,ubh, }(h, hjV,hhhNhNubj$)}(h **length**h]hlength}(hhhj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjV,ubh is 8 and }(h is 8 and hjV,hhhNhNubj$)}(h**data**h]hdata}(hhhj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjV,ubhH consists of the two PHY packet quadlets to be sent, in host byte order,}(hH consists of the two PHY packet quadlets to be sent, in host byte order,hjV,hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hIf **type** is ``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``, **length** is 8 and **data** consists of the two PHY packet quadlets, in host byte order.h](hIf }(hIf hj,hhhNhNubj$)}(h**type**h]htype}(hhhj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj,ubh is }(h is hj,hhhNhNubjr)}(h&``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``h]h"FW_CDEV_EVENT_PHY_PACKET_RECEIVED2}(hhhj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj,ubh, }(h, hj,hhhNhNubj$)}(h **length**h]hlength}(hhhj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj,ubh is 8 and }(h is 8 and hj,hhhNhNubj$)}(h**data**h]hdata}(hhhj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj,ubh= consists of the two PHY packet quadlets, in host byte order.}(h= consists of the two PHY packet quadlets, in host byte order.hj,hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hX!For ``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``, the **tstamp** is the isochronous cycle at which the packet arrived. It is 16 bit integer value and the higher 3 bits expresses three low order bits of second field and the rest 13 bits expresses cycle field in the format of CYCLE_TIME register.h](hFor }(hFor hj-hhhNhNubjr)}(h&``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``h]h"FW_CDEV_EVENT_PHY_PACKET_RECEIVED2}(hhhj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj-ubh, the }(h, the hj-hhhNhNubj$)}(h **tstamp**h]htstamp}(hhhj*-hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj-ubh is the isochronous cycle at which the packet arrived. It is 16 bit integer value and the higher 3 bits expresses three low order bits of second field and the rest 13 bits expresses cycle field in the format of CYCLE_TIME register.}(h is the isochronous cycle at which the packet arrived. It is 16 bit integer value and the higher 3 bits expresses three low order bits of second field and the rest 13 bits expresses cycle field in the format of CYCLE_TIME register.hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hXFor ``FW_CDEV_EVENT_PHY_PACKET_SENT2``, the **tstamp** has different meanings whether to sent the packet for ping or not. If it's not for ping, the **tstamp** is the isochronous cycle at which the packet was sent, and use the same format as the case of ``FW_CDEV_EVENT_PHY_PACKET_SENT2``. If it's for ping, the **tstamp** is for round-trip time measured by 1394 OHCI controller with 42.195 MHz resolution.h](hFor }(hFor hjD-hhhNhNubjr)}(h"``FW_CDEV_EVENT_PHY_PACKET_SENT2``h]hFW_CDEV_EVENT_PHY_PACKET_SENT2}(hhhjM-hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjD-ubh, the }(h, the hjD-hhhNhNubj$)}(h **tstamp**h]htstamp}(hhhj`-hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjD-ubh` has different meanings whether to sent the packet for ping or not. If it’s not for ping, the }(h^ has different meanings whether to sent the packet for ping or not. If it's not for ping, the hjD-hhhNhNubj$)}(h **tstamp**h]htstamp}(hhhjs-hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjD-ubh_ is the isochronous cycle at which the packet was sent, and use the same format as the case of }(h_ is the isochronous cycle at which the packet was sent, and use the same format as the case of hjD-hhhNhNubjr)}(h"``FW_CDEV_EVENT_PHY_PACKET_SENT2``h]hFW_CDEV_EVENT_PHY_PACKET_SENT2}(hhhj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjD-ubh. If it’s for ping, the }(h. If it's for ping, the hjD-hhhNhNubj$)}(h **tstamp**h]htstamp}(hhhj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjD-ubhT is for round-trip time measured by 1394 OHCI controller with 42.195 MHz resolution.}(hT is for round-trip time measured by 1394 OHCI controller with 42.195 MHz resolution.hjD-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](jfw_cdev_event (C union)c.fw_cdev_eventhNtauh1j|hjWhhhjhNubj)}(hhh](j)}(h fw_cdev_eventh]j)}(hunion fw_cdev_eventh](j)}(hunionh]hunion}(hhhj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMubj)}(h h]h }(hhhj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-hhhj-hMubj)}(h fw_cdev_eventh]j)}(hj-h]h fw_cdev_event}(hhhj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj-hhhj-hMubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj-hhhj-hMubah}(h]j-ah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj-hhubj)}(hhh]h)}(h*Convenience union of fw_cdev_event_* typesh]h*Convenience union of fw_cdev_event_* types}(hj.hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj .hhubah}(h]h ]h"]h$]h&]uh1jhj-hhhj-hMubeh}(h]h ](junioneh"]h$]h&]jjjj(.jj(.juh1jhhhjWhjhNubj)}(hX**Definition**:: union fw_cdev_event { struct fw_cdev_event_common common; struct fw_cdev_event_bus_reset bus_reset; struct fw_cdev_event_response response; struct fw_cdev_event_request request; struct fw_cdev_event_request2 request2; struct fw_cdev_event_iso_interrupt iso_interrupt; struct fw_cdev_event_iso_interrupt_mc iso_interrupt_mc; struct fw_cdev_event_iso_resource iso_resource; struct fw_cdev_event_phy_packet phy_packet; struct fw_cdev_event_request3 request3; struct fw_cdev_event_response2 response2; struct fw_cdev_event_phy_packet2 phy_packet2; }; **Members** ``common`` Valid for all types ``bus_reset`` Valid if **common.type** == ``FW_CDEV_EVENT_BUS_RESET`` ``response`` Valid if **common.type** == ``FW_CDEV_EVENT_RESPONSE`` ``request`` Valid if **common.type** == ``FW_CDEV_EVENT_REQUEST`` ``request2`` Valid if **common.type** == ``FW_CDEV_EVENT_REQUEST2`` ``iso_interrupt`` Valid if **common.type** == ``FW_CDEV_EVENT_ISO_INTERRUPT`` ``iso_interrupt_mc`` Valid if **common.type** == ``FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL`` ``iso_resource`` Valid if **common.type** == ``FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED`` or ``FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED`` ``phy_packet`` Valid if **common.type** == ``FW_CDEV_EVENT_PHY_PACKET_SENT`` or ``FW_CDEV_EVENT_PHY_PACKET_RECEIVED`` ``request3`` Valid if **common.type** == ``FW_CDEV_EVENT_REQUEST3`` ``response2`` Valid if **common.type** == ``FW_CDEV_EVENT_RESPONSE2`` ``phy_packet2`` Valid if **common.type** == ``FW_CDEV_EVENT_PHY_PACKET_SENT2`` or ``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``h](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhj4.hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj0.ubh:}(hj7hj0.hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj,.ubji)}(hXunion fw_cdev_event { struct fw_cdev_event_common common; struct fw_cdev_event_bus_reset bus_reset; struct fw_cdev_event_response response; struct fw_cdev_event_request request; struct fw_cdev_event_request2 request2; struct fw_cdev_event_iso_interrupt iso_interrupt; struct fw_cdev_event_iso_interrupt_mc iso_interrupt_mc; struct fw_cdev_event_iso_resource iso_resource; struct fw_cdev_event_phy_packet phy_packet; struct fw_cdev_event_request3 request3; struct fw_cdev_event_response2 response2; struct fw_cdev_event_phy_packet2 phy_packet2; };h]hXunion fw_cdev_event { struct fw_cdev_event_common common; struct fw_cdev_event_bus_reset bus_reset; struct fw_cdev_event_response response; struct fw_cdev_event_request request; struct fw_cdev_event_request2 request2; struct fw_cdev_event_iso_interrupt iso_interrupt; struct fw_cdev_event_iso_interrupt_mc iso_interrupt_mc; struct fw_cdev_event_iso_resource iso_resource; struct fw_cdev_event_phy_packet phy_packet; struct fw_cdev_event_request3 request3; struct fw_cdev_event_response2 response2; struct fw_cdev_event_phy_packet2 phy_packet2; };}(hhhjM.ubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj,.ubh)}(h **Members**h]j$)}(hj^.h]hMembers}(hhhj`.hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj\.ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj,.ubh)}(hhh](h)}(h``common`` Valid for all types h](h)}(h ``common``h]jr)}(hj}.h]hcommon}(hhhj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj{.ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjw.ubh)}(hhh]h)}(hValid for all typesh]hValid for all types}(hj.hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.hMhj.ubah}(h]h ]h"]h$]h&]uh1hhjw.ubeh}(h]h ]h"]h$]h&]uh1hhj.hMhjt.ubh)}(hF``bus_reset`` Valid if **common.type** == ``FW_CDEV_EVENT_BUS_RESET`` h](h)}(h ``bus_reset``h]jr)}(hj.h]h bus_reset}(hhhj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj.ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj.ubh)}(hhh]h)}(h7Valid if **common.type** == ``FW_CDEV_EVENT_BUS_RESET``h](h Valid if }(h Valid if hj.hhhNhNubj$)}(h**common.type**h]h common.type}(hhhj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj.ubh == }(h == hj.hhhNhNubjr)}(h``FW_CDEV_EVENT_BUS_RESET``h]hFW_CDEV_EVENT_BUS_RESET}(hhhj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj.ubeh}(h]h ]h"]h$]h&]uh1hhj.hMhj.ubah}(h]h ]h"]h$]h&]uh1hhj.ubeh}(h]h ]h"]h$]h&]uh1hhj.hMhjt.ubh)}(hD``response`` Valid if **common.type** == ``FW_CDEV_EVENT_RESPONSE`` h](h)}(h ``response``h]jr)}(hj/h]hresponse}(hhhj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj/ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj /ubh)}(hhh]h)}(h6Valid if **common.type** == ``FW_CDEV_EVENT_RESPONSE``h](h Valid if }(h Valid if hj*/hhhNhNubj$)}(h**common.type**h]h common.type}(hhhj3/hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj*/ubh == }(h == hj*/hhhNhNubjr)}(h``FW_CDEV_EVENT_RESPONSE``h]hFW_CDEV_EVENT_RESPONSE}(hhhjF/hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj*/ubeh}(h]h ]h"]h$]h&]uh1hhj&/hMhj'/ubah}(h]h ]h"]h$]h&]uh1hhj /ubeh}(h]h ]h"]h$]h&]uh1hhj&/hMhjt.ubh)}(hB``request`` Valid if **common.type** == ``FW_CDEV_EVENT_REQUEST`` h](h)}(h ``request``h]jr)}(hjl/h]hrequest}(hhhjn/hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjj/ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjf/ubh)}(hhh]h)}(h5Valid if **common.type** == ``FW_CDEV_EVENT_REQUEST``h](h Valid if }(h Valid if hj/hhhNhNubj$)}(h**common.type**h]h common.type}(hhhj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj/ubh == }(h == hj/hhhNhNubjr)}(h``FW_CDEV_EVENT_REQUEST``h]hFW_CDEV_EVENT_REQUEST}(hhhj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj/ubeh}(h]h ]h"]h$]h&]uh1hhj/hMhj/ubah}(h]h ]h"]h$]h&]uh1hhjf/ubeh}(h]h ]h"]h$]h&]uh1hhj/hMhjt.ubh)}(hD``request2`` Valid if **common.type** == ``FW_CDEV_EVENT_REQUEST2`` h](h)}(h ``request2``h]jr)}(hj/h]hrequest2}(hhhj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj/ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj/ubh)}(hhh]h)}(h6Valid if **common.type** == ``FW_CDEV_EVENT_REQUEST2``h](h Valid if }(h Valid if hj/hhhNhNubj$)}(h**common.type**h]h common.type}(hhhj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj/ubh == }(h == hj/hhhNhNubjr)}(h``FW_CDEV_EVENT_REQUEST2``h]hFW_CDEV_EVENT_REQUEST2}(hhhj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj/ubeh}(h]h ]h"]h$]h&]uh1hhj/hMhj/ubah}(h]h ]h"]h$]h&]uh1hhj/ubeh}(h]h ]h"]h$]h&]uh1hhj/hMhjt.ubh)}(hN``iso_interrupt`` Valid if **common.type** == ``FW_CDEV_EVENT_ISO_INTERRUPT`` h](h)}(h``iso_interrupt``h]jr)}(hj"0h]h iso_interrupt}(hhhj$0hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj 0ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj0ubh)}(hhh]h)}(h;Valid if **common.type** == ``FW_CDEV_EVENT_ISO_INTERRUPT``h](h Valid if }(h Valid if hj;0hhhNhNubj$)}(h**common.type**h]h common.type}(hhhjD0hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj;0ubh == }(h == hj;0hhhNhNubjr)}(h``FW_CDEV_EVENT_ISO_INTERRUPT``h]hFW_CDEV_EVENT_ISO_INTERRUPT}(hhhjW0hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj;0ubeh}(h]h ]h"]h$]h&]uh1hhj70hMhj80ubah}(h]h ]h"]h$]h&]uh1hhj0ubeh}(h]h ]h"]h$]h&]uh1hhj70hMhjt.ubh)}(h^``iso_interrupt_mc`` Valid if **common.type** == ``FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL`` h](h)}(h``iso_interrupt_mc``h]jr)}(hj}0h]hiso_interrupt_mc}(hhhj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj{0ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjw0ubh)}(hhh]h)}(hHValid if **common.type** == ``FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL``h](h Valid if }(h Valid if hj0hhhNhNubj$)}(h**common.type**h]h common.type}(hhhj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj0ubh == }(h == hj0hhhNhNubjr)}(h,``FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL``h]h(FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL}(hhhj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj0ubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj0ubah}(h]h ]h"]h$]h&]uh1hhjw0ubeh}(h]h ]h"]h$]h&]uh1hhj0hMhjt.ubh)}(h``iso_resource`` Valid if **common.type** == ``FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED`` or ``FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED`` h](h)}(h``iso_resource``h]jr)}(hj0h]h iso_resource}(hhhj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj0ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj0ubh)}(hhh]h)}(hrValid if **common.type** == ``FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED`` or ``FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED``h](h Valid if }(h Valid if hj0hhhNhNubj$)}(h**common.type**h]h common.type}(hhhj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj0ubh == }(h == hj0hhhNhNubjr)}(h(``FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED``h]h$FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED}(hhhj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj0ubh or }(h or hj0hhhNhNubjr)}(h*``FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED``h]h&FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED}(hhhj!1hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj0ubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj0ubah}(h]h ]h"]h$]h&]uh1hhj0ubeh}(h]h ]h"]h$]h&]uh1hhj0hMhjt.ubh)}(hv``phy_packet`` Valid if **common.type** == ``FW_CDEV_EVENT_PHY_PACKET_SENT`` or ``FW_CDEV_EVENT_PHY_PACKET_RECEIVED`` h](h)}(h``phy_packet``h]jr)}(hjH1h]h phy_packet}(hhhjJ1hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjF1ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjB1ubh)}(hhh]h)}(hfValid if **common.type** == ``FW_CDEV_EVENT_PHY_PACKET_SENT`` or ``FW_CDEV_EVENT_PHY_PACKET_RECEIVED``h](h Valid if }(h Valid if hja1hhhNhNubj$)}(h**common.type**h]h common.type}(hhhjj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hja1ubh == }(h == hja1hhhNhNubjr)}(h!``FW_CDEV_EVENT_PHY_PACKET_SENT``h]hFW_CDEV_EVENT_PHY_PACKET_SENT}(hhhj}1hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhja1ubh or }(h or hja1hhhNhNubjr)}(h%``FW_CDEV_EVENT_PHY_PACKET_RECEIVED``h]h!FW_CDEV_EVENT_PHY_PACKET_RECEIVED}(hhhj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhja1ubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj^1ubah}(h]h ]h"]h$]h&]uh1hhjB1ubeh}(h]h ]h"]h$]h&]uh1hhj]1hMhjt.ubh)}(hD``request3`` Valid if **common.type** == ``FW_CDEV_EVENT_REQUEST3`` h](h)}(h ``request3``h]jr)}(hj1h]hrequest3}(hhhj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj1ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj1ubh)}(hhh]h)}(h6Valid if **common.type** == ``FW_CDEV_EVENT_REQUEST3``h](h Valid if }(h Valid if hj1hhhNhNubj$)}(h**common.type**h]h common.type}(hhhj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj1ubh == }(h == hj1hhhNhNubjr)}(h``FW_CDEV_EVENT_REQUEST3``h]hFW_CDEV_EVENT_REQUEST3}(hhhj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj1ubeh}(h]h ]h"]h$]h&]uh1hhj1hMhj1ubah}(h]h ]h"]h$]h&]uh1hhj1ubeh}(h]h ]h"]h$]h&]uh1hhj1hMhjt.ubh)}(hF``response2`` Valid if **common.type** == ``FW_CDEV_EVENT_RESPONSE2`` h](h)}(h ``response2``h]jr)}(hj2h]h response2}(hhhj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj2ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj 2ubh)}(hhh]h)}(h7Valid if **common.type** == ``FW_CDEV_EVENT_RESPONSE2``h](h Valid if }(h Valid if hj+2hhhNhNubj$)}(h**common.type**h]h common.type}(hhhj42hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj+2ubh == }(h == hj+2hhhNhNubjr)}(h``FW_CDEV_EVENT_RESPONSE2``h]hFW_CDEV_EVENT_RESPONSE2}(hhhjG2hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj+2ubeh}(h]h ]h"]h$]h&]uh1hhj'2hMhj(2ubah}(h]h ]h"]h$]h&]uh1hhj 2ubeh}(h]h ]h"]h$]h&]uh1hhj'2hMhjt.ubh)}(hx``phy_packet2`` Valid if **common.type** == ``FW_CDEV_EVENT_PHY_PACKET_SENT2`` or ``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``h](h)}(h``phy_packet2``h]jr)}(hjm2h]h phy_packet2}(hhhjo2hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjk2ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjg2ubh)}(hhh]h)}(hhValid if **common.type** == ``FW_CDEV_EVENT_PHY_PACKET_SENT2`` or ``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``h](h Valid if }(h Valid if hj2hhhNhNubj$)}(h**common.type**h]h common.type}(hhhj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj2ubh == }(h == hj2hhhNhNubjr)}(h"``FW_CDEV_EVENT_PHY_PACKET_SENT2``h]hFW_CDEV_EVENT_PHY_PACKET_SENT2}(hhhj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj2ubh or }(h or hj2hhhNhNubjr)}(h&``FW_CDEV_EVENT_PHY_PACKET_RECEIVED2``h]h"FW_CDEV_EVENT_PHY_PACKET_RECEIVED2}(hhhj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj2ubeh}(h]h ]h"]h$]h&]uh1hhj2hMhj2ubah}(h]h ]h"]h$]h&]uh1hhjg2ubeh}(h]h ]h"]h$]h&]uh1hhj2hMhjt.ubeh}(h]h ]h"]h$]h&]uh1hhj,.ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hj2h]h Description}(hhhj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj2ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hXConvenience union for userspace use. Events could be read(2) into an appropriately aligned char buffer and then cast to this union for further processing. Note that for a request, response or iso_interrupt event, the data[] or header[] may make the size of the full event larger than sizeof(union fw_cdev_event). Also note that if you attempt to read(2) an event into a buffer that is not large enough for it, the data that does not fit will be discarded so that the next read(2) will return a new event.h]hXConvenience union for userspace use. Events could be read(2) into an appropriately aligned char buffer and then cast to this union for further processing. Note that for a request, response or iso_interrupt event, the data[] or header[] may make the size of the full event larger than sizeof(union fw_cdev_event). Also note that if you attempt to read(2) an event into a buffer that is not large enough for it, the data that does not fit will be discarded so that the next read(2) will return a new event.}(hj2hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](jfw_cdev_get_info (C struct)c.fw_cdev_get_infohNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_get_infoh]j)}(hstruct fw_cdev_get_infoh](j)}(hjh]hstruct}(hhhj"3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMVubj)}(h h]h }(hhhj03hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3hhhj/3hMVubj)}(hfw_cdev_get_infoh]j)}(hj3h]hfw_cdev_get_info}(hhhjB3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>3ubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj3hhhj/3hMVubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj3hhhj/3hMVubah}(h]j3ah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj3hhubj)}(hhh]h)}(h!General purpose information ioctlh]h!General purpose information ioctl}(hjg3hje3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMUhjb3hhubah}(h]h ]h"]h$]h&]uh1jhj3hhhj/3hMVubeh}(h]h ](jstructeh"]h$]h&]jjjj}3jj}3juh1jhhhjWhjhNubj)}(hX**Definition**:: struct fw_cdev_get_info { __u32 version; __u32 rom_length; __u64 rom; __u64 bus_reset; __u64 bus_reset_closure; __u32 card; }; **Members** ``version`` The version field is just a running serial number. Both an input parameter (ABI version implemented by the client) and output parameter (ABI version implemented by the kernel). A client shall fill in the ABI **version** for which the client was implemented. This is necessary for forward compatibility. ``rom_length`` If **rom** is non-zero, up to **rom_length** bytes of Configuration ROM will be copied into that user space address. In either case, **rom_length** is updated with the actual length of the Configuration ROM. ``rom`` If non-zero, address of a buffer to be filled by a copy of the device's Configuration ROM ``bus_reset`` If non-zero, address of a buffer to be filled by a :c:type:`struct fw_cdev_event_bus_reset ` with the current state of the bus. This does not cause a bus reset to happen. ``bus_reset_closure`` Value of :c:type:`closure` in this and subsequent bus reset events ``card`` The index of the card this device belongs toh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj3ubh:}(hj7hj3hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMYhj3ubji)}(hstruct fw_cdev_get_info { __u32 version; __u32 rom_length; __u64 rom; __u64 bus_reset; __u64 bus_reset_closure; __u32 card; };h]hstruct fw_cdev_get_info { __u32 version; __u32 rom_length; __u64 rom; __u64 bus_reset; __u64 bus_reset_closure; __u32 card; };}(hhhj3ubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM[hj3ubh)}(h **Members**h]j$)}(hj3h]hMembers}(hhhj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj3ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMdhj3ubh)}(hhh](h)}(hX=``version`` The version field is just a running serial number. Both an input parameter (ABI version implemented by the client) and output parameter (ABI version implemented by the kernel). A client shall fill in the ABI **version** for which the client was implemented. This is necessary for forward compatibility. h](h)}(h ``version``h]jr)}(hj3h]hversion}(hhhj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj3ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM[hj3ubh)}(hhh]h)}(hX0The version field is just a running serial number. Both an input parameter (ABI version implemented by the client) and output parameter (ABI version implemented by the kernel). A client shall fill in the ABI **version** for which the client was implemented. This is necessary for forward compatibility.h](hThe version field is just a running serial number. Both an input parameter (ABI version implemented by the client) and output parameter (ABI version implemented by the kernel). A client shall fill in the ABI }(hThe version field is just a running serial number. Both an input parameter (ABI version implemented by the client) and output parameter (ABI version implemented by the kernel). A client shall fill in the ABI hj3hhhNhNubj$)}(h **version**h]hversion}(hhhj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj3ubhT for which the client was implemented. This is necessary for forward compatibility.}(hT for which the client was implemented. This is necessary for forward compatibility.hj3hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMWhj3ubah}(h]h ]h"]h$]h&]uh1hhj3ubeh}(h]h ]h"]h$]h&]uh1hhj3hM[hj3ubh)}(h``rom_length`` If **rom** is non-zero, up to **rom_length** bytes of Configuration ROM will be copied into that user space address. In either case, **rom_length** is updated with the actual length of the Configuration ROM. h](h)}(h``rom_length``h]jr)}(hj 4h]h rom_length}(hhhj"4hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj4ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM_hj4ubh)}(hhh]h)}(hIf **rom** is non-zero, up to **rom_length** bytes of Configuration ROM will be copied into that user space address. In either case, **rom_length** is updated with the actual length of the Configuration ROM.h](hIf }(hIf hj94hhhNhNubj$)}(h**rom**h]hrom}(hhhjB4hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj94ubh is non-zero, up to }(h is non-zero, up to hj94hhhNhNubj$)}(h**rom_length**h]h rom_length}(hhhjU4hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj94ubhZ bytes of Configuration ROM will be copied into that user space address. In either case, }(hZ bytes of Configuration ROM will be copied into that user space address. In either case, hj94hhhNhNubj$)}(h**rom_length**h]h rom_length}(hhhjh4hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj94ubh< is updated with the actual length of the Configuration ROM.}(h< is updated with the actual length of the Configuration ROM.hj94hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM\hj64ubah}(h]h ]h"]h$]h&]uh1hhj4ubeh}(h]h ]h"]h$]h&]uh1hhj54hM_hj3ubh)}(hb``rom`` If non-zero, address of a buffer to be filled by a copy of the device's Configuration ROM h](h)}(h``rom``h]jr)}(hj4h]hrom}(hhhj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj4ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMahj4ubh)}(hhh]h)}(hYIf non-zero, address of a buffer to be filled by a copy of the device's Configuration ROMh]h[If non-zero, address of a buffer to be filled by a copy of the device’s Configuration ROM}(hj4hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM`hj4ubah}(h]h ]h"]h$]h&]uh1hhj4ubeh}(h]h ]h"]h$]h&]uh1hhj4hMahj3ubh)}(h``bus_reset`` If non-zero, address of a buffer to be filled by a :c:type:`struct fw_cdev_event_bus_reset ` with the current state of the bus. This does not cause a bus reset to happen. h](h)}(h ``bus_reset``h]jr)}(hj4h]h bus_reset}(hhhj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj4ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMdhj4ubh)}(hhh]h)}(hIf non-zero, address of a buffer to be filled by a :c:type:`struct fw_cdev_event_bus_reset ` with the current state of the bus. This does not cause a bus reset to happen.h](h3If non-zero, address of a buffer to be filled by a }(h3If non-zero, address of a buffer to be filled by a hj4hhhNhNubh)}(hB:c:type:`struct fw_cdev_event_bus_reset `h]jr)}(hj4h]hstruct fw_cdev_event_bus_reset}(hhhj4hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj4ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_bus_resetuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMbhj4ubhO with the current state of the bus. This does not cause a bus reset to happen.}(hO with the current state of the bus. This does not cause a bus reset to happen.hj4hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj5hMbhj4ubah}(h]h ]h"]h$]h&]uh1hhj4ubeh}(h]h ]h"]h$]h&]uh1hhj4hMdhj3ubh)}(hY``bus_reset_closure`` Value of :c:type:`closure` in this and subsequent bus reset events h](h)}(h``bus_reset_closure``h]jr)}(hj-5h]hbus_reset_closure}(hhhj/5hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj+5ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMehj'5ubh)}(hhh]h)}(hBValue of :c:type:`closure` in this and subsequent bus reset eventsh](h Value of }(h Value of hjF5hhhNhNubh)}(h:c:type:`closure`h]jr)}(hjQ5h]hclosure}(hhhjS5hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjO5ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnclosureuh1hhjB5hMehjF5ubh( in this and subsequent bus reset events}(h( in this and subsequent bus reset eventshjF5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjB5hMehjC5ubah}(h]h ]h"]h$]h&]uh1hhj'5ubeh}(h]h ]h"]h$]h&]uh1hhjB5hMehj3ubh)}(h5``card`` The index of the card this device belongs toh](h)}(h``card``h]jr)}(hj5h]hcard}(hhhj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj5ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMehj5ubh)}(hhh]h)}(h,The index of the card this device belongs toh]h,The index of the card this device belongs to}(hj5hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMfhj5ubah}(h]h ]h"]h$]h&]uh1hhj5ubeh}(h]h ]h"]h$]h&]uh1hhj5hMehj3ubeh}(h]h ]h"]h$]h&]uh1hhj3ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hj5h]h Description}(hhhj5hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj5ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMihjWhhubh)}(hThe ``FW_CDEV_IOC_GET_INFO`` ioctl is usually the very first one which a client performs right after it opened a /dev/fw* file.h](hThe }(hThe hj5hhhNhNubjr)}(h``FW_CDEV_IOC_GET_INFO``h]hFW_CDEV_IOC_GET_INFO}(hhhj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj5ubhc ioctl is usually the very first one which a client performs right after it opened a /dev/fw* file.}(hc ioctl is usually the very first one which a client performs right after it opened a /dev/fw* file.hj5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMghjWhhubh)}(hiAs a side effect, reception of ``FW_CDEV_EVENT_BUS_RESET`` events to be read(2) is started by this ioctl.h](hAs a side effect, reception of }(hAs a side effect, reception of hj6hhhNhNubjr)}(h``FW_CDEV_EVENT_BUS_RESET``h]hFW_CDEV_EVENT_BUS_RESET}(hhhj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj6ubh/ events to be read(2) is started by this ioctl.}(h/ events to be read(2) is started by this ioctl.hj6hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMjhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](jfw_cdev_send_request (C struct)c.fw_cdev_send_requesthNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_send_requesth]j)}(hstruct fw_cdev_send_requesth](j)}(hjh]hstruct}(hhhjC6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?6hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMxubj)}(h h]h }(hhhjQ6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?6hhhjP6hMxubj)}(hfw_cdev_send_requesth]j)}(hj=6h]hfw_cdev_send_request}(hhhjc6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_6ubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj?6hhhjP6hMxubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj;6hhhjP6hMxubah}(h]j66ah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMphj86hhubj)}(hhh]h)}(h#Send an asynchronous request packeth]h#Send an asynchronous request packet}(hj6hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMwhj6hhubah}(h]h ]h"]h$]h&]uh1jhj86hhhjP6hMxubeh}(h]h ](jstructeh"]h$]h&]jjjj6jj6juh1jhhhjWhjhNubj)}(hX**Definition**:: struct fw_cdev_send_request { __u32 tcode; __u32 length; __u64 offset; __u64 closure; __u64 data; __u32 generation; }; **Members** ``tcode`` Transaction code of the request ``length`` Length of outgoing payload, in bytes ``offset`` 48-bit offset at destination node ``closure`` Passed back to userspace in the response event ``data`` Userspace pointer to payload ``generation`` The bus generation where packet is validh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj6ubh:}(hj7hj6hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM{hj6ubji)}(hstruct fw_cdev_send_request { __u32 tcode; __u32 length; __u64 offset; __u64 closure; __u64 data; __u32 generation; };h]hstruct fw_cdev_send_request { __u32 tcode; __u32 length; __u64 offset; __u64 closure; __u64 data; __u32 generation; };}(hhhj6ubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM}hj6ubh)}(h **Members**h]j$)}(hj6h]hMembers}(hhhj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj6ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj6ubh)}(hhh](h)}(h*``tcode`` Transaction code of the request h](h)}(h ``tcode``h]jr)}(hj6h]htcode}(hhhj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj6ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMyhj6ubh)}(hhh]h)}(hTransaction code of the requesth]hTransaction code of the request}(hj7hj 7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hMyhj 7ubah}(h]h ]h"]h$]h&]uh1hhj6ubeh}(h]h ]h"]h$]h&]uh1hhj7hMyhj6ubh)}(h0``length`` Length of outgoing payload, in bytes h](h)}(h ``length``h]jr)}(hj,7h]hlength}(hhhj.7hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj*7ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMzhj&7ubh)}(hhh]h)}(h$Length of outgoing payload, in bytesh]h$Length of outgoing payload, in bytes}(hjG7hjE7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjA7hMzhjB7ubah}(h]h ]h"]h$]h&]uh1hhj&7ubeh}(h]h ]h"]h$]h&]uh1hhjA7hMzhj6ubh)}(h-``offset`` 48-bit offset at destination node h](h)}(h ``offset``h]jr)}(hje7h]hoffset}(hhhjg7hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjc7ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM{hj_7ubh)}(hhh]h)}(h!48-bit offset at destination nodeh]h!48-bit offset at destination node}(hj7hj~7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjz7hM{hj{7ubah}(h]h ]h"]h$]h&]uh1hhj_7ubeh}(h]h ]h"]h$]h&]uh1hhjz7hM{hj6ubh)}(h;``closure`` Passed back to userspace in the response event h](h)}(h ``closure``h]jr)}(hj7h]hclosure}(hhhj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj7ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM|hj7ubh)}(hhh]h)}(h.Passed back to userspace in the response eventh]h.Passed back to userspace in the response event}(hj7hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hM|hj7ubah}(h]h ]h"]h$]h&]uh1hhj7ubeh}(h]h ]h"]h$]h&]uh1hhj7hM|hj6ubh)}(h&``data`` Userspace pointer to payload h](h)}(h``data``h]jr)}(hj7h]hdata}(hhhj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj7ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM}hj7ubh)}(hhh]h)}(hUserspace pointer to payloadh]hUserspace pointer to payload}(hj7hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hM}hj7ubah}(h]h ]h"]h$]h&]uh1hhj7ubeh}(h]h ]h"]h$]h&]uh1hhj7hM}hj6ubh)}(h7``generation`` The bus generation where packet is validh](h)}(h``generation``h]jr)}(hj8h]h generation}(hhhj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj8ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM}hj 8ubh)}(hhh]h)}(h(The bus generation where packet is validh]h(The bus generation where packet is valid}(hj+8hj)8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM~hj&8ubah}(h]h ]h"]h$]h&]uh1hhj 8ubeh}(h]h ]h"]h$]h&]uh1hhj%8hM}hj6ubeh}(h]h ]h"]h$]h&]uh1hhj6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hjS8h]h Description}(hhhjU8hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjQ8ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hXSend a request to the device. This ioctl implements all outgoing requests. Both quadlet and block request specify the payload as a pointer to the data in the **data** field. Once the transaction completes, the kernel writes either :c:type:`fw_cdev_event_response` event or :c:type:`fw_cdev_event_response` event back. The **closure** field is passed back to user space in the response event.h](hSend a request to the device. This ioctl implements all outgoing requests. Both quadlet and block request specify the payload as a pointer to the data in the }(hSend a request to the device. This ioctl implements all outgoing requests. Both quadlet and block request specify the payload as a pointer to the data in the hji8hhhNhNubj$)}(h**data**h]hdata}(hhhjr8hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hji8ubhA field. Once the transaction completes, the kernel writes either }(hA field. Once the transaction completes, the kernel writes either hji8hhhNhNubh)}(h :c:type:`fw_cdev_event_response`h]jr)}(hj8h]hfw_cdev_event_response}(hhhj8hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj8ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_responseuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhji8ubh event or }(h event or hji8hhhNhNubh)}(h :c:type:`fw_cdev_event_response`h]jr)}(hj8h]hfw_cdev_event_response}(hhhj8hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj8ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_responseuh1hhj8hMhji8ubh event back. The }(h event back. The hji8hhhNhNubj$)}(h **closure**h]hclosure}(hhhj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hji8ubh: field is passed back to user space in the response event.}(h: field is passed back to user space in the response event.hji8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj8hMhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j fw_cdev_send_response (C struct)c.fw_cdev_send_responsehNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_send_responseh]j)}(hstruct fw_cdev_send_responseh](j)}(hjh]hstruct}(hhhj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMubj)}(h h]h }(hhhj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8hhhj 9hMubj)}(hfw_cdev_send_responseh]j)}(hj8h]hfw_cdev_send_response}(hhhj 9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj8hhhj 9hMubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj8hhhj 9hMubah}(h]j8ah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj8hhubj)}(hhh]h)}(h$Send an asynchronous response packeth]h$Send an asynchronous response packet}(hjE9hjC9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj@9hhubah}(h]h ]h"]h$]h&]uh1jhj8hhhj 9hMubeh}(h]h ](jstructeh"]h$]h&]jjjj[9jj[9juh1jhhhjWhjhNubj)}(hXq**Definition**:: struct fw_cdev_send_response { __u32 rcode; __u32 length; __u64 data; __u32 handle; }; **Members** ``rcode`` Response code as determined by the userspace handler ``length`` Length of outgoing payload, in bytes ``data`` Userspace pointer to payload ``handle`` The handle from the :c:type:`fw_cdev_event_request`h](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjg9hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjc9ubh:}(hj7hjc9hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj_9ubji)}(hfstruct fw_cdev_send_response { __u32 rcode; __u32 length; __u64 data; __u32 handle; };h]hfstruct fw_cdev_send_response { __u32 rcode; __u32 length; __u64 data; __u32 handle; };}(hhhj9ubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj_9ubh)}(h **Members**h]j$)}(hj9h]hMembers}(hhhj9hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj9ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj_9ubh)}(hhh](h)}(h?``rcode`` Response code as determined by the userspace handler h](h)}(h ``rcode``h]jr)}(hj9h]hrcode}(hhhj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj9ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj9ubh)}(hhh]h)}(h4Response code as determined by the userspace handlerh]h4Response code as determined by the userspace handler}(hj9hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1hhj9ubeh}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubh)}(h0``length`` Length of outgoing payload, in bytes h](h)}(h ``length``h]jr)}(hj9h]hlength}(hhhj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj9ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj9ubh)}(hhh]h)}(h$Length of outgoing payload, in bytesh]h$Length of outgoing payload, in bytes}(hj:hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1hhj9ubeh}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubh)}(h&``data`` Userspace pointer to payload h](h)}(h``data``h]jr)}(hj":h]hdata}(hhhj$:hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj :ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj:ubh)}(hhh]h)}(hUserspace pointer to payloadh]hUserspace pointer to payload}(hj=:hj;:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7:hMhj8:ubah}(h]h ]h"]h$]h&]uh1hhj:ubeh}(h]h ]h"]h$]h&]uh1hhj7:hMhj9ubh)}(h>``handle`` The handle from the :c:type:`fw_cdev_event_request`h](h)}(h ``handle``h]jr)}(hj[:h]hhandle}(hhhj]:hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjY:ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjU:ubh)}(hhh]h)}(h3The handle from the :c:type:`fw_cdev_event_request`h](hThe handle from the }(hThe handle from the hjt:hhhNhNubh)}(h:c:type:`fw_cdev_event_request`h]jr)}(hj:h]hfw_cdev_event_request}(hhhj:hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj}:ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_requestuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjt:ubeh}(h]h ]h"]h$]h&]uh1hhj:hMhjq:ubah}(h]h ]h"]h$]h&]uh1hhjU:ubeh}(h]h ]h"]h$]h&]uh1hhjp:hMhj9ubeh}(h]h ]h"]h$]h&]uh1hhj_9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hj:h]h Description}(hhhj:hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj:ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hXvSend a response to an incoming request. By setting up an address range using the ``FW_CDEV_IOC_ALLOCATE`` ioctl, userspace can listen for incoming requests. An incoming request will generate an ``FW_CDEV_EVENT_REQUEST``, and userspace must send a reply using this ioctl. The event has a handle to the kernel-side pending transaction, which should be used with this ioctl.h](hRSend a response to an incoming request. By setting up an address range using the }(hRSend a response to an incoming request. By setting up an address range using the hj:hhhNhNubjr)}(h``FW_CDEV_IOC_ALLOCATE``h]hFW_CDEV_IOC_ALLOCATE}(hhhj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj:ubhZ ioctl, userspace can listen for incoming requests. An incoming request will generate an }(hZ ioctl, userspace can listen for incoming requests. An incoming request will generate an hj:hhhNhNubjr)}(h``FW_CDEV_EVENT_REQUEST``h]hFW_CDEV_EVENT_REQUEST}(hhhj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj:ubh, and userspace must send a reply using this ioctl. The event has a handle to the kernel-side pending transaction, which should be used with this ioctl.}(h, and userspace must send a reply using this ioctl. The event has a handle to the kernel-side pending transaction, which should be used with this ioctl.hj:hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](jfw_cdev_allocate (C struct)c.fw_cdev_allocatehNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_allocateh]j)}(hstruct fw_cdev_allocateh](j)}(hjh]hstruct}(hhhj#;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMubj)}(h h]h }(hhhj1;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;hhhj0;hMubj)}(hfw_cdev_allocateh]j)}(hj;h]hfw_cdev_allocate}(hhhjC;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?;ubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj;hhhj0;hMubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj;hhhj0;hMubah}(h]j;ah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj;hhubj)}(hhh]h)}(h"Allocate a CSR in an address rangeh]h"Allocate a CSR in an address range}(hjh;hjf;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjc;hhubah}(h]h ]h"]h$]h&]uh1jhj;hhhj0;hMubeh}(h]h ](jstructeh"]h$]h&]jjjj~;jj~;juh1jhhhjWhjhNubj)}(hX**Definition**:: struct fw_cdev_allocate { __u64 offset; __u64 closure; __u32 length; __u32 handle; __u64 region_end; }; **Members** ``offset`` Start offset of the address range ``closure`` To be passed back to userspace in request events ``length`` Length of the CSR, in bytes ``handle`` Handle to the allocation, written by the kernel ``region_end`` First address above the address range (added in ABI v4, 2.6.36)h](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhj;hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj;ubh:}(hj7hj;hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj;ubji)}(h{struct fw_cdev_allocate { __u64 offset; __u64 closure; __u32 length; __u32 handle; __u64 region_end; };h]h{struct fw_cdev_allocate { __u64 offset; __u64 closure; __u32 length; __u32 handle; __u64 region_end; };}(hhhj;ubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj;ubh)}(h **Members**h]j$)}(hj;h]hMembers}(hhhj;hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj;ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj;ubh)}(hhh](h)}(h-``offset`` Start offset of the address range h](h)}(h ``offset``h]jr)}(hj;h]hoffset}(hhhj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj;ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj;ubh)}(hhh]h)}(h!Start offset of the address rangeh]h!Start offset of the address range}(hj;hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;hMhj;ubah}(h]h ]h"]h$]h&]uh1hhj;ubeh}(h]h ]h"]h$]h&]uh1hhj;hMhj;ubh)}(h=``closure`` To be passed back to userspace in request events h](h)}(h ``closure``h]jr)}(hj <h]hclosure}(hhhj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj <ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj<ubh)}(hhh]h)}(h0To be passed back to userspace in request eventsh]h0To be passed back to userspace in request events}(hj'<hj%<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!<hMhj"<ubah}(h]h ]h"]h$]h&]uh1hhj<ubeh}(h]h ]h"]h$]h&]uh1hhj!<hMhj;ubh)}(h'``length`` Length of the CSR, in bytes h](h)}(h ``length``h]jr)}(hjE<h]hlength}(hhhjG<hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjC<ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj?<ubh)}(hhh]h)}(hLength of the CSR, in bytesh]hLength of the CSR, in bytes}(hj`<hj^<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZ<hMhj[<ubah}(h]h ]h"]h$]h&]uh1hhj?<ubeh}(h]h ]h"]h$]h&]uh1hhjZ<hMhj;ubh)}(h;``handle`` Handle to the allocation, written by the kernel h](h)}(h ``handle``h]jr)}(hj~<h]hhandle}(hhhj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj|<ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjx<ubh)}(hhh]h)}(h/Handle to the allocation, written by the kernelh]h/Handle to the allocation, written by the kernel}(hj<hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hMhj<ubah}(h]h ]h"]h$]h&]uh1hhjx<ubeh}(h]h ]h"]h$]h&]uh1hhj<hMhj;ubh)}(hN``region_end`` First address above the address range (added in ABI v4, 2.6.36)h](h)}(h``region_end``h]jr)}(hj<h]h region_end}(hhhj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj<ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj<ubh)}(hhh]h)}(h?First address above the address range (added in ABI v4, 2.6.36)h]h?First address above the address range (added in ABI v4, 2.6.36)}(hj<hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj<ubah}(h]h ]h"]h$]h&]uh1hhj<ubeh}(h]h ]h"]h$]h&]uh1hhj<hMhj;ubeh}(h]h ]h"]h$]h&]uh1hhj;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hj<h]h Description}(hhhj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj<ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hXAllocate an address range in the 48-bit address space on the local node (the controller). This allows userspace to listen for requests with an offset within that address range. Every time when the kernel receives a request within the range, an :c:type:`fw_cdev_event_request2` event will be emitted. (If the kernel or the client implements ABI version <= 3, an :c:type:`fw_cdev_event_request` will be generated instead.)h](hAllocate an address range in the 48-bit address space on the local node (the controller). This allows userspace to listen for requests with an offset within that address range. Every time when the kernel receives a request within the range, an }(hAllocate an address range in the 48-bit address space on the local node (the controller). This allows userspace to listen for requests with an offset within that address range. Every time when the kernel receives a request within the range, an hj=hhhNhNubh)}(h :c:type:`fw_cdev_event_request2`h]jr)}(hj=h]hfw_cdev_event_request2}(hhhj=hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj=ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_request2uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj=ubhU event will be emitted. (If the kernel or the client implements ABI version <= 3, an }(hU event will be emitted. (If the kernel or the client implements ABI version <= 3, an hj=hhhNhNubh)}(h:c:type:`fw_cdev_event_request`h]jr)}(hj@=h]hfw_cdev_event_request}(hhhjB=hhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj>=ubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_requestuh1hhj8=hMhj=ubh will be generated instead.)}(h will be generated instead.)hj=hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj8=hMhjWhhubh)}(hThe **closure** field is passed back to userspace in these request events. The **handle** field is an out parameter, returning a handle to the allocated range to be used for later deallocation of the range.h](hThe }(hThe hjh=hhhNhNubj$)}(h **closure**h]hclosure}(hhhjq=hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjh=ubh@ field is passed back to userspace in these request events. The }(h@ field is passed back to userspace in these request events. The hjh=hhhNhNubj$)}(h **handle**h]hhandle}(hhhj=hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjh=ubhu field is an out parameter, returning a handle to the allocated range to be used for later deallocation of the range.}(hu field is an out parameter, returning a handle to the allocated range to be used for later deallocation of the range.hjh=hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hThe address range is allocated on all local nodes. The address allocation is exclusive except for the FCP command and response registers. If an exclusive address region is already in use, the ioctl fails with errno set to ``EBUSY``.h](hThe address range is allocated on all local nodes. The address allocation is exclusive except for the FCP command and response registers. If an exclusive address region is already in use, the ioctl fails with errno set to }(hThe address range is allocated on all local nodes. The address allocation is exclusive except for the FCP command and response registers. If an exclusive address region is already in use, the ioctl fails with errno set to hj=hhhNhNubjr)}(h ``EBUSY``h]hEBUSY}(hhhj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj=ubh.}(hjhj=hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hXIf kernel and client implement ABI version >= 4, the kernel looks up a free spot of size **length** inside [**offset**..**region_end**) and, if found, writes the start address of the new CSR back in **offset**. I.e. **offset** is an in and out parameter. If this automatic placement of a CSR in a bigger address range is not desired, the client simply needs to set **region_end** = **offset** + **length**.h](hYIf kernel and client implement ABI version >= 4, the kernel looks up a free spot of size }(hYIf kernel and client implement ABI version >= 4, the kernel looks up a free spot of size hj=hhhNhNubj$)}(h **length**h]hlength}(hhhj=hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj=ubh inside [}(h inside [hj=hhhNhNubj$)}(h **offset**h]hoffset}(hhhj=hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj=ubhQ..**region_end**) and, if found, writes the start address of the new CSR back in }(hQ..**region_end**) and, if found, writes the start address of the new CSR back in hj=hhhNhNubj$)}(h **offset**h]hoffset}(hhhj=hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj=ubh. I.e. }(h. I.e. hj=hhhNhNubj$)}(h **offset**h]hoffset}(hhhj>hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj=ubh is an in and out parameter. If this automatic placement of a CSR in a bigger address range is not desired, the client simply needs to set }(h is an in and out parameter. If this automatic placement of a CSR in a bigger address range is not desired, the client simply needs to set hj=hhhNhNubj$)}(h**region_end**h]h region_end}(hhhj>hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj=ubh = }(h = hj=hhhNhNubj$)}(h **offset**h]hoffset}(hhhj(>hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj=ubh + }(h + hj=hhhNhNubj$)}(h **length**h]hlength}(hhhj;>hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj=ubh.}(hjhj=hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hIf the kernel or the client implements ABI version <= 3, **region_end** is ignored and effectively assumed to be **offset** + **length**.h](h9If the kernel or the client implements ABI version <= 3, }(h9If the kernel or the client implements ABI version <= 3, hjT>hhhNhNubj$)}(h**region_end**h]h region_end}(hhhj]>hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjT>ubh* is ignored and effectively assumed to be }(h* is ignored and effectively assumed to be hjT>hhhNhNubj$)}(h **offset**h]hoffset}(hhhjp>hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjT>ubh + }(h + hjT>hhhNhNubj$)}(h **length**h]hlength}(hhhj>hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjT>ubh.}(hjhjT>hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(h**region_end** is only present in a kernel header >= 2.6.36. If necessary, this can for example be tested by #ifdef FW_CDEV_EVENT_REQUEST2.h](j$)}(h**region_end**h]h region_end}(hhhj>hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj>ubh~ is only present in a kernel header >= 2.6.36. If necessary, this can for example be tested by #ifdef FW_CDEV_EVENT_REQUEST2.}(h~ is only present in a kernel header >= 2.6.36. If necessary, this can for example be tested by #ifdef FW_CDEV_EVENT_REQUEST2.hj>hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](jfw_cdev_deallocate (C struct)c.fw_cdev_deallocatehNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_deallocateh]j)}(hstruct fw_cdev_deallocateh](j)}(hjh]hstruct}(hhhj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMubj)}(h h]h }(hhhj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>hhhj>hMubj)}(hfw_cdev_deallocateh]j)}(hj>h]hfw_cdev_deallocate}(hhhj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj>hhhj>hMubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj>hhhj>hMubah}(h]j>ah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj>hhubj)}(hhh]h)}(h0Free a CSR address range or isochronous resourceh]h0Free a CSR address range or isochronous resource}(hj?hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj?hhubah}(h]h ]h"]h$]h&]uh1jhj>hhhj>hMubeh}(h]h ](jstructeh"]h$]h&]jjjj.?jj.?juh1jhhhjWhjhNubj)}(h**Definition**:: struct fw_cdev_deallocate { __u32 handle; }; **Members** ``handle`` Handle to the address range or iso resource, as returned by the kernel when the range or resource was allocatedh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhj:?hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj6?ubh:}(hj7hj6?hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj2?ubji)}(h0struct fw_cdev_deallocate { __u32 handle; };h]h0struct fw_cdev_deallocate { __u32 handle; };}(hhhjS?ubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj2?ubh)}(h **Members**h]j$)}(hjd?h]hMembers}(hhhjf?hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjb?ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj2?ubh)}(hhh]h)}(hz``handle`` Handle to the address range or iso resource, as returned by the kernel when the range or resource was allocatedh](h)}(h ``handle``h]jr)}(hj?h]hhandle}(hhhj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj?ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj}?ubh)}(hhh]h)}(hoHandle to the address range or iso resource, as returned by the kernel when the range or resource was allocatedh]hoHandle to the address range or iso resource, as returned by the kernel when the range or resource was allocated}(hj?hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hMhj?ubah}(h]h ]h"]h$]h&]uh1hhj}?ubeh}(h]h ]h"]h$]h&]uh1hhj?hMhjz?ubah}(h]h ]h"]h$]h&]uh1hhj2?ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j%fw_cdev_initiate_bus_reset (C struct)c.fw_cdev_initiate_bus_resethNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_initiate_bus_reseth]j)}(h!struct fw_cdev_initiate_bus_reseth](j)}(hjh]hstruct}(hhhj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMubj)}(h h]h }(hhhj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?hhhj?hMubj)}(hfw_cdev_initiate_bus_reseth]j)}(hj?h]hfw_cdev_initiate_bus_reset}(hhhj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj?hhhj?hMubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj?hhhj?hMubah}(h]j?ah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj?hhubj)}(hhh]h)}(hInitiate a bus reseth]hInitiate a bus reset}(hj!@hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj@hhubah}(h]h ]h"]h$]h&]uh1jhj?hhhj?hMubeh}(h]h ](jstructeh"]h$]h&]jjjj7@jj7@juh1jhhhjWhjhNubj)}(h**Definition**:: struct fw_cdev_initiate_bus_reset { __u32 type; }; **Members** ``type`` ``FW_CDEV_SHORT_RESET`` or ``FW_CDEV_LONG_RESET``h](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjC@hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj?@ubh:}(hj7hj?@hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj;@ubji)}(h6struct fw_cdev_initiate_bus_reset { __u32 type; };h]h6struct fw_cdev_initiate_bus_reset { __u32 type; };}(hhhj\@ubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj;@ubh)}(h **Members**h]j$)}(hjm@h]hMembers}(hhhjo@hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjk@ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj;@ubh)}(hhh]h)}(h:``type`` ``FW_CDEV_SHORT_RESET`` or ``FW_CDEV_LONG_RESET``h](h)}(h``type``h]jr)}(hj@h]htype}(hhhj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj@ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj@ubh)}(hhh]h)}(h1``FW_CDEV_SHORT_RESET`` or ``FW_CDEV_LONG_RESET``h](jr)}(h``FW_CDEV_SHORT_RESET``h]hFW_CDEV_SHORT_RESET}(hhhj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj@ubh or }(h or hj@hhhNhNubjr)}(h``FW_CDEV_LONG_RESET``h]hFW_CDEV_LONG_RESET}(hhhj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj@ubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj@ubah}(h]h ]h"]h$]h&]uh1hhj@ubeh}(h]h ]h"]h$]h&]uh1hhj@hMhj@ubah}(h]h ]h"]h$]h&]uh1hhj;@ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hj@h]h Description}(hhhj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj@ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hInitiate a bus reset for the bus this device is on. The bus reset can be either the original (long) bus reset or the arbitrated (short) bus reset introduced in 1394a-2000.h]hInitiate a bus reset for the bus this device is on. The bus reset can be either the original (long) bus reset or the arbitrated (short) bus reset introduced in 1394a-2000.}(hjAhjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hX.The ioctl returns immediately. A subsequent :c:type:`fw_cdev_event_bus_reset` indicates when the reset actually happened. Since ABI v4, this may be considerably later than the ioctl because the kernel ensures a grace period between subsequent bus resets as per IEEE 1394 bus management specification.h](h-The ioctl returns immediately. A subsequent }(h-The ioctl returns immediately. A subsequent hjAhhhNhNubh)}(h!:c:type:`fw_cdev_event_bus_reset`h]jr)}(hjAh]hfw_cdev_event_bus_reset}(hhhjAhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjAubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_bus_resetuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjAubh indicates when the reset actually happened. Since ABI v4, this may be considerably later than the ioctl because the kernel ensures a grace period between subsequent bus resets as per IEEE 1394 bus management specification.}(h indicates when the reset actually happened. Since ABI v4, this may be considerably later than the ioctl because the kernel ensures a grace period between subsequent bus resets as per IEEE 1394 bus management specification.hjAhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj9AhMhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j!fw_cdev_add_descriptor (C struct)c.fw_cdev_add_descriptorhNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_add_descriptorh]j)}(hstruct fw_cdev_add_descriptorh](j)}(hjh]hstruct}(hhhj^AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZAhhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMubj)}(h h]h }(hhhjlAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZAhhhjkAhMubj)}(hfw_cdev_add_descriptorh]j)}(hjXAh]hfw_cdev_add_descriptor}(hhhj~AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzAubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhjZAhhhjkAhMubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhjVAhhhjkAhMubah}(h]jQAah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjSAhhubj)}(hhh]h)}(h+Add contents to the local node's config ROMh]h-Add contents to the local node’s config ROM}(hjAhjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjAhhubah}(h]h ]h"]h$]h&]uh1jhjSAhhhjkAhMubeh}(h]h ](jstructeh"]h$]h&]jjjjAjjAjuh1jhhhjWhjhNubj)}(hX**Definition**:: struct fw_cdev_add_descriptor { __u32 immediate; __u32 key; __u64 data; __u32 length; __u32 handle; }; **Members** ``immediate`` If non-zero, immediate key to insert before pointer ``key`` Upper 8 bits of root directory pointer ``data`` Userspace pointer to contents of descriptor block ``length`` Length of descriptor block data, in quadlets ``handle`` Handle to the descriptor, written by the kernelh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjAubh:}(hj7hjAhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjAubji)}(hzstruct fw_cdev_add_descriptor { __u32 immediate; __u32 key; __u64 data; __u32 length; __u32 handle; };h]hzstruct fw_cdev_add_descriptor { __u32 immediate; __u32 key; __u64 data; __u32 length; __u32 handle; };}(hhhjAubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjAubh)}(h **Members**h]j$)}(hjAh]hMembers}(hhhjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjAubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjAubh)}(hhh](h)}(hB``immediate`` If non-zero, immediate key to insert before pointer h](h)}(h ``immediate``h]jr)}(hjBh]h immediate}(hhhjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj Bubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjBubh)}(hhh]h)}(h3If non-zero, immediate key to insert before pointerh]h3If non-zero, immediate key to insert before pointer}(hj)Bhj'BhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#BhMhj$Bubah}(h]h ]h"]h$]h&]uh1hhjBubeh}(h]h ]h"]h$]h&]uh1hhj#BhMhjBubh)}(h/``key`` Upper 8 bits of root directory pointer h](h)}(h``key``h]jr)}(hjGBh]hkey}(hhhjIBhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjEBubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjABubh)}(hhh]h)}(h&Upper 8 bits of root directory pointerh]h&Upper 8 bits of root directory pointer}(hjbBhj`BhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\BhMhj]Bubah}(h]h ]h"]h$]h&]uh1hhjABubeh}(h]h ]h"]h$]h&]uh1hhj\BhMhjBubh)}(h;``data`` Userspace pointer to contents of descriptor block h](h)}(h``data``h]jr)}(hjBh]hdata}(hhhjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj~Bubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjzBubh)}(hhh]h)}(h1Userspace pointer to contents of descriptor blockh]h1Userspace pointer to contents of descriptor block}(hjBhjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhMhjBubah}(h]h ]h"]h$]h&]uh1hhjzBubeh}(h]h ]h"]h$]h&]uh1hhjBhMhjBubh)}(h8``length`` Length of descriptor block data, in quadlets h](h)}(h ``length``h]jr)}(hjBh]hlength}(hhhjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjBubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjBubh)}(hhh]h)}(h,Length of descriptor block data, in quadletsh]h,Length of descriptor block data, in quadlets}(hjBhjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhMhjBubah}(h]h ]h"]h$]h&]uh1hhjBubeh}(h]h ]h"]h$]h&]uh1hhjBhMhjBubh)}(h:``handle`` Handle to the descriptor, written by the kernelh](h)}(h ``handle``h]jr)}(hjBh]hhandle}(hhhjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjBubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjBubh)}(hhh]h)}(h/Handle to the descriptor, written by the kernelh]h/Handle to the descriptor, written by the kernel}(hj Chj ChhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjCubah}(h]h ]h"]h$]h&]uh1hhjBubeh}(h]h ]h"]h$]h&]uh1hhjChMhjBubeh}(h]h ]h"]h$]h&]uh1hhjAubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hj5Ch]h Description}(hhhj7ChhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj3Cubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hfAdd a descriptor block and optionally a preceding immediate key to the local node's Configuration ROM.h]hhAdd a descriptor block and optionally a preceding immediate key to the local node’s Configuration ROM.}(hjMChjKChhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hX The **key** field specifies the upper 8 bits of the descriptor root directory pointer and the **data** and **length** fields specify the contents. The **key** should be of the form 0xXX000000. The offset part of the root directory entry will be filled in by the kernel.h](hThe }(hThe hjZChhhNhNubj$)}(h**key**h]hkey}(hhhjcChhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjZCubhS field specifies the upper 8 bits of the descriptor root directory pointer and the }(hS field specifies the upper 8 bits of the descriptor root directory pointer and the hjZChhhNhNubj$)}(h**data**h]hdata}(hhhjvChhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjZCubh and }(h and hjZChhhNhNubj$)}(h **length**h]hlength}(hhhjChhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjZCubh" fields specify the contents. The }(h" fields specify the contents. The hjZChhhNhNubj$)}(h**key**h]hkey}(hhhjChhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjZCubho should be of the form 0xXX000000. The offset part of the root directory entry will be filled in by the kernel.}(ho should be of the form 0xXX000000. The offset part of the root directory entry will be filled in by the kernel.hjZChhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hvIf not 0, the **immediate** field specifies an immediate key which will be inserted before the root directory pointer.h](hIf not 0, the }(hIf not 0, the hjChhhNhNubj$)}(h **immediate**h]h immediate}(hhhjChhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjCubh[ field specifies an immediate key which will be inserted before the root directory pointer.}(h[ field specifies an immediate key which will be inserted before the root directory pointer.hjChhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hL**immediate**, **key**, and **data** array elements are CPU-endian quadlets.h](j$)}(h **immediate**h]h immediate}(hhhjChhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjCubh, }(h, hjChhhNhNubj$)}(h**key**h]hkey}(hhhjChhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjCubh, and }(h, and hjChhhNhNubj$)}(h**data**h]hdata}(hhhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjCubh( array elements are CPU-endian quadlets.}(h( array elements are CPU-endian quadlets.hjChhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hXIf successful, the kernel adds the descriptor and writes back a **handle** to the kernel-side object to be used for later removal of the descriptor block and immediate key. The kernel will also generate a bus reset to signal the change of the Configuration ROM to other nodes.h](h@If successful, the kernel adds the descriptor and writes back a }(h@If successful, the kernel adds the descriptor and writes back a hjDhhhNhNubj$)}(h **handle**h]hhandle}(hhhj&DhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjDubh to the kernel-side object to be used for later removal of the descriptor block and immediate key. The kernel will also generate a bus reset to signal the change of the Configuration ROM to other nodes.}(h to the kernel-side object to be used for later removal of the descriptor block and immediate key. The kernel will also generate a bus reset to signal the change of the Configuration ROM to other nodes.hjDhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hThis ioctl affects the Configuration ROMs of all local nodes. The ioctl only succeeds on device files which represent a local node.h]hThis ioctl affects the Configuration ROMs of all local nodes. The ioctl only succeeds on device files which represent a local node.}(hjBDhj@DhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j$fw_cdev_remove_descriptor (C struct)c.fw_cdev_remove_descriptorhNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_remove_descriptorh]j)}(h struct fw_cdev_remove_descriptorh](j)}(hjh]hstruct}(hhhjhDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdDhhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMubj)}(h h]h }(hhhjvDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdDhhhjuDhMubj)}(hfw_cdev_remove_descriptorh]j)}(hjbDh]hfw_cdev_remove_descriptor}(hhhjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhjdDhhhjuDhMubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj`DhhhjuDhMubah}(h]j[Dah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM hj]Dhhubj)}(hhh]h)}(h*Remove contents from the Configuration ROMh]h*Remove contents from the Configuration ROM}(hjDhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjDhhubah}(h]h ]h"]h$]h&]uh1jhj]DhhhjuDhMubeh}(h]h ](jstructeh"]h$]h&]jjjjDjjDjuh1jhhhjWhjhNubj)}(h**Definition**:: struct fw_cdev_remove_descriptor { __u32 handle; }; **Members** ``handle`` Handle to the descriptor, as returned by the kernel when the descriptor was addedh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjDubh:}(hj7hjDhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjDubji)}(h7struct fw_cdev_remove_descriptor { __u32 handle; };h]h7struct fw_cdev_remove_descriptor { __u32 handle; };}(hhhjDubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjDubh)}(h **Members**h]j$)}(hjDh]hMembers}(hhhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjDubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjDubh)}(hhh]h)}(h\``handle`` Handle to the descriptor, as returned by the kernel when the descriptor was addedh](h)}(h ``handle``h]jr)}(hjEh]hhandle}(hhhjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjEubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjEubh)}(hhh]h)}(hQHandle to the descriptor, as returned by the kernel when the descriptor was addedh]hQHandle to the descriptor, as returned by the kernel when the descriptor was added}(hj3Ehj1EhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-EhMhj.Eubah}(h]h ]h"]h$]h&]uh1hhjEubeh}(h]h ]h"]h$]h&]uh1hhj-EhMhjEubah}(h]h ]h"]h$]h&]uh1hhjDubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hjZEh]h Description}(hhhj\EhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjXEubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hRemove a descriptor block and accompanying immediate key from the local nodes' Configuration ROMs. The kernel will also generate a bus reset to signal the change of the Configuration ROM to other nodes.h]hRemove a descriptor block and accompanying immediate key from the local nodes’ Configuration ROMs. The kernel will also generate a bus reset to signal the change of the Configuration ROM to other nodes.}(hjrEhjpEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j%fw_cdev_create_iso_context (C struct)c.fw_cdev_create_iso_contexthNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_create_iso_contexth]j)}(h!struct fw_cdev_create_iso_contexth](j)}(hjh]hstruct}(hhhjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEhhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM$ubj)}(h h]h }(hhhjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEhhhjEhM$ubj)}(hfw_cdev_create_iso_contexth]j)}(hjEh]hfw_cdev_create_iso_context}(hhhjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhjEhhhjEhM$ubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhjEhhhjEhM$ubah}(h]jEah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjEhhubj)}(hhh]h)}(h$Create a context for isochronous I/Oh]h$Create a context for isochronous I/O}(hjEhjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM#hjEhhubah}(h]h ]h"]h$]h&]uh1jhjEhhhjEhM$ubeh}(h]h ](jstructeh"]h$]h&]jjjjEjjEjuh1jhhhjWhjhNubj)}(hX**Definition**:: struct fw_cdev_create_iso_context { __u32 type; __u32 header_size; __u32 channel; __u32 speed; __u64 closure; __u32 handle; }; **Members** ``type`` ``FW_CDEV_ISO_CONTEXT_TRANSMIT`` or ``FW_CDEV_ISO_CONTEXT_RECEIVE`` or ``FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL`` ``header_size`` Header size to strip in single-channel reception ``channel`` Channel to bind to in single-channel reception or transmission ``speed`` Transmission speed ``closure`` To be returned in :c:type:`fw_cdev_event_iso_interrupt` or :c:type:`fw_cdev_event_iso_interrupt_multichannel` ``handle`` Handle to context, written back by kernelh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjEubh:}(hj7hjEhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM'hjEubji)}(hstruct fw_cdev_create_iso_context { __u32 type; __u32 header_size; __u32 channel; __u32 speed; __u64 closure; __u32 handle; };h]hstruct fw_cdev_create_iso_context { __u32 type; __u32 header_size; __u32 channel; __u32 speed; __u64 closure; __u32 handle; };}(hhhjFubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM)hjEubh)}(h **Members**h]j$)}(hj)Fh]hMembers}(hhhj+FhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj'Fubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM2hjEubh)}(hhh](h)}(h}``type`` ``FW_CDEV_ISO_CONTEXT_TRANSMIT`` or ``FW_CDEV_ISO_CONTEXT_RECEIVE`` or ``FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL`` h](h)}(h``type``h]jr)}(hjHFh]htype}(hhhjJFhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjFFubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM&hjBFubh)}(hhh]h)}(hs``FW_CDEV_ISO_CONTEXT_TRANSMIT`` or ``FW_CDEV_ISO_CONTEXT_RECEIVE`` or ``FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL``h](jr)}(h ``FW_CDEV_ISO_CONTEXT_TRANSMIT``h]hFW_CDEV_ISO_CONTEXT_TRANSMIT}(hhhjeFhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjaFubh or }(h or hjaFhhhNhNubjr)}(h``FW_CDEV_ISO_CONTEXT_RECEIVE``h]hFW_CDEV_ISO_CONTEXT_RECEIVE}(hhhjxFhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjaFubh or }(h or hjaFhhhNhNubjr)}(h,``FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL``h]h(FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL}(hhhjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjaFubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM%hj^Fubah}(h]h ]h"]h$]h&]uh1hhjBFubeh}(h]h ]h"]h$]h&]uh1hhj]FhM&hj?Fubh)}(hA``header_size`` Header size to strip in single-channel reception h](h)}(h``header_size``h]jr)}(hjFh]h header_size}(hhhjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjFubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM'hjFubh)}(hhh]h)}(h0Header size to strip in single-channel receptionh]h0Header size to strip in single-channel reception}(hjFhjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhM'hjFubah}(h]h ]h"]h$]h&]uh1hhjFubeh}(h]h ]h"]h$]h&]uh1hhjFhM'hj?Fubh)}(hK``channel`` Channel to bind to in single-channel reception or transmission h](h)}(h ``channel``h]jr)}(hjFh]hchannel}(hhhjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjFubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM(hjFubh)}(hhh]h)}(h>Channel to bind to in single-channel reception or transmissionh]h>Channel to bind to in single-channel reception or transmission}(hjGhjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGhM(hjGubah}(h]h ]h"]h$]h&]uh1hhjFubeh}(h]h ]h"]h$]h&]uh1hhjGhM(hj?Fubh)}(h``speed`` Transmission speed h](h)}(h ``speed``h]jr)}(hj$Gh]hspeed}(hhhj&GhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj"Gubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM)hjGubh)}(hhh]h)}(hTransmission speedh]hTransmission speed}(hj?Ghj=GhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9GhM)hj:Gubah}(h]h ]h"]h$]h&]uh1hhjGubeh}(h]h ]h"]h$]h&]uh1hhj9GhM)hj?Fubh)}(hz``closure`` To be returned in :c:type:`fw_cdev_event_iso_interrupt` or :c:type:`fw_cdev_event_iso_interrupt_multichannel` h](h)}(h ``closure``h]jr)}(hj]Gh]hclosure}(hhhj_GhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj[Gubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM+hjWGubh)}(hhh]h)}(hmTo be returned in :c:type:`fw_cdev_event_iso_interrupt` or :c:type:`fw_cdev_event_iso_interrupt_multichannel`h](hTo be returned in }(hTo be returned in hjvGhhhNhNubh)}(h%:c:type:`fw_cdev_event_iso_interrupt`h]jr)}(hjGh]hfw_cdev_event_iso_interrupt}(hhhjGhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjGubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_iso_interruptuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM*hjvGubh or }(h or hjvGhhhNhNubh)}(h2:c:type:`fw_cdev_event_iso_interrupt_multichannel`h]jr)}(hjGh]h(fw_cdev_event_iso_interrupt_multichannel}(hhhjGhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjGubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjn(fw_cdev_event_iso_interrupt_multichanneluh1hhjGhM*hjvGubeh}(h]h ]h"]h$]h&]uh1hhjGhM*hjsGubah}(h]h ]h"]h$]h&]uh1hhjWGubeh}(h]h ]h"]h$]h&]uh1hhjrGhM+hj?Fubh)}(h4``handle`` Handle to context, written back by kernelh](h)}(h ``handle``h]jr)}(hjGh]hhandle}(hhhjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjGubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM+hjGubh)}(hhh]h)}(h)Handle to context, written back by kernelh]h)Handle to context, written back by kernel}(hjGhjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM,hjGubah}(h]h ]h"]h$]h&]uh1hhjGubeh}(h]h ]h"]h$]h&]uh1hhjGhM+hj?Fubeh}(h]h ]h"]h$]h&]uh1hhjEubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hjHh]h Description}(hhhj HhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjHubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM/hjWhhubh)}(hX6Prior to sending or receiving isochronous I/O, a context must be created. The context records information about the transmit or receive configuration and typically maps to an underlying hardware resource. A context is set up for either sending or receiving. It is bound to a specific isochronous **channel**.h](hX*Prior to sending or receiving isochronous I/O, a context must be created. The context records information about the transmit or receive configuration and typically maps to an underlying hardware resource. A context is set up for either sending or receiving. It is bound to a specific isochronous }(hX*Prior to sending or receiving isochronous I/O, a context must be created. The context records information about the transmit or receive configuration and typically maps to an underlying hardware resource. A context is set up for either sending or receiving. It is bound to a specific isochronous hj4HhhhNhNubj$)}(h **channel**h]hchannel}(hhhj=HhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj4Hubh.}(hjhj4HhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM-hjWhhubh)}(hIn case of multichannel reception, **header_size** and **channel** are ignored and the channels are selected by ``FW_CDEV_IOC_SET_ISO_CHANNELS``.h](h#In case of multichannel reception, }(h#In case of multichannel reception, hjVHhhhNhNubj$)}(h**header_size**h]h header_size}(hhhj_HhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjVHubh and }(h and hjVHhhhNhNubj$)}(h **channel**h]hchannel}(hhhjrHhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjVHubh. are ignored and the channels are selected by }(h. are ignored and the channels are selected by hjVHhhhNhNubjr)}(h ``FW_CDEV_IOC_SET_ISO_CHANNELS``h]hFW_CDEV_IOC_SET_ISO_CHANNELS}(hhhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjVHubh.}(hjhjVHhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM3hjWhhubh)}(hFor ``FW_CDEV_ISO_CONTEXT_RECEIVE`` contexts, **header_size** must be at least 4 and must be a multiple of 4. It is ignored in other context types.h](hFor }(hFor hjHhhhNhNubjr)}(h``FW_CDEV_ISO_CONTEXT_RECEIVE``h]hFW_CDEV_ISO_CONTEXT_RECEIVE}(hhhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjHubh contexts, }(h contexts, hjHhhhNhNubj$)}(h**header_size**h]h header_size}(hhhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjHubhW must be at least 4 and must be a multiple of 4. It is ignored in other context types.}(hW must be at least 4 and must be a multiple of 4. It is ignored in other context types.hjHhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM6hjWhhubh)}(h.**speed** is ignored in receive context types.h](j$)}(h **speed**h]hspeed}(hhhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjHubh% is ignored in receive context types.}(h% is ignored in receive context types.hjHhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM9hjWhhubh)}(hIf a context was successfully created, the kernel writes back a handle to the context, which must be passed in for subsequent operations on that context.h]hIf a context was successfully created, the kernel writes back a handle to the context, which must be passed in for subsequent operations on that context.}(hjHhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM;hjWhhubh)}(hXLimitations: No more than one iso context can be created per fd. The total number of contexts that all userspace and kernelspace drivers can create on a card at a time is a hardware limit, typically 4 or 8 contexts per direction, and of them at most one multichannel receive context.h]hXLimitations: No more than one iso context can be created per fd. The total number of contexts that all userspace and kernelspace drivers can create on a card at a time is a hardware limit, typically 4 or 8 contexts per direction, and of them at most one multichannel receive context.}(hjIhjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM>hjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j#fw_cdev_set_iso_channels (C struct)c.fw_cdev_set_iso_channelshNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_set_iso_channelsh]j)}(hstruct fw_cdev_set_iso_channelsh](j)}(hjh]hstruct}(hhhj)IhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%Ihhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMOubj)}(h h]h }(hhhj7IhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%Ihhhj6IhMOubj)}(hfw_cdev_set_iso_channelsh]j)}(hj#Ih]hfw_cdev_set_iso_channels}(hhhjIIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEIubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj%Ihhhj6IhMOubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj!Ihhhj6IhMOubah}(h]jIah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMGhjIhhubj)}(hhh]h)}(h)Select channels in multichannel receptionh]h)Select channels in multichannel reception}(hjnIhjlIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMNhjiIhhubah}(h]h ]h"]h$]h&]uh1jhjIhhhj6IhMOubeh}(h]h ](jstructeh"]h$]h&]jjjjIjjIjuh1jhhhjWhjhNubj)}(h**Definition**:: struct fw_cdev_set_iso_channels { __u64 channels; __u32 handle; }; **Members** ``channels`` Bitmask of channels to listen to ``handle`` Handle of the mutichannel receive contexth](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjIhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjIubh:}(hj7hjIhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMRhjIubji)}(hJstruct fw_cdev_set_iso_channels { __u64 channels; __u32 handle; };h]hJstruct fw_cdev_set_iso_channels { __u64 channels; __u32 handle; };}(hhhjIubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMThjIubh)}(h **Members**h]j$)}(hjIh]hMembers}(hhhjIhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjIubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMYhjIubh)}(hhh](h)}(h.``channels`` Bitmask of channels to listen to h](h)}(h ``channels``h]jr)}(hjIh]hchannels}(hhhjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjIubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMPhjIubh)}(hhh]h)}(h Bitmask of channels to listen toh]h Bitmask of channels to listen to}(hjIhjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhMPhjIubah}(h]h ]h"]h$]h&]uh1hhjIubeh}(h]h ]h"]h$]h&]uh1hhjIhMPhjIubh)}(h4``handle`` Handle of the mutichannel receive contexth](h)}(h ``handle``h]jr)}(hjJh]hhandle}(hhhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjJubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMPhj Jubh)}(hhh]h)}(h)Handle of the mutichannel receive contexth]h)Handle of the mutichannel receive context}(hj-Jhj+JhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMQhj(Jubah}(h]h ]h"]h$]h&]uh1hhj Jubeh}(h]h ]h"]h$]h&]uh1hhj'JhMPhjIubeh}(h]h ]h"]h$]h&]uh1hhjIubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hjUJh]h Description}(hhhjWJhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjSJubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMThjWhhubh)}(hL**channels** is the bitwise or of 1ULL << n for each channel n to listen to.h](j$)}(h **channels**h]hchannels}(hhhjoJhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjkJubh@ is the bitwise or of 1ULL << n for each channel n to listen to.}(h@ is the bitwise or of 1ULL << n for each channel n to listen to.hjkJhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMRhjWhhubh)}(hThe ioctl fails with errno ``EBUSY`` if there is already another receive context on a channel in **channels**. In that case, the bitmask of all unoccupied channels is returned in **channels**.h](hThe ioctl fails with errno }(hThe ioctl fails with errno hjJhhhNhNubjr)}(h ``EBUSY``h]hEBUSY}(hhhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjJubh= if there is already another receive context on a channel in }(h= if there is already another receive context on a channel in hjJhhhNhNubj$)}(h **channels**h]hchannels}(hhhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjJubhG. In that case, the bitmask of all unoccupied channels is returned in }(hG. In that case, the bitmask of all unoccupied channels is returned in hjJhhhNhNubj$)}(h **channels**h]hchannels}(hhhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjJubh.}(hjhjJhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMThjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](jfw_cdev_iso_packet (C struct)c.fw_cdev_iso_packethNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_iso_packeth]j)}(hstruct fw_cdev_iso_packeth](j)}(hjh]hstruct}(hhhjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJhhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMgubj)}(h h]h }(hhhjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJhhhjJhMgubj)}(hfw_cdev_iso_packeth]j)}(hjJh]hfw_cdev_iso_packet}(hhhj KhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhjJhhhjJhMgubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhjJhhhjJhMgubah}(h]jJah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM[hjJhhubj)}(hhh]h)}(hIsochronous packeth]hIsochronous packet}(hj/Khj-KhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMfhj*Khhubah}(h]h ]h"]h$]h&]uh1jhjJhhhjJhMgubeh}(h]h ](jstructeh"]h$]h&]jjjjEKjjEKjuh1jhhhjWhjhNubj)}(hX**Definition**:: struct fw_cdev_iso_packet { __u32 control; __u32 header[]; }; **Members** ``control`` Contains the header length (8 uppermost bits), the sy field (4 bits), the tag field (2 bits), a sync flag or a skip flag (1 bit), an interrupt flag (1 bit), and the payload length (16 lowermost bits) ``header`` Header and payload in case of a transmit context.h](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjQKhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjMKubh:}(hj7hjMKhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMjhjIKubji)}(hEstruct fw_cdev_iso_packet { __u32 control; __u32 header[]; };h]hEstruct fw_cdev_iso_packet { __u32 control; __u32 header[]; };}(hhhjjKubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMlhjIKubh)}(h **Members**h]j$)}(hj{Kh]hMembers}(hhhj}KhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjyKubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMqhjIKubh)}(hhh](h)}(h``control`` Contains the header length (8 uppermost bits), the sy field (4 bits), the tag field (2 bits), a sync flag or a skip flag (1 bit), an interrupt flag (1 bit), and the payload length (16 lowermost bits) h](h)}(h ``control``h]jr)}(hjKh]hcontrol}(hhhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjKubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMkhjKubh)}(hhh]h)}(hContains the header length (8 uppermost bits), the sy field (4 bits), the tag field (2 bits), a sync flag or a skip flag (1 bit), an interrupt flag (1 bit), and the payload length (16 lowermost bits)h]hContains the header length (8 uppermost bits), the sy field (4 bits), the tag field (2 bits), a sync flag or a skip flag (1 bit), an interrupt flag (1 bit), and the payload length (16 lowermost bits)}(hjKhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhhjKubah}(h]h ]h"]h$]h&]uh1hhjKubeh}(h]h ]h"]h$]h&]uh1hhjKhMkhjKubh)}(h<``header`` Header and payload in case of a transmit context.h](h)}(h ``header``h]jr)}(hjKh]hheader}(hhhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjKubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMkhjKubh)}(hhh]h)}(h1Header and payload in case of a transmit context.h]h1Header and payload in case of a transmit context.}(hjKhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMlhjKubah}(h]h ]h"]h$]h&]uh1hhjKubeh}(h]h ]h"]h$]h&]uh1hhjKhMkhjKubeh}(h]h ]h"]h$]h&]uh1hhjIKubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hjLh]h Description}(hhhjLhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjLubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMohjWhhubh)}(h:c:type:`struct fw_cdev_iso_packet ` is used to describe isochronous packet queues. Use the FW_CDEV_ISO_* macros to fill in **control**. The **header** array is empty in case of receive contexts.h](h)}(h8:c:type:`struct fw_cdev_iso_packet `h]jr)}(hj3Lh]hstruct fw_cdev_iso_packet}(hhhj5LhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj1Lubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_iso_packetuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMmhj-LubhX is used to describe isochronous packet queues. Use the FW_CDEV_ISO_* macros to fill in }(hX is used to describe isochronous packet queues. Use the FW_CDEV_ISO_* macros to fill in hj-LhhhNhNubj$)}(h **control**h]hcontrol}(hhhjVLhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj-Lubh. The }(h. The hj-LhhhNhNubj$)}(h **header**h]hheader}(hhhjiLhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj-Lubh, array is empty in case of receive contexts.}(h, array is empty in case of receive contexts.hj-LhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjPLhMmhjWhhubh)}(h.Context type ``FW_CDEV_ISO_CONTEXT_TRANSMIT``:h](h Context type }(h Context type hjLhhhNhNubjr)}(h ``FW_CDEV_ISO_CONTEXT_TRANSMIT``h]hFW_CDEV_ISO_CONTEXT_TRANSMIT}(hhhjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjLubh:}(hj7hjLhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMqhjWhhubh)}(h**control.HEADER_LENGTH** must be a multiple of 4. It specifies the numbers of bytes in **header** that will be prepended to the packet's payload. These bytes are copied into the kernel and will not be accessed after the ioctl has returned.h](j$)}(h**control.HEADER_LENGTH**h]hcontrol.HEADER_LENGTH}(hhhjLhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjLubh@ must be a multiple of 4. It specifies the numbers of bytes in }(h@ must be a multiple of 4. It specifies the numbers of bytes in hjLhhhNhNubj$)}(h **header**h]hheader}(hhhjLhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjLubh that will be prepended to the packet’s payload. These bytes are copied into the kernel and will not be accessed after the ioctl has returned.}(h that will be prepended to the packet's payload. These bytes are copied into the kernel and will not be accessed after the ioctl has returned.hjLhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMshjWhhubh)}(hThe **control.SY** and TAG fields are copied to the iso packet header. These fields are specified by IEEE 1394a and IEC 61883-1.h](hThe }(hThe hjLhhhNhNubj$)}(h**control.SY**h]h control.SY}(hhhjLhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjLubho and TAG fields are copied to the iso packet header. These fields are specified by IEEE 1394a and IEC 61883-1.}(ho and TAG fields are copied to the iso packet header. These fields are specified by IEEE 1394a and IEC 61883-1.hjLhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMxhjWhhubh)}(hThe **control.SKIP** flag specifies that no packet is to be sent in a frame. When using this, all other fields except **control.INTERRUPT** must be zero.h](hThe }(hThe hjLhhhNhNubj$)}(h**control.SKIP**h]h control.SKIP}(hhhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjLubhb flag specifies that no packet is to be sent in a frame. When using this, all other fields except }(hb flag specifies that no packet is to be sent in a frame. When using this, all other fields except hjLhhhNhNubj$)}(h**control.INTERRUPT**h]hcontrol.INTERRUPT}(hhhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjLubh must be zero.}(h must be zero.hjLhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM{hjWhhubh)}(hWhen a packet with the **control.INTERRUPT** flag set has been completed, an :c:type:`fw_cdev_event_iso_interrupt` event will be sent.h](hWhen a packet with the }(hWhen a packet with the hj.MhhhNhNubj$)}(h**control.INTERRUPT**h]hcontrol.INTERRUPT}(hhhj7MhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj.Mubh! flag set has been completed, an }(h! flag set has been completed, an hj.MhhhNhNubh)}(h%:c:type:`fw_cdev_event_iso_interrupt`h]jr)}(hjLMh]hfw_cdev_event_iso_interrupt}(hhhjNMhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjJMubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_iso_interruptuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM~hj.Mubh event will be sent.}(h event will be sent.hj.MhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjiMhM~hjWhhubh)}(h-Context type ``FW_CDEV_ISO_CONTEXT_RECEIVE``:h](h Context type }(h Context type hjuMhhhNhNubjr)}(h``FW_CDEV_ISO_CONTEXT_RECEIVE``h]hFW_CDEV_ISO_CONTEXT_RECEIVE}(hhhj~MhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjuMubh:}(hj7hjuMhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(h**control.HEADER_LENGTH** must be a multiple of the context's header_size. If the HEADER_LENGTH is larger than the context's header_size, multiple packets are queued for this entry.h](j$)}(h**control.HEADER_LENGTH**h]hcontrol.HEADER_LENGTH}(hhhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjMubh must be a multiple of the context’s header_size. If the HEADER_LENGTH is larger than the context’s header_size, multiple packets are queued for this entry.}(h must be a multiple of the context's header_size. If the HEADER_LENGTH is larger than the context's header_size, multiple packets are queued for this entry.hjMhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(h.The **control.SY** and TAG fields are ignored.h](hThe }(hThe hjMhhhNhNubj$)}(h**control.SY**h]h control.SY}(hhhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjMubh and TAG fields are ignored.}(h and TAG fields are ignored.hjMhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hIf the **control.SYNC** flag is set, the context drops all packets until a packet with a sy field is received which matches :c:type:`fw_cdev_start_iso.sync `.h](hIf the }(hIf the hjMhhhNhNubj$)}(h**control.SYNC**h]h control.SYNC}(hhhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjMubhe flag is set, the context drops all packets until a packet with a sy field is received which matches }(he flag is set, the context drops all packets until a packet with a sy field is received which matches hjMhhhNhNubh)}(h4:c:type:`fw_cdev_start_iso.sync `h]jr)}(hjMh]hfw_cdev_start_iso.sync}(hhhjMhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjMubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_start_isouh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjMubh.}(hjhjMhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjNhMhjWhhubh)}(hXr**control.PAYLOAD_LENGTH** defines how many payload bytes can be received for one packet (in addition to payload quadlets that have been defined as headers and are stripped and returned in the :c:type:`fw_cdev_event_iso_interrupt` structure). If more bytes are received, the additional bytes are dropped. If less bytes are received, the remaining bytes in this part of the payload buffer will not be written to, not even by the next packet. I.e., packets received in consecutive frames will not necessarily be consecutive in memory. If an entry has queued multiple packets, the PAYLOAD_LENGTH is divided equally among them.h](j$)}(h**control.PAYLOAD_LENGTH**h]hcontrol.PAYLOAD_LENGTH}(hhhj"NhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjNubh defines how many payload bytes can be received for one packet (in addition to payload quadlets that have been defined as headers and are stripped and returned in the }(h defines how many payload bytes can be received for one packet (in addition to payload quadlets that have been defined as headers and are stripped and returned in the hjNhhhNhNubh)}(h%:c:type:`fw_cdev_event_iso_interrupt`h]jr)}(hj7Nh]hfw_cdev_event_iso_interrupt}(hhhj9NhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj5Nubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_iso_interruptuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjNubhX structure). If more bytes are received, the additional bytes are dropped. If less bytes are received, the remaining bytes in this part of the payload buffer will not be written to, not even by the next packet. I.e., packets received in consecutive frames will not necessarily be consecutive in memory. If an entry has queued multiple packets, the PAYLOAD_LENGTH is divided equally among them.}(hX structure). If more bytes are received, the additional bytes are dropped. If less bytes are received, the remaining bytes in this part of the payload buffer will not be written to, not even by the next packet. I.e., packets received in consecutive frames will not necessarily be consecutive in memory. If an entry has queued multiple packets, the PAYLOAD_LENGTH is divided equally among them.hjNhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjTNhMhjWhhubh)}(hWhen a packet with the **control.INTERRUPT** flag set has been completed, an :c:type:`fw_cdev_event_iso_interrupt` event will be sent. An entry that has queued multiple receive packets is completed when its last packet is completed.h](hWhen a packet with the }(hWhen a packet with the hj`NhhhNhNubj$)}(h**control.INTERRUPT**h]hcontrol.INTERRUPT}(hhhjiNhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj`Nubh! flag set has been completed, an }(h! flag set has been completed, an hj`NhhhNhNubh)}(h%:c:type:`fw_cdev_event_iso_interrupt`h]jr)}(hj~Nh]hfw_cdev_event_iso_interrupt}(hhhjNhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj|Nubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_iso_interruptuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj`Nubhw event will be sent. An entry that has queued multiple receive packets is completed when its last packet is completed.}(hw event will be sent. An entry that has queued multiple receive packets is completed when its last packet is completed.hj`NhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjNhMhjWhhubh)}(h:Context type ``FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL``:h](h Context type }(h Context type hjNhhhNhNubjr)}(h,``FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL``h]h(FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL}(hhhjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjNubh:}(hj7hjNhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hHere, :c:type:`fw_cdev_iso_packet` would be more aptly named _iso_buffer_chunk since it specifies a chunk of the mmap()'ed buffer, while the number and alignment of packets to be placed into the buffer chunk is not known beforehand.h](hHere, }(hHere, hjNhhhNhNubh)}(h:c:type:`fw_cdev_iso_packet`h]jr)}(hjNh]hfw_cdev_iso_packet}(hhhjNhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjNubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_iso_packetuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjNubh would be more aptly named _iso_buffer_chunk since it specifies a chunk of the mmap()’ed buffer, while the number and alignment of packets to be placed into the buffer chunk is not known beforehand.}(h would be more aptly named _iso_buffer_chunk since it specifies a chunk of the mmap()'ed buffer, while the number and alignment of packets to be placed into the buffer chunk is not known beforehand.hjNhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjNhMhjWhhubh)}(h**control.PAYLOAD_LENGTH** is the size of the buffer chunk and specifies room for header, payload, padding, and trailer bytes of one or more packets. It must be a multiple of 4.h](j$)}(h**control.PAYLOAD_LENGTH**h]hcontrol.PAYLOAD_LENGTH}(hhhjOhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjNubh is the size of the buffer chunk and specifies room for header, payload, padding, and trailer bytes of one or more packets. It must be a multiple of 4.}(h is the size of the buffer chunk and specifies room for header, payload, padding, and trailer bytes of one or more packets. It must be a multiple of 4.hjNhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hn**control.HEADER_LENGTH**, TAG and SY are ignored. SYNC is treated as described for single-channel reception.h](j$)}(h**control.HEADER_LENGTH**h]hcontrol.HEADER_LENGTH}(hhhjOhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjOubhU, TAG and SY are ignored. SYNC is treated as described for single-channel reception.}(hU, TAG and SY are ignored. SYNC is treated as described for single-channel reception.hjOhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hWhen a buffer chunk with the **control.INTERRUPT** flag set has been filled entirely, an :c:type:`fw_cdev_event_iso_interrupt_mc` event will be sent.h](hWhen a buffer chunk with the }(hWhen a buffer chunk with the hj9OhhhNhNubj$)}(h**control.INTERRUPT**h]hcontrol.INTERRUPT}(hhhjBOhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj9Oubh' flag set has been filled entirely, an }(h' flag set has been filled entirely, an hj9OhhhNhNubh)}(h(:c:type:`fw_cdev_event_iso_interrupt_mc`h]jr)}(hjWOh]hfw_cdev_event_iso_interrupt_mc}(hhhjYOhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjUOubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_iso_interrupt_mcuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj9Oubh event will be sent.}(h event will be sent.hj9OhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjtOhMhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](jfw_cdev_queue_iso (C struct)c.fw_cdev_queue_isohNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_queue_isoh]j)}(hstruct fw_cdev_queue_isoh](j)}(hjh]hstruct}(hhhjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOhhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMubj)}(h h]h }(hhhjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOhhhjOhMubj)}(hfw_cdev_queue_isoh]j)}(hjOh]hfw_cdev_queue_iso}(hhhjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhjOhhhjOhMubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhjOhhhjOhMubah}(h]jOah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjOhhubj)}(hhh]h)}(h!Queue isochronous packets for I/Oh]h!Queue isochronous packets for I/O}(hjOhjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjOhhubah}(h]h ]h"]h$]h&]uh1jhjOhhhjOhMubeh}(h]h ](jstructeh"]h$]h&]jjjjOjjOjuh1jhhhjWhjhNubj)}(hXi**Definition**:: struct fw_cdev_queue_iso { __u64 packets; __u64 data; __u32 size; __u32 handle; }; **Members** ``packets`` Userspace pointer to an array of :c:type:`fw_cdev_iso_packet` ``data`` Pointer into mmap()'ed payload buffer ``size`` Size of the **packets** array, in bytes ``handle`` Isochronous context handleh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjOubh:}(hj7hjOhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjOubji)}(hbstruct fw_cdev_queue_iso { __u64 packets; __u64 data; __u32 size; __u32 handle; };h]hbstruct fw_cdev_queue_iso { __u64 packets; __u64 data; __u32 size; __u32 handle; };}(hhhjPubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjOubh)}(h **Members**h]j$)}(hj*Ph]hMembers}(hhhj,PhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj(Pubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjOubh)}(hhh](h)}(hJ``packets`` Userspace pointer to an array of :c:type:`fw_cdev_iso_packet` h](h)}(h ``packets``h]jr)}(hjIPh]hpackets}(hhhjKPhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjGPubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjCPubh)}(hhh]h)}(h=Userspace pointer to an array of :c:type:`fw_cdev_iso_packet`h](h!Userspace pointer to an array of }(h!Userspace pointer to an array of hjbPhhhNhNubh)}(h:c:type:`fw_cdev_iso_packet`h]jr)}(hjmPh]hfw_cdev_iso_packet}(hhhjoPhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjkPubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_iso_packetuh1hhj^PhMhjbPubeh}(h]h ]h"]h$]h&]uh1hhj^PhMhj_Pubah}(h]h ]h"]h$]h&]uh1hhjCPubeh}(h]h ]h"]h$]h&]uh1hhj^PhMhj@Pubh)}(h/``data`` Pointer into mmap()'ed payload buffer h](h)}(h``data``h]jr)}(hjPh]hdata}(hhhjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjPubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjPubh)}(hhh]h)}(h%Pointer into mmap()'ed payload bufferh]h'Pointer into mmap()’ed payload buffer}(hjPhjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhMhjPubah}(h]h ]h"]h$]h&]uh1hhjPubeh}(h]h ]h"]h$]h&]uh1hhjPhMhj@Pubh)}(h1``size`` Size of the **packets** array, in bytes h](h)}(h``size``h]jr)}(hjPh]hsize}(hhhjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjPubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjPubh)}(hhh]h)}(h'Size of the **packets** array, in bytesh](h Size of the }(h Size of the hjPhhhNhNubj$)}(h **packets**h]hpackets}(hhhjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjPubh array, in bytes}(h array, in byteshjPhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjPhMhjPubah}(h]h ]h"]h$]h&]uh1hhjPubeh}(h]h ]h"]h$]h&]uh1hhjPhMhj@Pubh)}(h%``handle`` Isochronous context handleh](h)}(h ``handle``h]jr)}(hj(Qh]hhandle}(hhhj*QhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj&Qubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj"Qubh)}(hhh]h)}(hIsochronous context handleh]hIsochronous context handle}(hjCQhjAQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj>Qubah}(h]h ]h"]h$]h&]uh1hhj"Qubeh}(h]h ]h"]h$]h&]uh1hhj=QhMhj@Pubeh}(h]h ]h"]h$]h&]uh1hhjOubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hjkQh]h Description}(hhhjmQhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjiQubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hX|Queue a number of isochronous packets for reception or transmission. This ioctl takes a pointer to an array of :c:type:`fw_cdev_iso_packet` structs, which describe how to transmit from or receive into a contiguous region of a mmap()'ed payload buffer. As part of transmit packet descriptors, a series of headers can be supplied, which will be prepended to the payload during DMA.h](hoQueue a number of isochronous packets for reception or transmission. This ioctl takes a pointer to an array of }(hoQueue a number of isochronous packets for reception or transmission. This ioctl takes a pointer to an array of hjQhhhNhNubh)}(h:c:type:`fw_cdev_iso_packet`h]jr)}(hjQh]hfw_cdev_iso_packet}(hhhjQhhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjQubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_iso_packetuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjQubh structs, which describe how to transmit from or receive into a contiguous region of a mmap()’ed payload buffer. As part of transmit packet descriptors, a series of headers can be supplied, which will be prepended to the payload during DMA.}(h structs, which describe how to transmit from or receive into a contiguous region of a mmap()'ed payload buffer. As part of transmit packet descriptors, a series of headers can be supplied, which will be prepended to the payload during DMA.hjQhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjQhMhjWhhubh)}(hThe kernel may or may not queue all packets, but will write back updated values of the **packets**, **data** and **size** fields, so the ioctl can be resubmitted easily.h](hWThe kernel may or may not queue all packets, but will write back updated values of the }(hWThe kernel may or may not queue all packets, but will write back updated values of the hjQhhhNhNubj$)}(h **packets**h]hpackets}(hhhjQhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjQubh, }(h, hjQhhhNhNubj$)}(h**data**h]hdata}(hhhjQhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjQubh and }(h and hjQhhhNhNubj$)}(h**size**h]hsize}(hhhjQhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjQubh0 fields, so the ioctl can be resubmitted easily.}(h0 fields, so the ioctl can be resubmitted easily.hjQhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hiIn case of a multichannel receive context, **data** must be quadlet-aligned relative to the buffer start.h](h+In case of a multichannel receive context, }(h+In case of a multichannel receive context, hjQhhhNhNubj$)}(h**data**h]hdata}(hhhjRhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjQubh6 must be quadlet-aligned relative to the buffer start.}(h6 must be quadlet-aligned relative to the buffer start.hjQhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](jfw_cdev_start_iso (C struct)c.fw_cdev_start_isohNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_start_isoh]j)}(hstruct fw_cdev_start_isoh](j)}(hjh]hstruct}(hhhj:RhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6Rhhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMubj)}(h h]h }(hhhjHRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6RhhhjGRhMubj)}(hfw_cdev_start_isoh]j)}(hj4Rh]hfw_cdev_start_iso}(hhhjZRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVRubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj6RhhhjGRhMubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj2RhhhjGRhMubah}(h]j-Rah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj/Rhhubj)}(hhh]h)}(h.Start an isochronous transmission or receptionh]h.Start an isochronous transmission or reception}(hjRhj}RhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjzRhhubah}(h]h ]h"]h$]h&]uh1jhj/RhhhjGRhMubeh}(h]h ](jstructeh"]h$]h&]jjjjRjjRjuh1jhhhjWhjhNubj)}(hX**Definition**:: struct fw_cdev_start_iso { __s32 cycle; __u32 sync; __u32 tags; __u32 handle; }; **Members** ``cycle`` Cycle in which to start I/O. If **cycle** is greater than or equal to 0, the I/O will start on that cycle. ``sync`` Determines the value to wait for receive packets that have the ``FW_CDEV_ISO_SYNC`` bit set ``tags`` Tag filter bit mask. Only valid for isochronous reception. Determines the tag values for which packets will be accepted. Use FW_CDEV_ISO_CONTEXT_MATCH_* macros to set **tags**. ``handle`` Isochronous context handle within which to transmit or receiveh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjRhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjRubh:}(hj7hjRhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjRubji)}(h`struct fw_cdev_start_iso { __s32 cycle; __u32 sync; __u32 tags; __u32 handle; };h]h`struct fw_cdev_start_iso { __s32 cycle; __u32 sync; __u32 tags; __u32 handle; };}(hhhjRubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjRubh)}(h **Members**h]j$)}(hjRh]hMembers}(hhhjRhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjRubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjRubh)}(hhh](h)}(hv``cycle`` Cycle in which to start I/O. If **cycle** is greater than or equal to 0, the I/O will start on that cycle. h](h)}(h ``cycle``h]jr)}(hjRh]hcycle}(hhhjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjRubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjRubh)}(hhh]h)}(hkCycle in which to start I/O. If **cycle** is greater than or equal to 0, the I/O will start on that cycle.h](h!Cycle in which to start I/O. If }(h!Cycle in which to start I/O. If hjShhhNhNubj$)}(h **cycle**h]hcycle}(hhhj ShhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjSubhA is greater than or equal to 0, the I/O will start on that cycle.}(hA is greater than or equal to 0, the I/O will start on that cycle.hjShhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjSubah}(h]h ]h"]h$]h&]uh1hhjRubeh}(h]h ]h"]h$]h&]uh1hhjRhMhjRubh)}(he``sync`` Determines the value to wait for receive packets that have the ``FW_CDEV_ISO_SYNC`` bit set h](h)}(h``sync``h]jr)}(hj8Sh]hsync}(hhhj:ShhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj6Subah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj2Subh)}(hhh]h)}(h[Determines the value to wait for receive packets that have the ``FW_CDEV_ISO_SYNC`` bit seth](h?Determines the value to wait for receive packets that have the }(h?Determines the value to wait for receive packets that have the hjQShhhNhNubjr)}(h``FW_CDEV_ISO_SYNC``h]hFW_CDEV_ISO_SYNC}(hhhjZShhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjQSubh bit set}(h bit sethjQShhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjNSubah}(h]h ]h"]h$]h&]uh1hhj2Subeh}(h]h ]h"]h$]h&]uh1hhjMShMhjRubh)}(h``tags`` Tag filter bit mask. Only valid for isochronous reception. Determines the tag values for which packets will be accepted. Use FW_CDEV_ISO_CONTEXT_MATCH_* macros to set **tags**. h](h)}(h``tags``h]jr)}(hjSh]htags}(hhhjShhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjSubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjSubh)}(hhh]h)}(hTag filter bit mask. Only valid for isochronous reception. Determines the tag values for which packets will be accepted. Use FW_CDEV_ISO_CONTEXT_MATCH_* macros to set **tags**.h](hTag filter bit mask. Only valid for isochronous reception. Determines the tag values for which packets will be accepted. Use FW_CDEV_ISO_CONTEXT_MATCH_* macros to set }(hTag filter bit mask. Only valid for isochronous reception. Determines the tag values for which packets will be accepted. Use FW_CDEV_ISO_CONTEXT_MATCH_* macros to set hjShhhNhNubj$)}(h**tags**h]htags}(hhhjShhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjSubh.}(hjhjShhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjSubah}(h]h ]h"]h$]h&]uh1hhjSubeh}(h]h ]h"]h$]h&]uh1hhjShMhjRubh)}(hI``handle`` Isochronous context handle within which to transmit or receiveh](h)}(h ``handle``h]jr)}(hjSh]hhandle}(hhhjShhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjSubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjSubh)}(hhh]h)}(h>Isochronous context handle within which to transmit or receiveh]h>Isochronous context handle within which to transmit or receive}(hjShjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjSubah}(h]h ]h"]h$]h&]uh1hhjSubeh}(h]h ]h"]h$]h&]uh1hhjShMhjRubeh}(h]h ]h"]h$]h&]uh1hhjRubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubj})}(hhh]h}(h]h ]h"]h$]h&]entries](jfw_cdev_stop_iso (C struct)c.fw_cdev_stop_isohNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_stop_isoh]j)}(hstruct fw_cdev_stop_isoh](j)}(hjh]hstruct}(hhhj-ThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)Thhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMubj)}(h h]h }(hhhj;ThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)Thhhj:ThMubj)}(hfw_cdev_stop_isoh]j)}(hj'Th]hfw_cdev_stop_iso}(hhhjMThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjITubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj)Thhhj:ThMubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj%Thhhj:ThMubah}(h]j Tah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj"Thhubj)}(hhh]h)}(h-Stop an isochronous transmission or receptionh]h-Stop an isochronous transmission or reception}(hjrThjpThhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjmThhubah}(h]h ]h"]h$]h&]uh1jhj"Thhhj:ThMubeh}(h]h ](jstructeh"]h$]h&]jjjjTjjTjuh1jhhhjWhjhNubj)}(h**Definition**:: struct fw_cdev_stop_iso { __u32 handle; }; **Members** ``handle`` Handle of isochronous context to stoph](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjThhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjTubh:}(hj7hjThhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjTubji)}(h.struct fw_cdev_stop_iso { __u32 handle; };h]h.struct fw_cdev_stop_iso { __u32 handle; };}(hhhjTubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjTubh)}(h **Members**h]j$)}(hjTh]hMembers}(hhhjThhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjTubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjTubh)}(hhh]h)}(h0``handle`` Handle of isochronous context to stoph](h)}(h ``handle``h]jr)}(hjTh]hhandle}(hhhjThhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjTubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjTubh)}(hhh]h)}(h%Handle of isochronous context to stoph]h%Handle of isochronous context to stop}(hjThjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjTubah}(h]h ]h"]h$]h&]uh1hhjTubeh}(h]h ]h"]h$]h&]uh1hhjThMhjTubah}(h]h ]h"]h$]h&]uh1hhjTubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubj})}(hhh]h}(h]h ]h"]h$]h&]entries](jfw_cdev_flush_iso (C struct)c.fw_cdev_flush_isohNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_flush_isoh]j)}(hstruct fw_cdev_flush_isoh](j)}(hjh]hstruct}(hhhj7UhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3Uhhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMubj)}(h h]h }(hhhjEUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3UhhhjDUhMubj)}(hfw_cdev_flush_isoh]j)}(hj1Uh]hfw_cdev_flush_iso}(hhhjWUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSUubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj3UhhhjDUhMubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj/UhhhjDUhMubah}(h]j*Uah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj,Uhhubj)}(hhh]h)}(hflush completed iso packetsh]hflush completed iso packets}(hj|UhjzUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjwUhhubah}(h]h ]h"]h$]h&]uh1jhj,UhhhjDUhMubeh}(h]h ](jstructeh"]h$]h&]jjjjUjjUjuh1jhhhjWhjhNubj)}(h**Definition**:: struct fw_cdev_flush_iso { __u32 handle; }; **Members** ``handle`` handle of isochronous context to flushh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjUubh:}(hj7hjUhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjUubji)}(h/struct fw_cdev_flush_iso { __u32 handle; };h]h/struct fw_cdev_flush_iso { __u32 handle; };}(hhhjUubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjUubh)}(h **Members**h]j$)}(hjUh]hMembers}(hhhjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjUubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjUubh)}(hhh]h)}(h1``handle`` handle of isochronous context to flushh](h)}(h ``handle``h]jr)}(hjUh]hhandle}(hhhjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjUubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjUubh)}(hhh]h)}(h&handle of isochronous context to flushh]h&handle of isochronous context to flush}(hjVhjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjUubah}(h]h ]h"]h$]h&]uh1hhjUubeh}(h]h ]h"]h$]h&]uh1hhjUhMhjUubah}(h]h ]h"]h$]h&]uh1hhjUubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hj*Vh]h Description}(hhhj,VhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj(Vubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hoFor ``FW_CDEV_ISO_CONTEXT_TRANSMIT`` or ``FW_CDEV_ISO_CONTEXT_RECEIVE`` contexts, report any completed packets.h](hFor }(hFor hj@VhhhNhNubjr)}(h ``FW_CDEV_ISO_CONTEXT_TRANSMIT``h]hFW_CDEV_ISO_CONTEXT_TRANSMIT}(hhhjIVhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj@Vubh or }(h or hj@VhhhNhNubjr)}(h``FW_CDEV_ISO_CONTEXT_RECEIVE``h]hFW_CDEV_ISO_CONTEXT_RECEIVE}(hhhj\VhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj@Vubh( contexts, report any completed packets.}(h( contexts, report any completed packets.hj@VhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hFor ``FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL`` contexts, report the current offset in the receive buffer, if it has changed; this is typically in the middle of some buffer chunk.h](hFor }(hFor hjvVhhhNhNubjr)}(h,``FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL``h]h(FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL}(hhhjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjvVubh contexts, report the current offset in the receive buffer, if it has changed; this is typically in the middle of some buffer chunk.}(h contexts, report the current offset in the receive buffer, if it has changed; this is typically in the middle of some buffer chunk.hjvVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(hAny ``FW_CDEV_EVENT_ISO_INTERRUPT`` or ``FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL`` events generated by this ioctl are sent synchronously, i.e., are available for reading from the file descriptor when this ioctl returns.h](hAny }(hAny hjVhhhNhNubjr)}(h``FW_CDEV_EVENT_ISO_INTERRUPT``h]hFW_CDEV_EVENT_ISO_INTERRUPT}(hhhjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjVubh or }(h or hjVhhhNhNubjr)}(h,``FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL``h]h(FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL}(hhhjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjVubh events generated by this ioctl are sent synchronously, i.e., are available for reading from the file descriptor when this ioctl returns.}(h events generated by this ioctl are sent synchronously, i.e., are available for reading from the file descriptor when this ioctl returns.hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j"fw_cdev_get_cycle_timer (C struct)c.fw_cdev_get_cycle_timerhNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_get_cycle_timerh]j)}(hstruct fw_cdev_get_cycle_timerh](j)}(hjh]hstruct}(hhhjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMubj)}(h h]h }(hhhjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhjVhMubj)}(hfw_cdev_get_cycle_timerh]j)}(hjVh]hfw_cdev_get_cycle_timer}(hhhjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhjVhhhjVhMubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhjVhhhjVhMubah}(h]jVah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjVhhubj)}(hhh]h)}(hread cycle timer registerh]hread cycle timer register}(hj-Whj+WhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj(Whhubah}(h]h ]h"]h$]h&]uh1jhjVhhhjVhMubeh}(h]h ](jstructeh"]h$]h&]jjjjCWjjCWjuh1jhhhjWhjhNubj)}(h**Definition**:: struct fw_cdev_get_cycle_timer { __u64 local_time; __u32 cycle_timer; }; **Members** ``local_time`` system time, in microseconds since the Epoch ``cycle_timer`` Cycle Time register contentsh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjOWhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjKWubh:}(hj7hjKWhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjGWubji)}(hPstruct fw_cdev_get_cycle_timer { __u64 local_time; __u32 cycle_timer; };h]hPstruct fw_cdev_get_cycle_timer { __u64 local_time; __u32 cycle_timer; };}(hhhjhWubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjGWubh)}(h **Members**h]j$)}(hjyWh]hMembers}(hhhj{WhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjwWubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM hjGWubh)}(hhh](h)}(h<``local_time`` system time, in microseconds since the Epoch h](h)}(h``local_time``h]jr)}(hjWh]h local_time}(hhhjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjWubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWubh)}(hhh]h)}(h,system time, in microseconds since the Epochh]h,system time, in microseconds since the Epoch}(hjWhjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhMhjWubah}(h]h ]h"]h$]h&]uh1hhjWubeh}(h]h ]h"]h$]h&]uh1hhjWhMhjWubh)}(h,``cycle_timer`` Cycle Time register contentsh](h)}(h``cycle_timer``h]jr)}(hjWh]h cycle_timer}(hhhjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjWubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWubh)}(hhh]h)}(hCycle Time register contentsh]hCycle Time register contents}(hjWhjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWubah}(h]h ]h"]h$]h&]uh1hhjWubeh}(h]h ]h"]h$]h&]uh1hhjWhMhjWubeh}(h]h ]h"]h$]h&]uh1hhjGWubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hjXh]h Description}(hhhjXhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjXubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(htSame as ``FW_CDEV_IOC_GET_CYCLE_TIMER2``, but fixed to use ``CLOCK_REALTIME`` and only with microseconds resolution.h](hSame as }(hSame as hj*XhhhNhNubjr)}(h ``FW_CDEV_IOC_GET_CYCLE_TIMER2``h]hFW_CDEV_IOC_GET_CYCLE_TIMER2}(hhhj3XhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj*Xubh, but fixed to use }(h, but fixed to use hj*XhhhNhNubjr)}(h``CLOCK_REALTIME``h]hCLOCK_REALTIME}(hhhjFXhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj*Xubh' and only with microseconds resolution.}(h' and only with microseconds resolution.hj*XhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubh)}(h}In version 1 and 2 of the ABI, this ioctl returned unreliable (non- monotonic) **cycle_timer** values on certain controllers.h](hOIn version 1 and 2 of the ABI, this ioctl returned unreliable (non- monotonic) }(hOIn version 1 and 2 of the ABI, this ioctl returned unreliable (non- monotonic) hj`XhhhNhNubj$)}(h**cycle_timer**h]h cycle_timer}(hhhjiXhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj`Xubh values on certain controllers.}(h values on certain controllers.hj`XhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j#fw_cdev_get_cycle_timer2 (C struct)c.fw_cdev_get_cycle_timer2hNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_get_cycle_timer2h]j)}(hstruct fw_cdev_get_cycle_timer2h](j)}(hjh]hstruct}(hhhjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXhhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMubj)}(h h]h }(hhhjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXhhhjXhMubj)}(hfw_cdev_get_cycle_timer2h]j)}(hjXh]hfw_cdev_get_cycle_timer2}(hhhjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhjXhhhjXhMubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhjXhhhjXhMubah}(h]jXah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM hjXhhubj)}(hhh]h)}(hread cycle timer registerh]hread cycle timer register}(hjXhjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjXhhubah}(h]h ]h"]h$]h&]uh1jhjXhhhjXhMubeh}(h]h ](jstructeh"]h$]h&]jjjjXjjXjuh1jhhhjWhjhNubj)}(hXs**Definition**:: struct fw_cdev_get_cycle_timer2 { __s64 tv_sec; __s32 tv_nsec; __s32 clk_id; __u32 cycle_timer; }; **Members** ``tv_sec`` system time, seconds ``tv_nsec`` system time, sub-seconds part in nanoseconds ``clk_id`` input parameter, clock from which to get the system time ``cycle_timer`` Cycle Time register contentsh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjXubh:}(hj7hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjXubji)}(hrstruct fw_cdev_get_cycle_timer2 { __s64 tv_sec; __s32 tv_nsec; __s32 clk_id; __u32 cycle_timer; };h]hrstruct fw_cdev_get_cycle_timer2 { __s64 tv_sec; __s32 tv_nsec; __s32 clk_id; __u32 cycle_timer; };}(hhhjYubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjXubh)}(h **Members**h]j$)}(hj-Yh]hMembers}(hhhj/YhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj+Yubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjXubh)}(hhh](h)}(h ``tv_sec`` system time, seconds h](h)}(h ``tv_sec``h]jr)}(hjLYh]htv_sec}(hhhjNYhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjJYubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjFYubh)}(hhh]h)}(hsystem time, secondsh]hsystem time, seconds}(hjgYhjeYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjaYhMhjbYubah}(h]h ]h"]h$]h&]uh1hhjFYubeh}(h]h ]h"]h$]h&]uh1hhjaYhMhjCYubh)}(h9``tv_nsec`` system time, sub-seconds part in nanoseconds h](h)}(h ``tv_nsec``h]jr)}(hjYh]htv_nsec}(hhhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjYubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjYubh)}(hhh]h)}(h,system time, sub-seconds part in nanosecondsh]h,system time, sub-seconds part in nanoseconds}(hjYhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhMhjYubah}(h]h ]h"]h$]h&]uh1hhjYubeh}(h]h ]h"]h$]h&]uh1hhjYhMhjCYubh)}(hD``clk_id`` input parameter, clock from which to get the system time h](h)}(h ``clk_id``h]jr)}(hjYh]hclk_id}(hhhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjYubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjYubh)}(hhh]h)}(h8input parameter, clock from which to get the system timeh]h8input parameter, clock from which to get the system time}(hjYhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhMhjYubah}(h]h ]h"]h$]h&]uh1hhjYubeh}(h]h ]h"]h$]h&]uh1hhjYhMhjCYubh)}(h,``cycle_timer`` Cycle Time register contentsh](h)}(h``cycle_timer``h]jr)}(hjYh]h cycle_timer}(hhhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjYubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjYubh)}(hhh]h)}(hCycle Time register contentsh]hCycle Time register contents}(hjZhjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhj Zubah}(h]h ]h"]h$]h&]uh1hhjYubeh}(h]h ]h"]h$]h&]uh1hhj ZhMhjCYubeh}(h]h ]h"]h$]h&]uh1hhjXubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hj:Zh]h Description}(hhhj``bandwidth`` Isochronous bandwidth units to be (de)allocated h](h)}(h ``bandwidth``h]jr)}(hj5\h]h bandwidth}(hhhj7\hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj3\ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM-hj/\ubh)}(hhh]h)}(h/Isochronous bandwidth units to be (de)allocatedh]h/Isochronous bandwidth units to be (de)allocated}(hjP\hjN\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJ\hM-hjK\ubah}(h]h ]h"]h$]h&]uh1hhj/\ubeh}(h]h ]h"]h$]h&]uh1hhjJ\hM-hj[ubh)}(h``handle`` Handle to the allocation, written by the kernel (only valid in case of ``FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE`` ioctls)h](h)}(h ``handle``h]jr)}(hjn\h]hhandle}(hhhjp\hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjl\ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM.hjh\ubh)}(hhh]h)}(htHandle to the allocation, written by the kernel (only valid in case of ``FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE`` ioctls)h](hGHandle to the allocation, written by the kernel (only valid in case of }(hGHandle to the allocation, written by the kernel (only valid in case of hj\hhhNhNubjr)}(h%``FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE``h]h!FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE}(hhhj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj\ubh ioctls)}(h ioctls)hj\hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj\hM.hj\ubah}(h]h ]h"]h$]h&]uh1hhjh\ubeh}(h]h ]h"]h$]h&]uh1hhj\hM.hj[ubeh}(h]h ]h"]h$]h&]uh1hhjr[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hj\h]h Description}(hhhj\hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj\ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM2hjWhhubh)}(hX{The ``FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE`` ioctl initiates allocation of an isochronous channel and/or of isochronous bandwidth at the isochronous resource manager (IRM). Only one of the channels specified in **channels** is allocated. An ``FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED`` is sent after communication with the IRM, indicating success or failure in the event data. The kernel will automatically reallocate the resources after bus resets. Should a reallocation fail, an ``FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED`` event will be sent. The kernel will also automatically deallocate the resources when the file descriptor is closed.h](hThe }(hThe hj\hhhNhNubjr)}(h%``FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE``h]h!FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE}(hhhj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj\ubh ioctl initiates allocation of an isochronous channel and/or of isochronous bandwidth at the isochronous resource manager (IRM). Only one of the channels specified in }(h ioctl initiates allocation of an isochronous channel and/or of isochronous bandwidth at the isochronous resource manager (IRM). Only one of the channels specified in hj\hhhNhNubj$)}(h **channels**h]hchannels}(hhhj\hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj\ubh is allocated. An }(h is allocated. An hj\hhhNhNubjr)}(h(``FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED``h]h$FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED}(hhhj ]hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj\ubh is sent after communication with the IRM, indicating success or failure in the event data. The kernel will automatically reallocate the resources after bus resets. Should a reallocation fail, an }(h is sent after communication with the IRM, indicating success or failure in the event data. The kernel will automatically reallocate the resources after bus resets. Should a reallocation fail, an hj\hhhNhNubjr)}(h*``FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED``h]h&FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED}(hhhj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj\ubhu event will be sent. The kernel will also automatically deallocate the resources when the file descriptor is closed.}(hu event will be sent. The kernel will also automatically deallocate the resources when the file descriptor is closed.hj\hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM0hjWhhubh)}(hThe ``FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE`` ioctl can be used to initiate deallocation of resources which were allocated as described above. An ``FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED`` event concludes this operation.h](hThe }(hThe hj6]hhhNhNubjr)}(h'``FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE``h]h#FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE}(hhhj?]hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj6]ubhe ioctl can be used to initiate deallocation of resources which were allocated as described above. An }(he ioctl can be used to initiate deallocation of resources which were allocated as described above. An hj6]hhhNhNubjr)}(h*``FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED``h]h&FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED}(hhhjR]hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj6]ubh event concludes this operation.}(h event concludes this operation.hj6]hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM:hjWhhubh)}(hThe ``FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE`` ioctl is a variant of allocation without automatic re- or deallocation. An ``FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED`` event concludes this operation, indicating success or failure in its data.h](hThe }(hThe hjl]hhhNhNubjr)}(h*``FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE``h]h&FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE}(hhhju]hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjl]ubhL ioctl is a variant of allocation without automatic re- or deallocation. An }(hL ioctl is a variant of allocation without automatic re- or deallocation. An hjl]hhhNhNubjr)}(h(``FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED``h]h$FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED}(hhhj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjl]ubhK event concludes this operation, indicating success or failure in its data.}(hK event concludes this operation, indicating success or failure in its data.hjl]hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM>hjWhhubh)}(hThe ``FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE`` ioctl works like ``FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE`` except that resources are freed instead of allocated. An ``FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED`` event concludes this operation.h](hThe }(hThe hj]hhhNhNubjr)}(h,``FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE``h]h(FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE}(hhhj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj]ubh ioctl works like }(h ioctl works like hj]hhhNhNubjr)}(h*``FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE``h]h&FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE}(hhhj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj]ubh: except that resources are freed instead of allocated. An }(h: except that resources are freed instead of allocated. An hj]hhhNhNubjr)}(h*``FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED``h]h&FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED}(hhhj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj]ubh event concludes this operation.}(h event concludes this operation.hj]hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMChjWhhubh)}(hTo summarize, ``FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE`` allocates iso resources for the lifetime of the fd or **handle**. In contrast, ``FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE`` allocates iso resources for the duration of a bus generation.h](hTo summarize, }(hTo summarize, hj]hhhNhNubjr)}(h%``FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE``h]h!FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE}(hhhj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj]ubh7 allocates iso resources for the lifetime of the fd or }(h7 allocates iso resources for the lifetime of the fd or hj]hhhNhNubj$)}(h **handle**h]hhandle}(hhhj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj]ubh. In contrast, }(h. In contrast, hj]hhhNhNubjr)}(h*``FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE``h]h&FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE}(hhhj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj]ubh> allocates iso resources for the duration of a bus generation.}(h> allocates iso resources for the duration of a bus generation.hj]hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMHhjWhhubh)}(h**channels** is a host-endian bitfield with the least significant bit representing channel 0 and the most significant bit representing channel 63: 1ULL << c for each channel c that is a candidate for (de)allocation.h](j$)}(h **channels**h]hchannels}(hhhj8^hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj4^ubh is a host-endian bitfield with the least significant bit representing channel 0 and the most significant bit representing channel 63: 1ULL << c for each channel c that is a candidate for (de)allocation.}(h is a host-endian bitfield with the least significant bit representing channel 0 and the most significant bit representing channel 63: 1ULL << c for each channel c that is a candidate for (de)allocation.hj4^hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMMhjWhhubh)}(h**bandwidth** is expressed in bandwidth allocation units, i.e. the time to send one quadlet of data (payload or header data) at speed S1600.h](j$)}(h **bandwidth**h]h bandwidth}(hhhjV^hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjR^ubh is expressed in bandwidth allocation units, i.e. the time to send one quadlet of data (payload or header data) at speed S1600.}(h is expressed in bandwidth allocation units, i.e. the time to send one quadlet of data (payload or header data) at speed S1600.hjR^hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMQhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j%fw_cdev_send_stream_packet (C struct)c.fw_cdev_send_stream_packethNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_send_stream_packeth]j)}(h!struct fw_cdev_send_stream_packeth](j)}(hjh]hstruct}(hhhj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM]ubj)}(h h]h }(hhhj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^hhhj^hM]ubj)}(hfw_cdev_send_stream_packeth]j)}(hj^h]hfw_cdev_send_stream_packet}(hhhj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj^hhhj^hM]ubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj^hhhj^hM]ubah}(h]j|^ah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMWhj~^hhubj)}(hhh]h)}(h"send an asynchronous stream packeth]h"send an asynchronous stream packet}(hj^hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM\hj^hhubah}(h]h ]h"]h$]h&]uh1jhj~^hhhj^hM]ubeh}(h]h ](jstructeh"]h$]h&]jjjj^jj^juh1jhhhjWhjhNubj)}(hXH**Definition**:: struct fw_cdev_send_stream_packet { __u32 length; __u32 tag; __u32 channel; __u32 sy; __u64 closure; __u64 data; __u32 generation; __u32 speed; }; **Members** ``length`` Length of outgoing payload, in bytes ``tag`` Data format tag ``channel`` Isochronous channel to transmit to ``sy`` Synchronization code ``closure`` Passed back to userspace in the response event ``data`` Userspace pointer to payload ``generation`` The bus generation where packet is valid ``speed`` Speed to transmit ath](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj^ubh:}(hj7hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM`hj^ubji)}(hstruct fw_cdev_send_stream_packet { __u32 length; __u32 tag; __u32 channel; __u32 sy; __u64 closure; __u64 data; __u32 generation; __u32 speed; };h]hstruct fw_cdev_send_stream_packet { __u32 length; __u32 tag; __u32 channel; __u32 sy; __u64 closure; __u64 data; __u32 generation; __u32 speed; };}(hhhj _ubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMbhj^ubh)}(h **Members**h]j$)}(hj_h]hMembers}(hhhj_hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj_ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMmhj^ubh)}(hhh](h)}(h0``length`` Length of outgoing payload, in bytes h](h)}(h ``length``h]jr)}(hj9_h]hlength}(hhhj;_hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj7_ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM^hj3_ubh)}(hhh]h)}(h$Length of outgoing payload, in bytesh]h$Length of outgoing payload, in bytes}(hjT_hjR_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjN_hM^hjO_ubah}(h]h ]h"]h$]h&]uh1hhj3_ubeh}(h]h ]h"]h$]h&]uh1hhjN_hM^hj0_ubh)}(h``tag`` Data format tag h](h)}(h``tag``h]jr)}(hjr_h]htag}(hhhjt_hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjp_ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM_hjl_ubh)}(hhh]h)}(hData format tagh]hData format tag}(hj_hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hM_hj_ubah}(h]h ]h"]h$]h&]uh1hhjl_ubeh}(h]h ]h"]h$]h&]uh1hhj_hM_hj0_ubh)}(h/``channel`` Isochronous channel to transmit to h](h)}(h ``channel``h]jr)}(hj_h]hchannel}(hhhj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj_ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM`hj_ubh)}(hhh]h)}(h"Isochronous channel to transmit toh]h"Isochronous channel to transmit to}(hj_hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hM`hj_ubah}(h]h ]h"]h$]h&]uh1hhj_ubeh}(h]h ]h"]h$]h&]uh1hhj_hM`hj0_ubh)}(h``sy`` Synchronization code h](h)}(h``sy``h]jr)}(hj_h]hsy}(hhhj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj_ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMahj_ubh)}(hhh]h)}(hSynchronization codeh]hSynchronization code}(hj_hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hMahj_ubah}(h]h ]h"]h$]h&]uh1hhj_ubeh}(h]h ]h"]h$]h&]uh1hhj_hMahj0_ubh)}(h;``closure`` Passed back to userspace in the response event h](h)}(h ``closure``h]jr)}(hj`h]hclosure}(hhhj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj`ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMbhj`ubh)}(hhh]h)}(h.Passed back to userspace in the response eventh]h.Passed back to userspace in the response event}(hj8`hj6`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2`hMbhj3`ubah}(h]h ]h"]h$]h&]uh1hhj`ubeh}(h]h ]h"]h$]h&]uh1hhj2`hMbhj0_ubh)}(h&``data`` Userspace pointer to payload h](h)}(h``data``h]jr)}(hjV`h]hdata}(hhhjX`hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjT`ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMchjP`ubh)}(hhh]h)}(hUserspace pointer to payloadh]hUserspace pointer to payload}(hjq`hjo`hhhNhNubah}(h]h ]h"]+h$]h&]uh1hhjk`hMchjl`ubah}(h]h ]h"]h$]h&]uh1hhjP`ubeh}(h]h ]h"]h$]h&]uh1hhjk`hMchj0_ubh)}(h8``generation`` The bus generation where packet is valid h](h)}(h``generation``h]jr)}(hj`h]h generation}(hhhj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj`ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMdhj`ubh)}(hhh]h)}(h(The bus generation where packet is validh]h(The bus generation where packet is valid}(hj`hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hMdhj`ubah}(h]h ]h"]h$]h&]uh1hhj`ubeh}(h]h ]h"]h$]h&]uh1hhj`hMdhj0_ubh)}(h``speed`` Speed to transmit ath](h)}(h ``speed``h]jr)}(hj`h]hspeed}(hhhj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj`ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMdhj`ubh)}(hhh]h)}(hSpeed to transmit ath]hSpeed to transmit at}(hj`hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMehj`ubah}(h]h ]h"]h$]h&]uh1hhj`ubeh}(h]h ]h"]h$]h&]uh1hhj`hMdhj0_ubeh}(h]h ]h"]h$]h&]uh1hhj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hj ah]h Description}(hhhj ahhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj aubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhhjWhhubh)}(hX0The ``FW_CDEV_IOC_SEND_STREAM_PACKET`` ioctl sends an asynchronous stream packet to every device which is listening to the specified channel. The kernel writes either :c:type:`fw_cdev_event_response` event or :c:type:`fw_cdev_event_response2` event which indicates success or failure of the transmission.h](hThe }(hThe hj!ahhhNhNubjr)}(h"``FW_CDEV_IOC_SEND_STREAM_PACKET``h]hFW_CDEV_IOC_SEND_STREAM_PACKET}(hhhj*ahhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj!aubh ioctl sends an asynchronous stream packet to every device which is listening to the specified channel. The kernel writes either }(h ioctl sends an asynchronous stream packet to every device which is listening to the specified channel. The kernel writes either hj!ahhhNhNubh)}(h :c:type:`fw_cdev_event_response`h]jr)}(hj?ah]hfw_cdev_event_response}(hhhjAahhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhj=aubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_responseuh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMfhj!aubh event or }(h event or hj!ahhhNhNubh)}(h!:c:type:`fw_cdev_event_response2`h]jr)}(hjdah]hfw_cdev_event_response2}(hhhjfahhhNhNubah}(h]h ](jTjc-typeeh"]h$]h&]uh1jqhjbaubah}(h]h ]h"]h$]h&]refdocj` refdomainjreftypetype refexplicitrefwarnjfjjjnfw_cdev_event_response2uh1hhj\ahMfhj!aubh> event which indicates success or failure of the transmission.}(h> event which indicates success or failure of the transmission.hj!ahhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj\ahMfhjWhhubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j"fw_cdev_send_phy_packet (C struct)c.fw_cdev_send_phy_packethNtauh1j|hjWhhhjhNubj)}(hhh](j)}(hfw_cdev_send_phy_packeth]j)}(hstruct fw_cdev_send_phy_packeth](j)}(hjh]hstruct}(hhhjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjahhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMwubj)}(h h]h }(hhhjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjahhhjahMwubj)}(hfw_cdev_send_phy_packeth]j)}(hjah]hfw_cdev_send_phy_packet}(hhhjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhjahhhjahMwubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhjahhhjahMwubah}(h]jaah ](jjeh"]h$]h&]juh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMmhjahhubj)}(hhh]h)}(hsend a PHY packeth]hsend a PHY packet}(hjahjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMvhjahhubah}(h]h ]h"]h$]h&]uh1jhjahhhjahMwubeh}(h]h ](jstructeh"]h$]h&]jjjjbjjbjuh1jhhhjWhjhNubj)}(hX?**Definition**:: struct fw_cdev_send_phy_packet { __u64 closure; __u32 data[2]; __u32 generation; }; **Members** ``closure`` Passed back to userspace in the PHY-packet-sent event ``data`` First and second quadlet of the PHY packet ``generation`` The bus generation where packet is validh](h)}(h**Definition**::h](j$)}(h**Definition**h]h Definition}(hhhj bhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjbubh:}(hj7hjbhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMzhjbubji)}(h_struct fw_cdev_send_phy_packet { __u64 closure; __u32 data[2]; __u32 generation; };h]h_struct fw_cdev_send_phy_packet { __u64 closure; __u32 data[2]; __u32 generation; };}(hhhj%bubah}(h]h ]h"]h$]h&]jzj{uh1jhhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM|hjbubh)}(h **Members**h]j$)}(hj6bh]hMembers}(hhhj8bhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj4bubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMhjbubh)}(hhh](h)}(hB``closure`` Passed back to userspace in the PHY-packet-sent event h](h)}(h ``closure``h]jr)}(hjUbh]hclosure}(hhhjWbhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjSbubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMxhjObubh)}(hhh]h)}(h5Passed back to userspace in the PHY-packet-sent eventh]h5Passed back to userspace in the PHY-packet-sent event}(hjpbhjnbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjbhMxhjkbubah}(h]h ]h"]h$]h&]uh1hhjObubeh}(h]h ]h"]h$]h&]uh1hhjjbhMxhjLbubh)}(h4``data`` First and second quadlet of the PHY packet h](h)}(h``data``h]jr)}(hjbh]hdata}(hhhjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjbubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMyhjbubh)}(hhh]h)}(h*First and second quadlet of the PHY packeth]h*First and second quadlet of the PHY packet}(hjbhjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhMyhjbubah}(h]h ]h"]h$]h&]uh1hhjbubeh}(h]h ]h"]h$]h&]uh1hhjbhMyhjLbubh)}(h7``generation`` The bus generation where packet is validh](h)}(h``generation``h]jr)}(hjbh]h generation}(hhhjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjbubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMyhjbubh)}(hhh]h)}(h(The bus generation where packet is validh]h(The bus generation where packet is valid}(hjbhjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhMzhjbubah}(h]h ]h"]h$]h&]uh1hhjbubeh}(h]h ]h"]h$]h&]uh1hhjbhMyhjLbubeh}(h]h ]h"]h$]h&]uh1hhjbubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhjhNubh)}(h**Description**h]j$)}(hj ch]h Description}(hhhj chhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjcubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:25: ./include/uapi/linux/firewire-cdev.hhM}hjWhhubh)}(hThe ``FW_CDEV_IOC_SEND_PHY_PACKET`` ioctl sends a PHY packet to all nodes on the same card as this device. After transmission, either ``FW_CDEV_EVENT_PHY_PACKET_SENT`` event or ``FW_CDEV_EVENT_PHY_PACKET_SENT`` event is generated.h](hThe }(hThe hj chhhNhNubjr)}(h``FW_CDEV_IOC_SEND_PHY_PACKET``h]hFW_CDEV_IOC_SEND_PHY_PACKET}(hhhj)chhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj cubhd ioctl sends a PHY packet to all nodes on the same card as this device. After transmission, either }(hd ioctl sends a PHY packet to all nodes on the same card as this device. After transmission, either hj chhhNhNubjr)}(h!``FW_CDEV_EVENT_PHY_PACKET_SENT``h]hFW_CDEV_EVENT_PHY_PACKET_SENT}(hhhj= 8 bytes but not to inbound response payloads.h](h)}(h**Parameters**h]j$)}(hjhth]h Parameters}(hhhjjthhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjftubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhjbtubh)}(hhh](h)}(h9``struct fw_card *card`` card interface for this request h](h)}(h``struct fw_card *card``h]jr)}(hjth]hstruct fw_card *card}(hhhjthhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjtubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhjtubh)}(hhh]h)}(hcard interface for this requesth]hcard interface for this request}(hjthjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthMhjtubah}(h]h ]h"]h$]h&]uh1hhjtubeh}(h]h ]h"]h$]h&]uh1hhjthMhj~tubh)}(h``int tcode`` transaction code h](h)}(h ``int tcode``h]jr)}(hjth]h int tcode}(hhhjthhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjtubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhjtubh)}(hhh]h)}(htransaction codeh]htransaction code}(hjthjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthMhjtubah}(h]h ]h"]h$]h&]uh1hhjtubeh}(h]h ]h"]h$]h&]uh1hhjthMhj~tubh)}(hL``int destination_id`` destination node ID, consisting of bus_ID and phy_ID h](h)}(h``int destination_id``h]jr)}(hjth]hint destination_id}(hhhjthhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjtubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhjtubh)}(hhh]h)}(h4destination node ID, consisting of bus_ID and phy_IDh]h4destination node ID, consisting of bus_ID and phy_ID}(hjuhjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuhMhjuubah}(h]h ]h"]h$]h&]uh1hhjtubeh}(h]h ]h"]h$]h&]uh1hhjuhMhj~tubh)}(hJ``int generation`` bus generation in which request and response are valid h](h)}(h``int generation``h]jr)}(hj2uh]hint generation}(hhhj4uhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj0uubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhj,uubh)}(hhh]h)}(h6bus generation in which request and response are validh]h6bus generation in which request and response are valid}(hjMuhjKuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGuhMhjHuubah}(h]h ]h"]h$]h&]uh1hhj,uubeh}(h]h ]h"]h$]h&]uh1hhjGuhMhj~tubh)}(h!``int speed`` transmission speed h](h)}(h ``int speed``h]jr)}(hjkuh]h int speed}(hhhjmuhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjiuubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhjeuubh)}(hhh]h)}(htransmission speedh]htransmission speed}(hjuhjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuhMhjuubah}(h]h ]h"]h$]h&]uh1hhjeuubeh}(h]h ]h"]h$]h&]uh1hhjuhMhj~tubh)}(hQ``unsigned long long offset`` 48bit wide offset into destination's address space h](h)}(h``unsigned long long offset``h]jr)}(hjuh]hunsigned long long offset}(hhhjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjuubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhjuubh)}(hhh]h)}(h248bit wide offset into destination's address spaceh]h448bit wide offset into destination’s address space}(hjuhjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuhMhjuubah}(h]h ]h"]h$]h&]uh1hhjuubeh}(h]h ]h"]h$]h&]uh1hhjuhMhj~tubh)}(h9``void *payload`` data payload for the request subaction h](h)}(h``void *payload``h]jr)}(hjuh]h void *payload}(hhhjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjuubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhjuubh)}(hhh]h)}(h&data payload for the request subactionh]h&data payload for the request subaction}(hjuhjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuhMhjuubah}(h]h ]h"]h$]h&]uh1hhjuubeh}(h]h ]h"]h$]h&]uh1hhjuhMhj~tubh)}(h2``size_t length`` length of the payload, in bytes h](h)}(h``size_t length``h]jr)}(hjvh]h size_t length}(hhhjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjvubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhjvubh)}(hhh]h)}(hlength of the payload, in bytesh]hlength of the payload, in bytes}(hj1vhj/vhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+vhMhj,vubah}(h]h ]h"]h$]h&]uh1hhjvubeh}(h]h ]h"]h$]h&]uh1hhj+vhMhj~tubeh}(h]h ]h"]h$]h&]uh1hhjbtubh)}(h**Description**h]j$)}(hjQvh]h Description}(hhhjSvhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjOvubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhjbtubh)}(hX&Returns the RCODE. See fw_send_request() for parameter documentation. Unlike fw_send_request(), **data** points to the payload of the request or/and to the payload of the response. DMA mapping restrictions apply to outbound request payloads of >= 8 bytes but not to inbound response payloads.h](haReturns the RCODE. See fw_send_request() for parameter documentation. Unlike fw_send_request(), }(haReturns the RCODE. See fw_send_request() for parameter documentation. Unlike fw_send_request(), hjgvhhhNhNubj$)}(h**data**h]hdata}(hhhjpvhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjgvubh points to the payload of the request or/and to the payload of the response. DMA mapping restrictions apply to outbound request payloads of >= 8 bytes but not to inbound response payloads.}(h points to the payload of the request or/and to the payload of the response. DMA mapping restrictions apply to outbound request payloads of >= 8 bytes but not to inbound response payloads.hjgvhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhjbtubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j(fw_core_add_address_handler (C function)c.fw_core_add_address_handlerhNtauh1j|hjhhhhNhNubj)}(hhh](j)}(hlint fw_core_add_address_handler (struct fw_address_handler *handler, const struct fw_address_region *region)h]j)}(hkint fw_core_add_address_handler(struct fw_address_handler *handler, const struct fw_address_region *region)h](jke)}(hinth]hint}(hhhjvhhhNhNubah}(h]h ]jweah"]h$]h&]uh1jjehjvhhhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chM<ubj)}(h h]h }(hhhjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvhhhjvhM<ubj)}(hfw_core_add_address_handlerh]j)}(hfw_core_add_address_handlerh]hfw_core_add_address_handler}(hhhjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhjvhhhjvhM<ubje)}(hL(struct fw_address_handler *handler, const struct fw_address_region *region)h](je)}(h"struct fw_address_handler *handlerh](j)}(hjh]hstruct}(hhhjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubj)}(h h]h }(hhhjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubh)}(hhh]j)}(hfw_address_handlerh]hfw_address_handler}(hhhjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&] refdomainjreftypej$ reftargetjwmodnameN classnameNjeji)}jl]j!)}j$jvsbc.fw_core_add_address_handlerasbuh1hhjvubj)}(h h]h }(hhhj%whhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubje)}(hjfh]h*}(hhhj3whhhNhNubah}(h]h ]j fah"]h$]h&]uh1jehjvubj)}(hhandlerh]hhandler}(hhhj@whhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]noemphjzj{uh1jehjvubje)}(h&const struct fw_address_region *regionh](j)}(hjeh]hconst}(hhhjYwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUwubj)}(h h]h }(hhhjfwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUwubj)}(hjh]hstruct}(hhhjtwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUwubj)}(h h]h }(hhhjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUwubh)}(hhh]j)}(hfw_address_regionh]hfw_address_region}(hhhjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&] refdomainjreftypej$ reftargetjwmodnameN classnameNjeji)}jl]j!wc.fw_core_add_address_handlerasbuh1hhjUwubj)}(h h]h }(hhhjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUwubje)}(hjfh]h*}(hhhjwhhhNhNubah}(h]h ]j fah"]h$]h&]uh1jehjUwubj)}(hregionh]hregion}(hhhjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUwubeh}(h]h ]h"]h$]h&]noemphjzj{uh1jehjvubeh}(h]h ]h"]h$]h&]jzj{uh1jehjvhhhjvhM<ubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhjvhhhjvhM<ubah}(h]jvah ](jjeh"]h$]h&]juh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMMhjvhhubj)}(hhh]h)}(hregister for incoming requestsh]hregister for incoming requests}(hjwhjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chM;hjwhhubah}(h]h ]h"]h$]h&]uh1jhjvhhhjvhM<ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjxjjxjuh1jhhhjhhNhNubj)}(hX**Parameters** ``struct fw_address_handler *handler`` callback ``const struct fw_address_region *region`` region in the IEEE 1212 node space address range **Description** region->start, ->end, and handler->length have to be quadlet-aligned. When a request is received that falls within the specified address range, the specified callback is invoked. The parameters passed to the callback give the details of the particular request. To be called in process context. Return value: 0 on success, non-zero otherwise. The start offset of the handler's address region is determined by fw_core_add_address_handler() and is returned in handler->offset. Address allocations are exclusive, except for the FCP registers.h](h)}(h**Parameters**h]j$)}(hjxh]h Parameters}(hhhjxhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjxubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chM?hjxubh)}(hhh](h)}(h0``struct fw_address_handler *handler`` callback h](h)}(h&``struct fw_address_handler *handler``h]jr)}(hj7xh]h"struct fw_address_handler *handler}(hhhj9xhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj5xubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chM<hj1xubh)}(hhh]h)}(hcallbackh]hcallback}(hjRxhjPxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLxhM<hjMxubah}(h]h ]h"]h$]h&]uh1hhj1xubeh}(h]h ]h"]h$]h&]uh1hhjLxhM<hj.xubh)}(h\``const struct fw_address_region *region`` region in the IEEE 1212 node space address range h](h)}(h*``const struct fw_address_region *region``h]jr)}(hjpxh]h&const struct fw_address_region *region}(hhhjrxhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjnxubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chM=hjjxubh)}(hhh]h)}(h0region in the IEEE 1212 node space address rangeh]h0region in the IEEE 1212 node space address range}(hjxhjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhM=hjxubah}(h]h ]h"]h$]h&]uh1hhjjxubeh}(h]h ]h"]h$]h&]uh1hhjxhM=hj.xubeh}(h]h ]h"]h$]h&]uh1hhjxubh)}(h**Description**h]j$)}(hjxh]h Description}(hhhjxhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjxubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chM?hjxubh)}(hEregion->start, ->end, and handler->length have to be quadlet-aligned.h]hEregion->start, ->end, and handler->length have to be quadlet-aligned.}(hjxhjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chM?hjxubh)}(hWhen a request is received that falls within the specified address range, the specified callback is invoked. The parameters passed to the callback give the details of the particular request.h]hWhen a request is received that falls within the specified address range, the specified callback is invoked. The parameters passed to the callback give the details of the particular request.}(hjxhjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMAhjxubh)}(hQTo be called in process context. Return value: 0 on success, non-zero otherwise.h]hQTo be called in process context. Return value: 0 on success, non-zero otherwise.}(hjxhjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMEhjxubh)}(hThe start offset of the handler's address region is determined by fw_core_add_address_handler() and is returned in handler->offset.h]hThe start offset of the handler’s address region is determined by fw_core_add_address_handler() and is returned in handler->offset.}(hjxhjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMHhjxubh)}(h@Address allocations are exclusive, except for the FCP registers.h]h@Address allocations are exclusive, except for the FCP registers.}(hjxhjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMKhjxubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j+fw_core_remove_address_handler (C function) c.fw_core_remove_address_handlerhNtauh1j|hjhhhhNhNubj)}(hhh](j)}(hHvoid fw_core_remove_address_handler (struct fw_address_handler *handler)h]j)}(hGvoid fw_core_remove_address_handler(struct fw_address_handler *handler)h](jke)}(hvoidh]hvoid}(hhhj,yhhhNhNubah}(h]h ]jweah"]h$]h&]uh1jjehj(yhhhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMuubj)}(h h]h }(hhhj;yhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(yhhhj:yhMuubj)}(hfw_core_remove_address_handlerh]j)}(hfw_core_remove_address_handlerh]hfw_core_remove_address_handler}(hhhjMyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIyubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj(yhhhj:yhMuubje)}(h$(struct fw_address_handler *handler)h]je)}(h"struct fw_address_handler *handlerh](j)}(hjh]hstruct}(hhhjiyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeyubj)}(h h]h }(hhhjvyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeyubh)}(hhh]j)}(hfw_address_handlerh]hfw_address_handler}(hhhjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&] refdomainjreftypej$ reftargetjymodnameN classnameNjeji)}jl]j!)}j$jOysb c.fw_core_remove_address_handlerasbuh1hhjeyubj)}(h h]h }(hhhjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeyubje)}(hjfh]h*}(hhhjyhhhNhNubah}(h]h ]j fah"]h$]h&]uh1jehjeyubj)}(hhandlerh]hhandler}(hhhjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeyubeh}(h]h ]h"]h$]h&]noemphjzj{uh1jehjayubah}(h]h ]h"]h$]h&]jzj{uh1jehj(yhhhj:yhMuubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj$yhhhj:yhMuubah}(h]jyah ](jjeh"]h$]h&]juh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chM|hj!yhhubj)}(hhh]h)}(hunregister an address handlerh]hunregister an address handler}(hjyhjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMthjyhhubah}(h]h ]h"]h$]h&]uh1jhj!yhhhj:yhMuubeh}(h]h ](jfunctioneh"]h$]h&]jjjjzjjzjuh1jhhhjhhNhNubj)}(h**Parameters** ``struct fw_address_handler *handler`` callback **Description** To be called in process context. When fw_core_remove_address_handler() returns, **handler->callback\(\)** is guaranteed to not run on any CPU anymore.h](h)}(h**Parameters**h]j$)}(hjzh]h Parameters}(hhhjzhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj zubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMxhj zubh)}(hhh]h)}(h0``struct fw_address_handler *handler`` callback h](h)}(h&``struct fw_address_handler *handler``h]jr)}(hj.zh]h"struct fw_address_handler *handler}(hhhj0zhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj,zubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMuhj(zubh)}(hhh]h)}(hcallbackh]hcallback}(hjIzhjGzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjCzhMuhjDzubah}(h]h ]h"]h$]h&]uh1hhj(zubeh}(h]h ]h"]h$]h&]uh1hhjCzhMuhj%zubah}(h]h ]h"]h$]h&]uh1hhj zubh)}(h**Description**h]j$)}(hjizh]h Description}(hhhjkzhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjgzubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMwhj zubh)}(h To be called in process context.h]h To be called in process context.}(hjzhjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMwhj zubh)}(huWhen fw_core_remove_address_handler() returns, **handler->callback\(\)** is guaranteed to not run on any CPU anymore.h](h/When fw_core_remove_address_handler() returns, }(h/When fw_core_remove_address_handler() returns, hjzhhhNhNubj$)}(h**handler->callback\(\)**h]hhandler->callback()}(hhhjzhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjzubh- is guaranteed to not run on any CPU anymore.}(h- is guaranteed to not run on any CPU anymore.hjzhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMyhj zubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubj})}(hhh]h}(h]h ]h"]h$]h&]entries](jfw_send_response (C function)c.fw_send_responsehNtauh1j|hjhhhhNhNubj)}(hhh](j)}(hSvoid fw_send_response (struct fw_card *card, struct fw_request *request, int rcode)h]j)}(hRvoid fw_send_response(struct fw_card *card, struct fw_request *request, int rcode)h](jke)}(hvoidh]hvoid}(hhhjzhhhNhNubah}(h]h ]jweah"]h$]h&]uh1jjehjzhhhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMTubj)}(h h]h }(hhhjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzhhhjzhMTubj)}(hfw_send_responseh]j)}(hfw_send_responseh]hfw_send_response}(hhhjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhjzhhhjzhMTubje)}(h=(struct fw_card *card, struct fw_request *request, int rcode)h](je)}(hstruct fw_card *cardh](j)}(hjh]hstruct}(hhhj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj {ubj)}(h h]h }(hhhj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj {ubh)}(hhh]j)}(hfw_cardh]hfw_card}(hhhj,{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj){ubah}(h]h ]h"]h$]h&] refdomainjreftypej$ reftargetj.{modnameN classnameNjeji)}jl]j!)}j$jzsbc.fw_send_responseasbuh1hhj {ubj)}(h h]h }(hhhjL{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj {ubje)}(hjfh]h*}(hhhjZ{hhhNhNubah}(h]h ]j fah"]h$]h&]uh1jehj {ubj)}(hcardh]hcard}(hhhjg{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj {ubeh}(h]h ]h"]h$]h&]noemphjzj{uh1jehj{ubje)}(hstruct fw_request *requesth](j)}(hjh]hstruct}(hhhj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|{ubj)}(h h]h }(hhhj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|{ubh)}(hhh]j)}(h fw_requesth]h fw_request}(hhhj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej$ reftargetj{modnameN classnameNjeji)}jl]jH{c.fw_send_responseasbuh1hhj|{ubj)}(h h]h }(hhhj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|{ubje)}(hjfh]h*}(hhhj{hhhNhNubah}(h]h ]j fah"]h$]h&]uh1jehj|{ubj)}(hrequesth]hrequest}(hhhj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|{ubeh}(h]h ]h"]h$]h&]noemphjzj{uh1jehj{ubje)}(h int rcodeh](jke)}(hinth]hint}(hhhj{hhhNhNubah}(h]h ]jweah"]h$]h&]uh1jjehj{ubj)}(h h]h }(hhhj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubj)}(hrcodeh]hrcode}(hhhj |hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]noemphjzj{uh1jehj{ubeh}(h]h ]h"]h$]h&]jzj{uh1jehjzhhhjzhMTubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhjzhhhjzhMTubah}(h]jzah ](jjeh"]h$]h&]juh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chM[hjzhhubj)}(hhh]j")}(hhh]j")}(h2send response packet for asynchronous transaction.h]h)}(hj<|h]h2send response packet for asynchronous transaction.}(hj<|hj>|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMShj:|ubah}(h]h ]h"]h$]h&]uh1j"hj7|hhhjK|hNubah}(h]h ]h"]h$]h&]j8#j9#uh1j~"hjK|hMShj4|hhubah}(h]h ]h"]h$]h&]uh1jhjzhhhjzhMTubeh}(h]h ](jfunctioneh"]h$]h&]jjjja|jja|juh1jhhhjhhNhNubj)}(hX{**Parameters** ``struct fw_card *card`` interface to send the response at. ``struct fw_request *request`` firewire request data for the transaction. ``int rcode`` response code to send. **Description** Submit a response packet into the asynchronous response transmission queue. The **request** is going to be released when the transmission successfully finishes later.h](h)}(h**Parameters**h]j$)}(hjk|h]h Parameters}(hhhjm|hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hji|ubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMWhje|ubh)}(hhh](h)}(h<``struct fw_card *card`` interface to send the response at. h](h)}(h``struct fw_card *card``h]jr)}(hj|h]hstruct fw_card *card}(hhhj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj|ubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMThj|ubh)}(hhh]h)}(h"interface to send the response at.h]h"interface to send the response at.}(hj|hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|hMThj|ubah}(h]h ]h"]h$]h&]uh1hhj|ubeh}(h]h ]h"]h$]h&]uh1hhj|hMThj|ubh)}(hJ``struct fw_request *request`` firewire request data for the transaction. h](h)}(h``struct fw_request *request``h]jr)}(hj|h]hstruct fw_request *request}(hhhj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj|ubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMUhj|ubh)}(hhh]h)}(h*firewire request data for the transaction.h]h*firewire request data for the transaction.}(hj|hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|hMUhj|ubah}(h]h ]h"]h$]h&]uh1hhj|ubeh}(h]h ]h"]h$]h&]uh1hhj|hMUhj|ubh)}(h%``int rcode`` response code to send. h](h)}(h ``int rcode``h]jr)}(hj|h]h int rcode}(hhhj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj|ubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMVhj|ubh)}(hhh]h)}(hresponse code to send.h]hresponse code to send.}(hj}hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}hMVhj}ubah}(h]h ]h"]h$]h&]uh1hhj|ubeh}(h]h ]h"]h$]h&]uh1hhj}hMVhj|ubeh}(h]h ]h"]h$]h&]uh1hhje|ubh)}(h**Description**h]j$)}(hj7}h]h Description}(hhhj9}hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj5}ubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMXhje|ubh)}(hSubmit a response packet into the asynchronous response transmission queue. The **request** is going to be released when the transmission successfully finishes later.h](hPSubmit a response packet into the asynchronous response transmission queue. The }(hPSubmit a response packet into the asynchronous response transmission queue. The hjM}hhhNhNubj$)}(h **request**h]hrequest}(hhhjV}hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjM}ubhK is going to be released when the transmission successfully finishes later.}(hK is going to be released when the transmission successfully finishes later.hjM}hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMXhje|ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j!fw_get_request_speed (C function)c.fw_get_request_speedhNtauh1j|hjhhhhNhNubj)}(hhh](j)}(h5int fw_get_request_speed (struct fw_request *request)h]j)}(h4int fw_get_request_speed(struct fw_request *request)h](jke)}(hinth]hint}(hhhj}hhhNhNubah}(h]h ]jweah"]h$]h&]uh1jjehj}hhhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chM|ubj)}(h h]h }(hhhj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}hhhj}hM|ubj)}(hfw_get_request_speedh]j)}(hfw_get_request_speedh]hfw_get_request_speed}(hhhj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj}hhhj}hM|ubje)}(h(struct fw_request *request)h]je)}(hstruct fw_request *requesth](j)}(hjh]hstruct}(hhhj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj)}(h h]h }(hhhj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubh)}(hhh]j)}(h fw_requesth]h fw_request}(hhhj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej$ reftargetj}modnameN classnameNjeji)}jl]j!)}j$j}sbc.fw_get_request_speedasbuh1hhj}ubj)}(h h]h }(hhhj ~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubje)}(hjfh]h*}(hhhj~hhhNhNubah}(h]h ]j fah"]h$]h&]uh1jehj}ubj)}(hrequesth]hrequest}(hhhj&~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]noemphjzj{uh1jehj}ubah}(h]h ]h"]h$]h&]jzj{uh1jehj}hhhj}hM|ubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj}hhhj}hM|ubah}(h]j}ah ](jjeh"]h$]h&]juh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chM~hj}hhubj)}(hhh]h)}(h3returns speed at which the **request** was receivedh](hreturns speed at which the }(hreturns speed at which the hjQ~hhhNhNubj$)}(h **request**h]hrequest}(hhhjZ~hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjQ~ubh was received}(h was receivedhjQ~hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chM{hjN~hhubah}(h]h ]h"]h$]h&]uh1jhj}hhhj}hM|ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj}~jj}~juh1jhhhjhhNhNubj)}(hF**Parameters** ``struct fw_request *request`` firewire request datah](h)}(h**Parameters**h]j$)}(hj~h]h Parameters}(hhhj~hhhNhNubah}(h]h ]h"]h$]h&]uh1j#hj~ubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhj~ubh)}(hhh]h)}(h4``struct fw_request *request`` firewire request datah](h)}(h``struct fw_request *request``h]jr)}(hj~h]hstruct fw_request *request}(hhhj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj~ubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhj~ubh)}(hhh]h)}(hfirewire request datah]hfirewire request data}(hj~hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chM|hj~ubah}(h]h ]h"]h$]h&]uh1hhj~ubeh}(h]h ]h"]h$]h&]uh1hhj~hMhj~ubah}(h]h ]h"]h$]h&]uh1hhj~ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j%fw_request_get_timestamp (C function)c.fw_request_get_timestamphNtauh1j|hjhhhhNhNubj)}(hhh](j)}(h?u32 fw_request_get_timestamp (const struct fw_request *request)h]j)}(h>u32 fw_request_get_timestamp(const struct fw_request *request)h](h)}(hhh]j)}(hu32h]hu32}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej$ reftargetjmodnameN classnameNjeji)}jl]j!)}j$fw_request_get_timestampsbc.fw_request_get_timestampasbuh1hhj~hhhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMubj)}(h h]h }(hhhj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~hhhj$hMubj)}(hfw_request_get_timestamph]j)}(hj!h]hfw_request_get_timestamp}(hhhj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj~hhhj$hMubje)}(h"(const struct fw_request *request)h]je)}(h const struct fw_request *requesth](j)}(hjeh]hconst}(hhhjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj)}(h h]h }(hhhj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj)}(hjh]hstruct}(hhhjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj)}(h h]h }(hhhjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubh)}(hhh]j)}(h fw_requesth]h fw_request}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej$ reftargetjmodnameN classnameNjeji)}jl]jc.fw_request_get_timestampasbuh1hhjNubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubje)}(hjfh]h*}(hhhjhhhNhNubah}(h]h ]j fah"]h$]h&]uh1jehjNubj)}(hrequesth]hrequest}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]noemphjzj{uh1jehjJubah}(h]h ]h"]h$]h&]jzj{uh1jehj~hhhj$hMubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj~hhhj$hMubah}(h]j~ah ](jjeh"]h$]h&]juh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhj~hhubj)}(hhh]h)}(hGet timestamp of the request.h]hGet timestamp of the request.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj~hhhj$hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjuh1jhhhjhhNhNubj)}(hXt**Parameters** ``const struct fw_request *request`` The opaque pointer to request structure. **Description** Get timestamp when 1394 OHCI controller receives the asynchronous request subaction. The timestamp consists of the low order 3 bits of second field and the full 13 bits of count field of isochronous cycle time register. **Return** timestamp of the request.h](h)}(h**Parameters**h]j$)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhj ubh)}(hhh]h)}(hN``const struct fw_request *request`` The opaque pointer to request structure. h](h)}(h$``const struct fw_request *request``h]jr)}(hj0h]h const struct fw_request *request}(hhhj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jqhj.ubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhj*ubh)}(hhh]h)}(h(The opaque pointer to request structure.h]h(The opaque pointer to request structure.}(hjKhjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhMhjFubah}(h]h ]h"]h$]h&]uh1hhj*ubeh}(h]h ]h"]h$]h&]uh1hhjEhMhj'ubah}(h]h ]h"]h$]h&]uh1hhj ubh)}(h**Description**h]j$)}(hjkh]h Description}(hhhjmhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjiubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhj ubh)}(hGet timestamp when 1394 OHCI controller receives the asynchronous request subaction. The timestamp consists of the low order 3 bits of second field and the full 13 bits of count field of isochronous cycle time register.h]hGet timestamp when 1394 OHCI controller receives the asynchronous request subaction. The timestamp consists of the low order 3 bits of second field and the full 13 bits of count field of isochronous cycle time register.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhj ubh)}(h **Return**h]j$)}(hjh]hReturn}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhj ubh)}(htimestamp of the request.h]htimestamp of the request.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubj})}(hhh]h}(h]h ]h"]h$]h&]entries](jfw_rcode_string (C function)c.fw_rcode_stringhNtauh1j|hjhhhhNhNubj)}(hhh](j)}(h(const char * fw_rcode_string (int rcode)h]j)}(h&const char *fw_rcode_string(int rcode)h](j)}(hjeh]hconst}(hhhj׀hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjӀhhhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMTubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjӀhhhjhMTubjke)}(hcharh]hchar}(hhhjhhhNhNubah}(h]h ]jweah"]h$]h&]uh1jjehjӀhhhjhMTubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjӀhhhjhMTubje)}(hjfh]h*}(hhhjhhhNhNubah}(h]h ]j fah"]h$]h&]uh1jehjӀhhhjhMTubj)}(hfw_rcode_stringh]j)}(hfw_rcode_stringh]hfw_rcode_string}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhjӀhhhjhMTubje)}(h (int rcode)h]je)}(h int rcodeh](jke)}(hinth]hint}(hhhj<hhhNhNubah}(h]h ]jweah"]h$]h&]uh1jjehj8ubj)}(h h]h }(hhhjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj)}(hrcodeh]hrcode}(hhhjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]noemphjzj{uh1jehj4ubah}(h]h ]h"]h$]h&]jzj{uh1jehjӀhhhjhMTubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhjπhhhjhMTubah}(h]jʀah ](jjeh"]h$]h&]juh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMVhj̀hhubj)}(hhh]h)}(h6convert a firewire result code to an error descriptionh]h6convert a firewire result code to an error description}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMShjhhubah}(h]h ]h"]h$]h&]uh1jhj̀hhhjhMTubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjuh1jhhhjhhNhNubj)}(h/**Parameters** ``int rcode`` the result codeh](h)}(h**Parameters**h]j$)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMWhjubh)}(hhh]h)}(h``int rcode`` the result codeh](h)}(h ``int rcode``h]jr)}(hjāh]h int rcode}(hhhjƁhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMYhjubh)}(hhh]h)}(hthe result codeh]hthe result code}(hj߁hj݁hhhNhNubah}(h]h ]h"]h$]h&]uh1hhg/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:40: ./drivers/firewire/core-transaction.chMThjځubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjفhMYhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubeh}(h]$firewire-core-transaction-interfacesah ]h"]$firewire core transaction interfacesah$]h&]uh1hhhhhhhhK&ubh)}(hhh](h)}(h#Firewire Isochronous I/O interfacesh]h#Firewire Isochronous I/O interfaces}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhK,ubj})}(hhh]h}(h]h ]h"]h$]h&]entries](j#fw_iso_resource_manage (C function)c.fw_iso_resource_managehNtauh1j|hj hhhNhNubj)}(hhh](j)}(hvoid fw_iso_resource_manage (struct fw_card *card, int generation, u64 channels_mask, int *channel, int *bandwidth, bool allocate)h]j)}(hvoid fw_iso_resource_manage(struct fw_card *card, int generation, u64 channels_mask, int *channel, int *bandwidth, bool allocate)h](jke)}(hvoidh]hvoid}(hhhj7hhhNhNubah}(h]h ]jweah"]h$]h&]uh1jjehj3hhh_/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:46: ./drivers/firewire/core-iso.chM5ubj)}(h h]h }(hhhjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3hhhjEhM5ubj)}(hfw_iso_resource_manageh]j)}(hfw_iso_resource_manageh]hfw_iso_resource_manage}(hhhjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubah}(h]h ](jjeh"]h$]h&]jzj{uh1jhj3hhhjEhM5ubje)}(hf(struct fw_card *card, int generation, u64 channels_mask, int *channel, int *bandwidth, bool allocate)h](je)}(hstruct fw_card *cardh](j)}(hjh]hstruct}(hhhjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubh)}(hhh]j)}(hfw_cardh]hfw_card}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej$ reftargetjmodnameN classnameNjeji)}jl]j!)}j$jZsbc.fw_iso_resource_manageasbuh1hhjpubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubje)}(hjfh]h*}(hhhjhhhNhNubah}(h]h ]j fah"]h$]h&]uh1jehjpubj)}(hcardh]hcard}(hhhj͂hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]noemphjzj{uh1jehjlubje)}(hint generationh](jke)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]jweah"]h$]h&]uh1jjehjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h generationh]h generation}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjzj{uh1jehjlubje)}(hu64 channels_maskh](h)}(hhh]j)}(hu64h]hu64}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej$ reftargetj modnameN classnameNjeji)}jl]jc.fw_iso_resource_manageasbuh1hhjubj)}(h h]h }(hhhj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h channels_maskh]h channels_mask}(hhhjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjzj{uh1jehjlubje)}(h int *channelh](jke)}(hinth]hint}(hhhjchhhNhNubah}(h]h ]jweah"]h$]h&]uh1jjehj_ubj)}(h h]h }(hhhjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubje)}(hjfh]h*}(hhhjhhhNhNubah}(h]h ]j fah"]h$]h&]uh1jehj_ubj)}(hchannelh]hchannel}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]noemphjzj{uh1jehjlubje)}(hint *bandwidthh](jke)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]jweah"]h$]h&]uh1jjehjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubje)}(hjfh]h*}(hhhjhhhNhNubah}(h]h ]j fah"]h$]h&]uh1jehjubj)}(h bandwidthh]h bandwidth}(hhhj΃hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjzj{uh1jehjlubje)}(h bool allocateh](jke)}(hjlh]hbool}(hhhjhhhNhNubah}(h]h ]jweah"]h$]h&]uh1jjehjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hallocateh]hallocate}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjzj{uh1jehjlubeh}(h]h ]h"]h$]h&]jzj{uh1jehj3hhhjEhM5ubeh}(h]h ]h"]h$]h&]jzj{juh1jjjhj/hhhjEhM5ubah}(h]j*ah ](jjeh"]h$]h&]juh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:46: ./drivers/firewire/core-iso.chMRhj,hhubj)}(hhh]h)}(h1Allocate or deallocate a channel and/or bandwidthh]h1Allocate or deallocate a channel and/or bandwidth}(hj/hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:46: ./drivers/firewire/core-iso.chM4hj*hhubah}(h]h ]h"]h$]h&]uh1jhj,hhhjEhM5ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjEjjEjuh1jhhhj hNhNubj)}(hX?**Parameters** ``struct fw_card *card`` card interface for this action ``int generation`` bus generation ``u64 channels_mask`` bitmask for channel allocation ``int *channel`` pointer for returning channel allocation result ``int *bandwidth`` pointer for returning bandwidth allocation result ``bool allocate`` whether to allocate (true) or deallocate (false) **Description** In parameters: card, generation, channels_mask, bandwidth, allocate Out parameters: channel, bandwidth This function blocks (sleeps) during communication with the IRM. Allocates or deallocates at most one channel out of channels_mask. channels_mask is a bitfield with MSB for channel 63 and LSB for channel 0. (Note, the IRM's CHANNELS_AVAILABLE is a big-endian bitfield with MSB for channel 0 and LSB for channel 63.) Allocates or deallocates as many bandwidth allocation units as specified. Returns channel < 0 if no channel was allocated or deallocated. Returns bandwidth = 0 if no bandwidth was allocated or deallocated. If generation is stale, deallocations succeed but allocations fail with channel = -EAGAIN. If channel allocation fails, no bandwidth will be allocated either. If bandwidth allocation fails, no channel will be allocated either. But deallocations of channel and bandwidth are tried independently of each other's success.h](h)}(h**Parameters**h]j$)}(hjOh]h Parameters}(hhhjQhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjMubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:46: ./drivers/firewire/core-iso.chM8hjIubh)}(hhh](h)}(h8``struct fw_card *card`` card interface for this action h](h)}(h``struct fw_card *card``h]jr)}(hjnh]hstruct fw_card *card}(hhhjphhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjlubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:46: ./drivers/firewire/core-iso.chM5hjhubh)}(hhh]h)}(hcard interface for this actionh]hcard interface for this action}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM5hjubah}(h]h ]h"]h$]h&]uh1hhjhubeh}(h]h ]h"]h$]h&]uh1hhjhM5hjeubh)}(h"``int generation`` bus generation h](h)}(h``int generation``h]jr)}(hjh]hint generation}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:46: ./drivers/firewire/core-iso.chM6hjubh)}(hhh]h)}(hbus generationh]hbus generation}(hj„hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM6hjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhM6hjeubh)}(h5``u64 channels_mask`` bitmask for channel allocation h](h)}(h``u64 channels_mask``h]jr)}(hjh]hu64 channels_mask}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjބubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:46: ./drivers/firewire/core-iso.c!hM7hjڄubh)}(hhh]h)}(hbitmask for channel allocationh]hbitmask for channel allocation}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM7hjubah}(h]h ]h"]h$]h&]uh1hhjڄubeh}(h]h ]h"]h$]h&]uh1hhjhM7hjeubh)}(hA``int *channel`` pointer for returning channel allocation result h](h)}(h``int *channel``h]jr)}(hjh]h int *channel}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:46: ./drivers/firewire/core-iso.chM8hjubh)}(hhh]h)}(h/pointer for returning channel allocation resulth]h/pointer for returning channel allocation result}(hj4hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.hM8hj/ubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhj.hM8hjeubh)}(hE``int *bandwidth`` pointer for returning bandwidth allocation result h](h)}(h``int *bandwidth``h]jr)}(hjRh]hint *bandwidth}(hhhjThhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjPubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:46: ./drivers/firewire/core-iso.chM9hjLubh)}(hhh]h)}(h1pointer for returning bandwidth allocation resulth]h1pointer for returning bandwidth allocation result}(hjmhjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghM9hjhubah}(h]h ]h"]h$]h&]uh1hhjLubeh}(h]h ]h"]h$]h&]uh1hhjghM9hjeubh)}(hC``bool allocate`` whether to allocate (true) or deallocate (false) h](h)}(h``bool allocate``h]jr)}(hjh]h bool allocate}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jqhjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:46: ./drivers/firewire/core-iso.chM:hjubh)}(hhh]h)}(h0whether to allocate (true) or deallocate (false)h]h0whether to allocate (true) or deallocate (false)}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM:hjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhjhM:hjeubeh}(h]h ]h"]h$]h&]uh1hhjIubh)}(h**Description**h]j$)}(hjƅh]h Description}(hhhjȅhhhNhNubah}(h]h ]h"]h$]h&]uh1j#hjąubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:46: ./drivers/firewire/core-iso.chM<hjIubh)}(hfIn parameters: card, generation, channels_mask, bandwidth, allocate Out parameters: channel, bandwidthh]hfIn parameters: card, generation, channels_mask, bandwidth, allocate Out parameters: channel, bandwidth}(hjޅhj܅hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:46: ./drivers/firewire/core-iso.chM<hjIubh)}(h@This function blocks (sleeps) during communication with the IRM.h]h@This function blocks (sleeps) during communication with the IRM.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:46: ./drivers/firewire/core-iso.chM?hjIubh)}(hXDAllocates or deallocates at most one channel out of channels_mask. channels_mask is a bitfield with MSB for channel 63 and LSB for channel 0. (Note, the IRM's CHANNELS_AVAILABLE is a big-endian bitfield with MSB for channel 0 and LSB for channel 63.) Allocates or deallocates as many bandwidth allocation units as specified.h]hXFAllocates or deallocates at most one channel out of channels_mask. channels_mask is a bitfield with MSB for channel 63 and LSB for channel 0. (Note, the IRM’s CHANNELS_AVAILABLE is a big-endian bitfield with MSB for channel 0 and LSB for channel 63.) Allocates or deallocates as many bandwidth allocation units as specified.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:46: ./drivers/firewire/core-iso.chMAhjIubh)}(hReturns channel < 0 if no channel was allocated or deallocated. Returns bandwidth = 0 if no bandwidth was allocated or deallocated.h]hReturns channel < 0 if no channel was allocated or deallocated. Returns bandwidth = 0 if no bandwidth was allocated or deallocated.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:46: ./drivers/firewire/core-iso.chMGhjIubh)}(hZIf generation is stale, deallocations succeed but allocations fail with channel = -EAGAIN.h]hZIf generation is stale, deallocations succeed but allocations fail with channel = -EAGAIN.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:46: ./drivers/firewire/core-iso.chMJhjIubh)}(hIf channel allocation fails, no bandwidth will be allocated either. If bandwidth allocation fails, no channel will be allocated either. But deallocations of channel and bandwidth are tried independently of each other's success.h]hIf channel allocation fails, no bandwidth will be allocated either. If bandwidth allocation fails, no channel will be allocated either. But deallocations of channel and bandwidth are tried independently of each other’s success.}(hj)hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/firewire:46: ./drivers/firewire/core-iso.chMMhjIubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj hhhNhNubeh}(h]#firewire-isochronous-i-o-interfacesah ]h"]#firewire isochronous i/o interfacesah$]h&]uh1hhhhhhhhK,ubeh}(h])firewire-ieee-1394-driver-interface-guideah ]h"]+firewire (ieee 1394) driver interface guideah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjperror_encodingUTF-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confapep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacefile_insertion_enabled raw_enabledKline_length_limitM'syntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_link embed_imagesenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jJjGjTjQj-ej*ejhjhj jjBj?u nametypes}(jJNjTNj-eNjhNj NjBNuh}(jGhjQhj*ejWjjjgjljjj j j j j/j4jMjRjjj/ j4 j#j#jq&jv&j^)jc)j-j-j3j3j66j;6j8j8j;j;j>j>j?j?jQAjVAj[Dj`DjEjEjIj!IjJjJjOjOj-Rj2Rj Tj%Tj*Uj/UjVjVjXjXj[j [j|^j^jajajcjcjhj0ej]ejbejjhjhjhjqjqjvjvjyj$yjzjzj}j}j~j~jʀjπj?j j*j/u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.