Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  *  arch/arm/include/asm/pgtable-nommu.h
0004  *
0005  *  Copyright (C) 1995-2002 Russell King
0006  *  Copyright (C) 2004  Hyok S. Choi
0007  */
0008 #ifndef _ASMARM_PGTABLE_NOMMU_H
0009 #define _ASMARM_PGTABLE_NOMMU_H
0010 
0011 #ifndef __ASSEMBLY__
0012 
0013 #include <linux/slab.h>
0014 #include <asm/processor.h>
0015 #include <asm/page.h>
0016 
0017 /*
0018  * Trivial page table functions.
0019  */
0020 #define pgd_present(pgd)    (1)
0021 #define pgd_none(pgd)       (0)
0022 #define pgd_bad(pgd)        (0)
0023 #define pgd_clear(pgdp)
0024 #define kern_addr_valid(addr)   (1)
0025 /* FIXME */
0026 /*
0027  * PMD_SHIFT determines the size of the area a second-level page table can map
0028  * PGDIR_SHIFT determines what a third-level page table entry can map
0029  */
0030 #define PGDIR_SHIFT     21
0031 
0032 #define PGDIR_SIZE      (1UL << PGDIR_SHIFT)
0033 #define PGDIR_MASK      (~(PGDIR_SIZE-1))
0034 /* FIXME */
0035 
0036 #define PAGE_NONE   __pgprot(0)
0037 #define PAGE_SHARED __pgprot(0)
0038 #define PAGE_COPY   __pgprot(0)
0039 #define PAGE_READONLY   __pgprot(0)
0040 #define PAGE_KERNEL __pgprot(0)
0041 
0042 #define swapper_pg_dir ((pgd_t *) 0)
0043 
0044 
0045 typedef pte_t *pte_addr_t;
0046 
0047 /*
0048  * ZERO_PAGE is a global shared page that is always zero: used
0049  * for zero-mapped memory areas etc..
0050  */
0051 #define ZERO_PAGE(vaddr)    (virt_to_page(0))
0052 
0053 /*
0054  * Mark the prot value as uncacheable and unbufferable.
0055  */
0056 #define pgprot_noncached(prot)  (prot)
0057 #define pgprot_writecombine(prot) (prot)
0058 #define pgprot_device(prot) (prot)
0059 
0060 
0061 /*
0062  * These would be in other places but having them here reduces the diffs.
0063  */
0064 extern unsigned int kobjsize(const void *objp);
0065 
0066 /*
0067  * All 32bit addresses are effectively valid for vmalloc...
0068  * Sort of meaningless for non-VM targets.
0069  */
0070 #define VMALLOC_START   0UL
0071 #define VMALLOC_END 0xffffffffUL
0072 
0073 #define FIRST_USER_ADDRESS      0UL
0074 
0075 #else 
0076 
0077 /*
0078  * dummy tlb and user structures.
0079  */
0080 #define v3_tlb_fns  (0)
0081 #define v4_tlb_fns  (0)
0082 #define v4wb_tlb_fns    (0)
0083 #define v4wbi_tlb_fns   (0)
0084 #define v6wbi_tlb_fns   (0)
0085 #define v7wbi_tlb_fns   (0)
0086 
0087 #define v3_user_fns (0)
0088 #define v4_user_fns (0)
0089 #define v4_mc_user_fns  (0)
0090 #define v4wb_user_fns   (0)
0091 #define v4wt_user_fns   (0)
0092 #define v6_user_fns (0)
0093 #define xscale_mc_user_fns (0)
0094 
0095 #endif /*__ASSEMBLY__*/
0096 
0097 #endif /* _ASMARM_PGTABLE_H */