STRUCT FW_CDEV_START_ISO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ‘‘ struct fw_cdev_start_iso(9) πŸ‘‘

okay bestie, so this is straight out of the Kernel API Manual, and it's the little struct that tells your FireWire isochronous stream go time πŸ’… like, literally the "start transmitting / start receiving" button in struct form. no cap.


✨ NAME ✨

struct fw_cdev_start_iso β€” start an isochronous transmission or reception πŸ¦‹


🌸 SYNOPSIS 🌸

struct fw_cdev_start_iso {
    __s32 cycle;
    __u32 sync;
    __u32 tags;
    __u32 handle;
 };

look at her. four fields. absolute main character energy πŸ‘‘


πŸŽ€ Members πŸŽ€

okay so let's meet the squad, one member at a time 🫢

  • cycle β€” the cycle in which to start the I/O, periodt. and here's the rule, bestie: if cycle is greater than or equal to 0, the I/O will start on that cycle. that's it, that's the vibe 🌈
  • sync β€” this one decides the value you wait for on receive packets that have the FW_CDEV_ISO_SYNC bit set. it's giving "what am I looking for" energy ✨
  • tags β€” the tag filter bit mask. ⚠️ heads up: this is only valid for isochronous reception β€” it determines the tag values for which packets will be accepted. use the FW_CDEV_ISO_CONTEXT_MATCH_* macros to set tags, iykyk πŸ’…
  • handle β€” the isochronous context handle, like, the within which you transmit or receive. your little VIP pass into the right context 🎟️

πŸ”₯ SEE ALSO πŸ”₯

first up, the file itself lives in the kernel at ./include/uapi/linux/firewire-cdev.h β€” go read the source, it's iconic πŸ“–

and now the whole friend group, fr fr, every single one of them:

  • 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_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)

ngl bestie, tags being reception-only is the one gotcha here β€” don't come for me if you set it on a transmit context, I warned you 😭

okay that's the whole page!! mwah πŸ’– this one's from ./include/uapi/linux, dated October 2026 β€” catch you in the next manpage, bestie, slay πŸ§šβ€β™€οΈπŸŒŸ

πŸ“¦ where this page comes from