STRUCT FW_CDEV_EVENT_RESPONSE2(9)
π¦ struct fw_cdev_event_response2(9) π¦
okay bestie, welcome to the Kernel API Manual β this one's a struct page and honestly it's kinda iconic. no cap, it's giving "the response you've been waiting for" energy. π
β¨ NAME β¨
struct fw_cdev_event_response2 β the event that gets sent when a response packet shows up in your life π
πΈ SYNOPSIS πΈ
struct fw_cdev_event_response2 {
__u64 closure;
__u32 type;
__u32 rcode;
__u32 length;
__u32 request_tstamp;
__u32 response_tstamp;
__u32 padding;
__u32 data[];
};
look at her. flawless. every field accounted for. π
π Members π
closureβ seefw_cdev_event_common; this one gets set byFW_CDEV_IOC_SEND_REQUESTorFW_CDEV_IOC_SEND_BROADCAST_REQUESTor theFW_CDEV_IOC_SEND_STREAM_PACKETioctl. it's literally your lil "this belongs to that" tag, iykyk π·οΈtypeβ seefw_cdev_event_common; this is alwaysFW_CDEV_EVENT_RESPONSE. no surprises, main character stays consistent πrcodeβ the response code the remote node sent back. it's the "how did it go" field, okurrr πlengthβ the data length, like, the response's payload size in bytes πrequest_tstampβ the time stamp of the isochronous cycle at which the request was sent. β°response_tstampβ the time stamp of the isochronous cycle at which the response was sent. β±οΈpaddingβ padding, bestie. it's there to keep the size of the structure as multiples of 8 across various architectures, since 4 byte alignment is used for 8 byte of object type in System V ABI for the i386 architecture. she's just doing her job π«Άdataβ the payload data, if any πΎ
π₯ Description π₯
so here's the tea: this event gets sent when the stack receives a response to an outgoing request that was sent by the FW_CDEV_IOC_SEND_REQUEST ioctl. the payload data for responses that carry data (read and lock responses, natch) follows immediately and can be accessed through the data field. slay. π
the event is also generated after conclusions of transactions that don't involve response packets β and yes that includes unified write transactions, broadcast write transactions, and transmission of asynchronous stream packets. in those cases rcode is the one telling you if that transmission was a success or a failure. it's giving "no packet, still got receipts" π
now for the timestamps, because they're so real for this:
- the value of
request_tstampexpresses the isochronous cycle at which the request was sent to initiate the transaction. - the value of
response_tstampexpresses the isochronous cycle at which the response arrived to complete the transaction.
each value is an unsigned 16 bit integer containing three low order bits of the second field and all 13 bits of the cycle field in the format of the CYCLE_TIMER register. periodt. π§
β SEE ALSO β
go read these next, bestie, they're all in the kernel file ./include/uapi/linux/firewire-cdev.h and honestly the whole friend group ate:
struct fw_cdev_event_common(9)struct fw_cdev_event_bus_reset(9)struct fw_cdev_event_response(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_stream_packet(9)struct fw_cdev_send_phy_packet(9)struct fw_cdev_receive_phy_packets(9)
and that's the whole page, bestie!! π«Άβ¨ this lil masterpiece lives in ./include/uapi/linux, dated October 2026, and it's filed under struct fw_cd...nt_response2(9) β mwah, go off πππΈ
π¦ 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