diff options
author | Jay Fenlason <fenlason@redhat.com> | 2009-03-05 13:08:40 -0500 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2009-03-24 15:56:49 -0400 |
commit | f8c2287c65f8f72000102fc058232669e4540bc4 (patch) | |
tree | a82393fbdd3a2b20f8e499537b10eb9e61dae941 /include/linux/firewire-cdev.h | |
parent | ba27e1f7bf220799cd3d7503f82bda71b8ebe8c5 (diff) |
firewire: implement asynchronous stream transmission
Allow userspace and other firewire drivers (fw-ipv4 I'm looking at
you!) to send Asynchronous Transmit Streams as described in 7.8.3 of
release 1.1 of the 1394 Open Host Controller Interface Specification.
Signed-off-by: Jay Fenlason <fenlason@redhat.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (tweaks)
Diffstat (limited to 'include/linux/firewire-cdev.h')
-rw-r--r-- | include/linux/firewire-cdev.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/include/linux/firewire-cdev.h b/include/linux/firewire-cdev.h index 2e35379bf96c..4dfc84d0ac76 100644 --- a/include/linux/firewire-cdev.h +++ b/include/linux/firewire-cdev.h | |||
@@ -246,6 +246,7 @@ union fw_cdev_event { | |||
246 | #define FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE _IOW('#', 0x10, struct fw_cdev_allocate_iso_resource) | 246 | #define FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE _IOW('#', 0x10, struct fw_cdev_allocate_iso_resource) |
247 | #define FW_CDEV_IOC_GET_SPEED _IOR('#', 0x11, struct fw_cdev_get_speed) | 247 | #define FW_CDEV_IOC_GET_SPEED _IOR('#', 0x11, struct fw_cdev_get_speed) |
248 | #define FW_CDEV_IOC_SEND_BROADCAST_REQUEST _IOW('#', 0x12, struct fw_cdev_send_request) | 248 | #define FW_CDEV_IOC_SEND_BROADCAST_REQUEST _IOW('#', 0x12, struct fw_cdev_send_request) |
249 | #define FW_CDEV_IOC_SEND_STREAM_PACKET _IOW('#', 0x13, struct fw_cdev_send_stream_packet) | ||
249 | 250 | ||
250 | /* | 251 | /* |
251 | * FW_CDEV_VERSION History | 252 | * FW_CDEV_VERSION History |
@@ -609,4 +610,30 @@ struct fw_cdev_get_speed { | |||
609 | __u32 max_speed; | 610 | __u32 max_speed; |
610 | }; | 611 | }; |
611 | 612 | ||
613 | /** | ||
614 | * struct fw_cdev_send_stream_packet - send an asynchronous stream packet | ||
615 | * @generation: Bus generation where the packet is valid | ||
616 | * @speed: Speed code to send the packet at | ||
617 | * @channel: Channel to send the packet on | ||
618 | * @sy: Four-bit sy code for the packet | ||
619 | * @tag: Two-bit tag field to use for the packet | ||
620 | * @size: Size of the packet's data payload | ||
621 | * @data: Userspace pointer to the payload | ||
622 | * | ||
623 | * The %FW_CDEV_IOC_SEND_STREAM_PACKET ioctl sends an asynchronous stream packet | ||
624 | * to every device (that is listening to the specified channel) on the | ||
625 | * firewire bus. It is the applications's job to ensure | ||
626 | * that the intended device(s) will be able to receive the packet at the chosen | ||
627 | * transmit speed. | ||
628 | */ | ||
629 | struct fw_cdev_send_stream_packet { | ||
630 | __u32 generation; | ||
631 | __u32 speed; | ||
632 | __u32 channel; | ||
633 | __u32 sy; | ||
634 | __u32 tag; | ||
635 | __u32 size; | ||
636 | __u64 data; | ||
637 | }; | ||
638 | |||
612 | #endif /* _LINUX_FIREWIRE_CDEV_H */ | 639 | #endif /* _LINUX_FIREWIRE_CDEV_H */ |