__ioread32_copy(9)
π __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 π
- Kernel file
./lib/iomap_copy.c __iowrite32_copy(9)__iowrite64_copy(9)
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
- 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