STRUCT FW_CDEV_REMOVE_DESCRIPTOR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct fw_cdev_remove_descriptor(9) β€” Kernel API Manual, bestie edition πŸŽ€

okay so real talk, this is a page straight out of the Kernel API Manual, section 9, and it's literally the "undo" button for Configuration ROM descriptors. tiny struct, big consequences, let's get into it ✨


🌸 NAME 🌸

struct fw_cdev_remove_descriptor β€” remove contents from the Configuration ROM. that's it, that's the whole vibe. it takes the descriptor you added and yeets it πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

struct fw_cdev_remove_descriptor {
    __u32 handle;
};

look at her. one field. main character energy, no notes πŸ‘‘


✨ Members ✨

  • handle β€” the handle to the descriptor, exactly as the kernel gave it back to you when that descriptor was added. keep it safe, keep it close, don't lose it 🫢 β€” it's your receipt, and without it you can't return the thing.

πŸ”₯ Description πŸ”₯

so what actually happens? this removes a descriptor block and the accompanying immediate key from the local node's Configuration ROMs. yes, immediate key included β€” they leave together, it's giving package deal πŸŽ€

and because other nodes on the bus need to know the ROM changed, the kernel will also generate a bus reset to signal the change of the Configuration ROM to other nodes. so like, that's not a side quest, that's part of the deal. the whole bus finds out 😭 periodt.

ngl if you weren't expecting a bus reset, surprise β€” everyone on the bus is getting the notification whether they asked or not πŸ’€

🌈 SEE ALSO 🌈

the source of truth lives in the kernel file ./include/uapi/linux/firewire-cdev.h, and here's the whole friend group, iykyk:

  • 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_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_stream_packet(9)
  • struct fw_cdev_send_phy_packet(9)
  • struct fw_cdev_receive_phy_packets(9)

like, the whole roster. go read them, they're all slaying in their own way πŸ’–


that's the page, bestie 🧚 β€” brought to you by ./include/uapi/linux, dated October 2026, and filed under struct fw_cd...e_descriptor(9) because even the header was too iconic to fit. mwah πŸ’‹

πŸ“¦ where this page comes from