/* We don't support the 4K PFN hack with ioremap */ if (pgprot_val(prot) & H_PAGE_4K_PFN) return NULL;
/* * Choose an address to map it to. Once the vmalloc system is running, * we use it. Before that, we map using addresses going up from * ioremap_bot. vmalloc will use the addresses from IOREMAP_BASE * through ioremap_bot.
*/
paligned = addr & PAGE_MASK;
offset = addr & ~PAGE_MASK;
size = PAGE_ALIGN(addr + size) - paligned;
if (size == 0 || paligned == 0) return NULL;
if (slab_is_available()) return generic_ioremap_prot(addr, size, prot);
pr_warn("ioremap() called early from %pS. Use early_ioremap() instead\n", caller);
err = early_ioremap_range(ioremap_bot, paligned, size, prot); if (err) return NULL;
/* * Unmap an IO region and remove it from vmalloc'd list. * Access to IO memory should be serialized by driver.
*/ void iounmap(volatilevoid __iomem *token)
{ if (!slab_is_available()) return;
generic_iounmap(token);
}
EXPORT_SYMBOL(iounmap);
Messung V0.5
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.