All pastes #22690 Raw Edit

Untitled

public text v1 · immutable
#22690 ·published 2005-09-12 05:30 UTC
rendered paste body
int simple_mmap (struct file *filp, struct vm_area_struct *vma)
{
                                                                                                                             
        unsigned long physical = PHYSICAL_ADDRESS    ;
        unsigned long off = 0 ;
                                                                                                                             
         vma->vm_pgoff = off >> PAGE_SHIFT;
         vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
         vma->vm_flags = vma->vm_flags | VM_IO | VM_RESERVED ;
                        /* Memory mapped I/O and DONT Swap out  */
                                                                                                                             
         printk (KERN_WARNING "Start Address\n", vma -> vm_start) ;
                                                                                                                             
        if (io_remap_pfn_range (vma, vma->vm_start, physical >> PAGE_SHIFT,
                             vma->vm_end - vma->vm_start, vma->vm_page_prot) ) {
                                                                                                                             
                printk (KERN_WARNING "io_remap_pfn failed\n") ;
                return -1 ;
                                                                                                                             
        } else {
                printk (KERN_WARNING "io_remap_pfn succeeds\n") ;
                return 0 ;
        }
                                                                                                                             
                                                                                                                             
}