Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Fields
fw_cdev_event_request2 Struct Reference

#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]
 

Detailed Description

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.

Field Documentation

__u32 card

Definition at line 198 of file firewire-cdev.h.

__u64 closure

Definition at line 192 of file firewire-cdev.h.

__u32 data[0]

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.


The documentation for this struct was generated from the following file: