STRUCT FW_CDEV_SEND_STREAM_PACKET(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 struct fw_cdev_send_stream_packet(9) 🌸

okay bestie, welcome to the Kernel API Manual entry for struct fw_cdev_send_stream_packet β€” and yes, that's a whole mouthful, but trust me, it slaps πŸ’…


✨ NAME ✨

struct fw_cdev_send_stream_packet β€” send an asynchronous stream packet πŸ¦‹


πŸ’– SYNOPSIS πŸ’–

struct fw_cdev_send_stream_packet {
    __u32 length;
    __u32 tag;
    __u32 channel;
    __u32 sy;
    __u64 closure;
    __u64 data;
    __u32 generation;
    __u32 speed;
 };

like, look at her. gorgeous. iconic. eight fields of pure potential πŸ’œ


🫢 MEMBERS 🫢

  • length β€” the length of the outgoing payload, in bytes. it's giving "how much stuff am i actually sending" πŸŽ€
  • tag β€” the data format tag 🌸
  • channel β€” the isochronous channel you're transmitting to ✨
  • sy β€” the synchronization code ⭐
  • closure β€” gets passed right back to userspace in the response event, so it's basically your little note-to-self 🫢
  • data β€” a userspace pointer to the payload, no cap πŸ’–
  • generation β€” the bus generation where the packet is valid πŸ¦‹
  • speed β€” the speed to transmit at πŸ”₯

πŸ’… DESCRIPTION πŸ’…

so the FW_CDEV_IOC_SEND_STREAM_PACKET ioctl sends an asynchronous stream packet to every device which is listening to the specified channel 🫢 it's a broadcast bestie situation, main character energy all around.

the kernel then writes either an fw_cdev_event_response event or an fw_cdev_event_response2 event, which tells you whether the transmission succeeded or failed πŸ‘‘ so yeah, you will get your vibe check back.


πŸ¦‹ SEE ALSO πŸ¦‹

kernel file ./include/uapi/linux/firewire-cdev.h 🌈

  • struct fw_cdev_event_common(9)
  • struct fw_cdev_event_bus_reset(9)
  • struct fw_cdev_event_response(9)
  • struct fw_cdev_event_response2(9)
  • struct fw_cdev_event_request(9)
  • struct fw_cdev_event_request2(9)
  • struct fw_cdev_event_request3(9)
  • struct fw_cdev_event_iso_interrupt(9)
  • struct fw_cdev_event_iso_interrupt_mc(9)
  • struct fw_cdev_event_iso_resource(9)
  • struct fw_cdev_event_phy_packet(9)
  • struct fw_cdev_event_phy_packet2(9)
  • union fw_cdev_event(9)
  • struct fw_cdev_get_info(9)
  • struct fw_cdev_send_request(9)
  • struct fw_cdev_send_response(9)
  • struct fw_cdev_allocate(9)
  • struct fw_cdev_deallocate(9)
  • struct fw_cdev_initiate_bus_reset(9)
  • struct fw_cdev_add_descriptor(9)
  • struct fw_cdev_remove_descriptor(9)
  • struct fw_cdev_create_iso_context(9)
  • struct fw_cdev_set_iso_channels(9)
  • struct fw_cdev_iso_packet(9)
  • struct fw_cdev_queue_iso(9)
  • struct fw_cdev_start_iso(9)
  • struct fw_cdev_stop_iso(9)
  • struct fw_cdev_flush_iso(9)
  • struct fw_cdev_get_cycle_timer(9)
  • struct fw_cdev_get_cycle_timer2(9)
  • struct fw_cdev_allocate_iso_resource(9)
  • struct fw_cdev_send_phy_packet(9)
  • struct fw_cdev_receive_phy_packets(9)

that's the whole group chat, fr fr 😭


aaaand that's the page! this lil beauty lives in ./include/uapi/linux, dated October 2026 β€” go off, kernel docs, you ate πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from