__ioread32_copy(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… __ioread32_copy(9)

okay so bestie, welcome to the Kernel API Manual β€” this little page is all about __ioread32_copy, and it's literally the function that copies data out of MMIO space, in 32-bit units. no cap. πŸŽ€


✨ SYNOPSIS ✨

void __ioread32_copy (void *to , const void __iomem *from , size_t count
);

she's a void function, she takes three args, she gets the job done. periodt. 🫢


🌸 ARGUMENTS 🌸

  • to β€” the destination. and like, it must be 32-bit aligned, no exceptions, don't even try it πŸ™ˆ
  • from β€” the source, and it lives in MMIO space. also must be 32-bit aligned, twin, i'm so serious ⭐
  • count β€” how many 32-bit quantities you wanna copy. that's the vibes-per-call number πŸ’œ

πŸ¦‹ DESCRIPTION πŸ¦‹

so what she does is copy data from MMIO space over to kernel space, in units of 32 bits at a time. one little 32-bit snack at a time, iconic behavior honestly πŸ“

but bestie, hear me: the order of access is not guaranteed, and there is no memory barrier performed afterwards. like, at all. so don't go assuming the reads happen in a nice neat sequence or that everything's fenced up after β€” it's giving "i do the copy, i don't do the ordering" πŸ’€

⚠️ lowkey important: no ordering guarantee + no memory barrier afterwards. plan accordingly, bestie, don't let this be the plot twist in your driver 😭

🌈 SEE ALSO 🌈

go read those too, they're the sibling functions and they also ate πŸ”₯


and that's the page!! mwah πŸ’‹ this one comes to you from ./lib, dated October 2026 β€” ty for reading bestie, go forth and align your pointers πŸ‘‘βœ¨

πŸ“¦ where this page comes from