Linux Kernel
3.7.1
|
#include <firewire-cdev.h>
Data Fields | |
__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 [0] |
struct fw_cdev_event_request2 - Sent on incoming request to an address region : See set by FW_CDEV_IOC_ALLOCATE ioctl : See always FW_CDEV_EVENT_REQUEST2 : Transaction code of the incoming request : The offset into the 48-bit per-node address space : Sender node ID : Destination node ID : The index of the card from which the request came : Bus generation in which the request is valid : Reference to the kernel-side pending request : Data length, i.e. the request's payload size in bytes : Incoming data, if any
This 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 .
The payload data for requests carrying data (write and lock requests) follows immediately and can be accessed through the field.
Unlike &fw_cdev_event_request, 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.
may differ from &fw_cdev_get_info.card because requests are received from all cards of the Linux host. , , and pertain to that card. Destination node ID and bus generation may therefore differ from the corresponding fields of the last &fw_cdev_event_bus_reset.
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.
In 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.
If the client subsequently needs to initiate requests to the sender node of an &fw_cdev_event_request2, it needs to use a device file with matching card index, node ID, and generation for outbound requests.
Definition at line 191 of file firewire-cdev.h.
__u32 card |
Definition at line 198 of file firewire-cdev.h.
__u64 closure |
Definition at line 192 of file firewire-cdev.h.
Definition at line 202 of file firewire-cdev.h.
__u32 destination_node_id |
Definition at line 197 of file firewire-cdev.h.
__u32 generation |
Definition at line 199 of file firewire-cdev.h.
Definition at line 200 of file firewire-cdev.h.
__u32 length |
Definition at line 201 of file firewire-cdev.h.
Definition at line 195 of file firewire-cdev.h.
__u32 source_node_id |
Definition at line 196 of file firewire-cdev.h.
__u32 tcode |
Definition at line 194 of file firewire-cdev.h.
Definition at line 193 of file firewire-cdev.h.