sba_mark_invalid(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… sba_mark_invalid(9) β€” from the Kernel API Manual ✨

🌸 NAME 🌸

sba_mark_invalid β€” invalidate one or more IO PDIR entries. That's the whole assignment, bestie. πŸ’…


✨ SYNOPSIS ✨

void sba_mark_invalid (struct ioc *ioc , dma_addr_t iova , size_t
byte_cnt );

okay so here's the signature β€” copy it exactly, no cap 🫢


πŸŽ€ ARGUMENTS πŸŽ€

  • ioc β€” the IO MMU structure which owns the pdir we are interested in. πŸ’–
  • iova β€” the IO Virtual Address mapped earlier. ✨
  • byte_cnt β€” number of bytes this mapping covers. πŸŽ€

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so the move is: mark the IO PDIR entry(ies) as Invalid and invalidate corresponding IO TLB entry too. The Ike PCOM (Purge Command Register) is there to purge stale entries in the IO TLB when unmapping entries. 🧹✨

The PCOM register supports purging of multiple pages, with a minium of 1 page and a maximum of 2GB. Hardware requires the address be aligned to the size of the range being purged. The size of the range must be a power of 2. The "Cool perf optimization" in the allocation routine helps keep that true. πŸ‘‘


πŸ’œ SEE ALSO πŸ’œ

also peep the Kernel file ./drivers/parisc/sba_iommu.c and these absolute icons: sba_dump_ranges(9), sba_dump_tlb(9), sba_dump_pdir_entry(9), sba_check_pdir(9), sba_dump_sg(9), sba_search_bitmap(9), sba_alloc_range(9), sba_free_range(9), sba_io_pdir_entry(9), sba_dma_supported(9), sba_map_single(9), sba_unmap_phys(9), sba_alloc(9), sba_free(9), sba_map_sg(9), sba_unmap_sg(9), sba_get_iommu(9), sba_directed_lmmio(9), sba_distributed_lmmio(9). 🌈⭐


that's the whole page, bestie 🫢 β€” from ./drivers/parisc, October 2026, for sba_mark_invalid(9) πŸ’–πŸŒˆ

πŸ“¦ where this page comes from