fw_send_request(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– 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 to
  • tcode β€” the transaction code, iykyk
  • destination_id β€” the destination node ID, and yes it's made up of bus_ID and phy_ID
  • generation β€” 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 subaction
  • length β€” length of that payload, in bytes
  • callback β€” 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 🧚


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