LCOV - code coverage report
Current view: top level - arch/arm/mm - mm.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 2 5 40.0 %
Date: 2014-04-16 Functions: 0 0 -
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : #ifdef CONFIG_MMU
       2                 :            : #include <linux/list.h>
       3                 :            : #include <linux/vmalloc.h>
       4                 :            : 
       5                 :            : /* the upper-most page table pointer */
       6                 :            : extern pmd_t *top_pmd;
       7                 :            : 
       8                 :            : /*
       9                 :            :  * 0xffff8000 to 0xffffffff is reserved for any ARM architecture
      10                 :            :  * specific hacks for copying pages efficiently, while 0xffff4000
      11                 :            :  * is reserved for VIPT aliasing flushing by generic code.
      12                 :            :  *
      13                 :            :  * Note that we don't allow VIPT aliasing caches with SMP.
      14                 :            :  */
      15                 :            : #define COPYPAGE_MINICACHE      0xffff8000
      16                 :            : #define COPYPAGE_V6_FROM        0xffff8000
      17                 :            : #define COPYPAGE_V6_TO          0xffffc000
      18                 :            : /* PFN alias flushing, for VIPT caches */
      19                 :            : #define FLUSH_ALIAS_START       0xffff4000
      20                 :            : 
      21                 :            : static inline void set_top_pte(unsigned long va, pte_t pte)
      22                 :            : {
      23                 :  283038196 :         pte_t *ptep = pte_offset_kernel(top_pmd, va);
      24                 :  141519098 :         set_pte_ext(ptep, pte, 0);
      25                 :            :         local_flush_tlb_kernel_page(va);
      26                 :            : }
      27                 :            : 
      28                 :            : static inline pte_t get_top_pte(unsigned long va)
      29                 :            : {
      30                 :          0 :         pte_t *ptep = pte_offset_kernel(top_pmd, va);
      31                 :          0 :         return *ptep;
      32                 :            : }
      33                 :            : 
      34                 :            : static inline pmd_t *pmd_off_k(unsigned long virt)
      35                 :            : {
      36                 :          0 :         return pmd_offset(pud_offset(pgd_offset_k(virt), virt), virt);
      37                 :            : }
      38                 :            : 
      39                 :            : struct mem_type {
      40                 :            :         pteval_t prot_pte;
      41                 :            :         pteval_t prot_pte_s2;
      42                 :            :         pmdval_t prot_l1;
      43                 :            :         pmdval_t prot_sect;
      44                 :            :         unsigned int domain;
      45                 :            : };
      46                 :            : 
      47                 :            : const struct mem_type *get_mem_type(unsigned int type);
      48                 :            : 
      49                 :            : extern void __flush_dcache_page(struct address_space *mapping, struct page *page);
      50                 :            : 
      51                 :            : /*
      52                 :            :  * ARM specific vm_struct->flags bits.
      53                 :            :  */
      54                 :            : 
      55                 :            : /* (super)section-mapped I/O regions used by ioremap()/iounmap() */
      56                 :            : #define VM_ARM_SECTION_MAPPING  0x80000000
      57                 :            : 
      58                 :            : /* permanent static mappings from iotable_init() */
      59                 :            : #define VM_ARM_STATIC_MAPPING   0x40000000
      60                 :            : 
      61                 :            : /* empty mapping */
      62                 :            : #define VM_ARM_EMPTY_MAPPING    0x20000000
      63                 :            : 
      64                 :            : /* mapping type (attributes) for permanent static mappings */
      65                 :            : #define VM_ARM_MTYPE(mt)                ((mt) << 20)
      66                 :            : #define VM_ARM_MTYPE_MASK       (0x1f << 20)
      67                 :            : 
      68                 :            : /* consistent regions used by dma_alloc_attrs() */
      69                 :            : #define VM_ARM_DMA_CONSISTENT   0x20000000
      70                 :            : 
      71                 :            : 
      72                 :            : struct static_vm {
      73                 :            :         struct vm_struct vm;
      74                 :            :         struct list_head list;
      75                 :            : };
      76                 :            : 
      77                 :            : extern struct list_head static_vmlist;
      78                 :            : extern struct static_vm *find_static_vm_vaddr(void *vaddr);
      79                 :            : extern __init void add_static_vm_early(struct static_vm *svm);
      80                 :            : 
      81                 :            : #endif
      82                 :            : 
      83                 :            : #ifdef CONFIG_ZONE_DMA
      84                 :            : extern phys_addr_t arm_dma_limit;
      85                 :            : extern unsigned long arm_dma_pfn_limit;
      86                 :            : #else
      87                 :            : #define arm_dma_limit ((phys_addr_t)~0)
      88                 :            : #define arm_dma_pfn_limit (~0ul >> PAGE_SHIFT)
      89                 :            : #endif
      90                 :            : 
      91                 :            : extern phys_addr_t arm_lowmem_limit;
      92                 :            : 
      93                 :            : void __init bootmem_init(void);
      94                 :            : void arm_mm_memblock_reserve(void);
      95                 :            : void dma_contiguous_remap(void);

Generated by: LCOV version 1.9