fw_send_request(9)
π fw_send_request(9) π
okay bestie, so this is a page straight out of the Kernel API Manual β like, kernel-level FireWire stuff, we're literally in the (9) section, the big-leagues dev docs. sit down, grab a strawberry drink π, and let's get into it β¨
π NAME π
fw_send_request β submit a request packet for transmission, so it generates a callback for the response subaction, and it does it without a time stamp. no cap, that's the whole vibe of this function π
πΈ SYNOPSIS πΈ
void fw_send_request (struct fw_card *card , struct fw_transaction *t ,
int tcode , int destination_id , int generation , int speed , unsigned
long long offset , void *payload , size_t length ,
fw_transaction_callback_t callback , void *callback_data );
she's a void, she takes eleven arguments, she's iconic π
π¦ ARGUMENTS π¦
cardβ the interface you're sending the request at π«Άtβ the transaction instance this request belongs totcodeβ the transaction code, iykykdestination_idβ the destination node ID, and yes it's made up ofbus_IDandphy_IDgenerationβ the bus generation during which the request and the response are valid, so don't go mixing generations bestie πspeedβ transmission speed, vroom ποΈoffsetβ a 48bit wide offset into the destination's address space (yes, 48bit, she's wide)payloadβ the data payload for the request subactionlengthβ length of that payload, in bytescallbackβ the function that gets called when the transaction is completed πcallback_dataβ data passed along to that transaction completion callback
β¨ DESCRIPTION β¨
so this is a variation of __fw_send_request, except it generates the callback for the response subaction without a time stamp π
now here's the deets on the callback: it's invoked in workqueue context in most cases. BUT β and this is the plot twist π β if an error is detected before queueing, or if the destination address refers to the local node, then it's invoked in the current context instead. main character energy, honestly π
fr fr remember: which context you're in changes based on those two cases β don't assume workqueue every single time π
π§ SEE ALSO π§
- Kernel file
./include/linux/firewire.h fw_send_request_with_tstamp(9)fw_iso_context_schedule_flush_completions(9)
and that's the whole page, bestie π¦ this one lives under ./include/linux in the Kernel API Manual, dated October 2026 β go forth and send those requests, 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