mm.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifdef CONFIG_MMU
  2. /* the upper-most page table pointer */
  3. extern pmd_t *top_pmd;
  4. #define TOP_PTE(x) pte_offset_kernel(top_pmd, x)
  5. static inline pmd_t *pmd_off_k(unsigned long virt)
  6. {
  7. return pmd_offset(pud_offset(pgd_offset_k(virt), virt), virt);
  8. }
  9. struct mem_type {
  10. pteval_t prot_pte;
  11. pmdval_t prot_l1;
  12. pmdval_t prot_sect;
  13. unsigned int domain;
  14. };
  15. const struct mem_type *get_mem_type(unsigned int type);
  16. extern void __flush_dcache_page(struct address_space *mapping, struct page *page);
  17. /*
  18. * ARM specific vm_struct->flags bits.
  19. */
  20. /* (super)section-mapped I/O regions used by ioremap()/iounmap() */
  21. #define VM_ARM_SECTION_MAPPING 0x80000000
  22. /* permanent static mappings from iotable_init() */
  23. #define VM_ARM_STATIC_MAPPING 0x40000000
  24. /* mapping type (attributes) for permanent static mappings */
  25. #define VM_ARM_MTYPE(mt) ((mt) << 20)
  26. #define VM_ARM_MTYPE_MASK (0x1f << 20)
  27. #endif
  28. #ifdef CONFIG_ZONE_DMA
  29. extern u32 arm_dma_limit;
  30. #else
  31. #define arm_dma_limit ((u32)~0)
  32. #endif
  33. void __init bootmem_init(void);
  34. void arm_mm_memblock_reserve(void);