hsi_async(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

hsi_async(9) πŸ’…

okay bestie, this is from the Kernel API Manual and we're talking about hsi_async β€” submit an HSI transfer to the controller. like, that's the whole page. let's go πŸ¦‹

🌸 NAME 🌸

hsi_async β€” submit an HSI transfer to the controller ✨

✨ SYNOPSIS ✨

int hsi_async (struct hsi_client *cl , struct hsi_msg *msg );

πŸ‘‘ ARGUMENTS πŸ‘‘

  • cl β€” the HSI client that is sending the transfer, main character energy πŸ’…
  • msg β€” the HSI transfer passed to the controller, aka the message getting submitted πŸŽ€

πŸ’– DESCRIPTION πŸ’–

okay so your HSI message must have the channel, ttype, complete, and destructor fields set beforehand. no cap, set them before you call this.

if nents > 0, then the client also has to initialize the scatterlists so they point to the buffers to write to or read from. yes, that part is on you 🫢

HSI controllers relay on pre-allocated buffers from their clients, and they do not allocate buffers on their own. like, the buffers are the client's job, periodt.

once the HSI message transfer finishes, the HSI controller calls the complete callback with the status and actual_len fields of the HSI message updated. heads up: the complete callback can be called before returning from hsi_async β€” yes, before. so don't be shocked 😭

returns -errno on failure or 0 on success. that's the vibe check, bestie.

πŸ”₯ SEE ALSO πŸ”₯

Kernel file: ./drivers/hsi/hsi_core.c β€” go peek if you're nosy πŸ‘€

source/version: ./drivers/hsi Β· date: October 2026 Β· page: hsi_async(9) β€” byeee, ily πŸ«ΆπŸ’–

πŸ“¦ where this page comes from