iova_bitmap_alloc(9)
π iova_bitmap_alloc β bestie's guide to the IOVA bitmap allocator π
okay so this is a page from the Kernel API Manual, section 9 β yes, the kernel girlies have their own manpage section and she's serving. Let's get into it π
β¨ NAME β¨
iova_bitmap_alloc β literally allocates an IOVA bitmap object. that's the whole job. icon behaviour π
πΈ SYNOPSIS πΈ
struct iova_bitmap * iova_bitmap_alloc (unsigned long iova , size_t
length , unsigned long page_size , u64 __user *data );
note the spacing, bestie β we keep it exactly how the kernel gave it to us π«Ά
π¦ ARGUMENTS π¦
iovaβ start address of the IOVA range. the beginning. the main character's entrance πͺβ¨lengthβ length of the IOVA range. how far we're going, fr fr πpage_sizeβ page size of the IOVA bitmap. it defines what each bit granularity represents β so like, every single bit is carrying weight and this decides what it means πdataβ userspace address of the bitmap. it'su64 __user *and it's pointing at somebody's user memory, so treat it with respect π
π DESCRIPTION π
Allocates an IOVA object and initializes all its fields β every single one, no crumbs left behind β including the first user pages of data. it's giving "full setup, zero shortcuts" energy π
β RETURN β
A pointer to a newly allocated struct iova_bitmap β slay, fresh out of the allocator π
Or ERR_PTR on error π which, yeah, always check that. that's the vibe check. if you ignore it, you're on your own ngl π
π₯ SEE ALSO π₯
Kernel file ./drivers/iommu/iommufd/iova_bitmap.c β go read the source, iykyk π
the whole friend group, together at last π«ΆπΈ
no cap: this page comes from the ./drivers/iommu/iommufd corner of the kernel and it's dated October 2026 β so if you're reading it, hi from the future bestie, mwah πβ¨
π¦ 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