STRUCT FW_CDEV_QUEUE_ISO(9)
π struct fw_cdev_queue_iso(9) π
okay so this is a page from the Kernel API Manual β yes, that Kernel API Manual, the firewire-cdev one β and it's all about struct fw_cdev_queue_iso. bestie, this is the "queue up your isochronous packets for I/O" struct and honestly it's giving main character energy in the firewire world π
β¨ NAME β¨
struct fw_cdev_queue_iso β Queue isochronous packets for I/O π¦
πΈ SYNOPSIS πΈ
struct fw_cdev_queue_iso {
__u64 packets;
__u64 data;
__u32 size;
__u32 handle;
};
like literally that's the whole shape of it, no cap β¨
π Members π
packetsβ a userspace pointer to an array offw_cdev_iso_packet. yes bestie, userspace, it's pointing at your array πdataβ a pointer into the mmap'ed payload buffer. mmap'ed, remember it π«Άsizeβ the size of the packets array, in bytes. bytes, not packets, okurrr πhandleβ the isochronous context handle. it's giving "ticket to the iso party" ποΈ
π₯ Description π₯
So what does it do? It queues a number of isochronous packets for reception or transmission. either direction, she's versatile π
This ioctl takes a pointer to an array of fw_cdev_iso_packet structs, which describe how to transmit from or receive into a contiguous region of a mmap'ed payload buffer. contiguous region, mmap'ed buffer, got it? π§
And here's the cute part: as part of transmit packet descriptors, a series of headers can be supplied, and those will be prepended to the payload during DMA. headers first, payload after, slay π
lowkey important caveat: the kernel may or may not queue all packets. not all of them, maybe. but it will write back updated values of thepackets,dataandsizefields β so the ioctl can be resubmitted easily. ngl that resubmit-friendliness is iconic, it ate π
also a real one: in case of a multichannel receive context, data must be quadlet-aligned relative to the buffer start. quadlet-aligned, relative to buffer start, don't forget it or it's over π
π SEE ALSO π
Kernel file ./include/uapi/linux/firewire-cdev.h struct, plus the whole friend group π
fw_cdev_event_common(9)fw_cdev_event_bus_reset(9)fw_cdev_event_response(9)fw_cdev_event_response2(9)fw_cdev_event_request(9)fw_cdev_event_request2(9)fw_cdev_event_request3(9)fw_cdev_event_iso_interrupt(9)fw_cdev_event_iso_interrupt_mc(9)fw_cdev_event_iso_resource(9)fw_cdev_event_phy_packet(9)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_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_stream_packet(9)struct fw_cdev_send_phy_packet(9)struct fw_cdev_receive_phy_packets(9)
like, the whole squad showed up for this one ππ
and that's the page, bestie! this one lives in ./include/uapi/linux, dated October 2026, and the manual name is struct fw_cdev_queue_iso(9) in case you forgot already π go queue some packets, you absolute icon βπ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms