mmap_action_simple_ioremap(9)
π mmap_action_simple_ioremap β from the Kernel API Manual, bestie
okay so picture this: you're hanging out in the kernel API manual, just vibing, and a page called mmap_action_simple_ioremap(9) shows up. that's our girl. she's a helper. she does one thing and she does it iconically. β¨
πΈ NAME πΈ
mmap_action_simple_ioremap β she's the helper for the mmap_prepare hook, and her whole job is to say "hey, this physical range right here, the one in [start_phys_addr, start_phys_addr + size), should get I/O remapped." that's it. that's the whole vibe. no cap. π
π SYNOPSIS π
void mmap_action_simple_ioremap (struct vm_area_desc *desc , phys_addr_t
start_phys_addr , unsigned long size );
look at her. void return, three arguments, zero drama. slay. π₯
π¦ ARGUMENTS π¦
okay bestie, here's what you're feeding her:
descβ the VMA descriptor for the VMA that's asking for the remap. she knows exactly which one, she's not confused, she's not guessing. πstart_phys_addrβ where the physical memory you want mapped actually starts. the beginning. the origin story. βsizeβ how big the area to map is. the range is[start_phys_addr, start_phys_addr + size), so like, mind the bracket, she's watching. π
β οΈ NOTE β οΈ
some drivers out there might want to tweak desc->page_prot for write-combine purposes or something similar. that's valid. that's their moment. do your thing, driver. π
π SEE ALSO π
she runs with a whole crowd, and honestly? the friend group is giving main character energy. the kernel file is ./include/linux/mm.h, and here's everybody else:
folio_page_idx(9)vma_flag_t(9)fault_flag_allow_retry_first(9)vma_kernel_pagesize(9)folio_order(9)folio_reset_order(9)folio_mapcount(9)folio_mapped(9)thp_order(9)thp_size(9)folio_get(9)folio_put(9)folio_put_refs(9)folios_put(9)vma_flags_is_cow_mapping(9)vma_is_cow_mapping(9)vma_desc_is_cow_mapping(9)folio_pfn(9)folio_mk_pte(9)folio_mk_pmd(9)folio_mk_pud(9)folio_maybe_dma_pinned(9)is_zero_page(9)is_zero_folio(9)folio_nr_pages(9)folio_next(9)folio_shift(9)folio_size(9)folio_maybe_mapped_shared(9)folio_expected_ref_count(9)zap_vma(9)ptdesc_address(9)ptdesc_set_kernel(9)ptdesc_clear_kernel(9)ptdesc_test_kernel(9)pagetable_alloc(9)pagetable_free(9)vma_lookup(9)vma_start_pgoff(9)vma_end_pgoff(9)vma_last_pgoff(9)vma_start_anon_pgoff(9)vma_end_anon_pgoff(9)vma_last_anon_pgoff(9)mmap_action_remap(9)mmap_action_remap_full(9)mmap_action_ioremap(9)mmap_action_ioremap_full(9)mmap_action_map_kernel_pages(9)mmap_action_map_kernel_pages_full(9)range_is_subset(9)range_in_vma(9)range_in_vma_desc(9)clear_pages(9)
like, fifty-plus besties. she's connected. iykyk. π«Ά
and that's the page, bestie π this one lives over in ./include/linux and the version floating around out there is dated October 2026 β go off, mmap_action_simple_ioremap(9), you ate. πβ¨πΈ
π¦ 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