void __glue(_CACHE, _flush_user_cache_range)(unsigned long start, unsigned long end, unsigned int flags) { struct mm_struct *mm; if (current->mm) mm = current->mm; else if (current->active_mm) mm = current->active_mm; else { printk("active_mm: No mm... %lx-%lx\n", start, end); return; } for (start &= PAGE_MASK; start < end; start += PAGE_SIZE) { pte_t *ptep = lookup_pte(mm, start); if (ptep && pte_present(*ptep)) { unsigned long k = pte_pfn(*ptep) << PAGE_SHIFT; unsigned long e = k + PAGE_SIZE; l4_cache_flush_data(k, e); } } }
void __glue(_CACHE, _dma_flush_range)(const void *start, const void *stop) { l4_cache_flush_data((unsigned long)start, (unsigned long)stop); }
void __glue(_CACHE, _dma_flush_range)(const void *start, const void *stop) { printk("%s(%p, %p) called.\n", __func__, start, stop); l4_cache_flush_data((unsigned long)start, (unsigned long)stop); }