1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2138ff346SGreg Ungerer #ifndef _M68K_PAGE_H 3138ff346SGreg Ungerer #define _M68K_PAGE_H 4138ff346SGreg Ungerer 5138ff346SGreg Ungerer #include <linux/const.h> 6138ff346SGreg Ungerer #include <asm/setup.h> 7138ff346SGreg Ungerer #include <asm/page_offset.h> 8138ff346SGreg Ungerer 9138ff346SGreg Ungerer /* PAGE_SHIFT determines the page size */ 109e95f7cdSGreg Ungerer #if defined(CONFIG_SUN3) || defined(CONFIG_COLDFIRE) 119e95f7cdSGreg Ungerer #define PAGE_SHIFT 13 1249148020SSam Ravnborg #else 139e95f7cdSGreg Ungerer #define PAGE_SHIFT 12 1449148020SSam Ravnborg #endif 15138ff346SGreg Ungerer #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) 16138ff346SGreg Ungerer #define PAGE_MASK (~(PAGE_SIZE-1)) 17138ff346SGreg Ungerer #define PAGE_OFFSET (PAGE_OFFSET_RAW) 18138ff346SGreg Ungerer 19138ff346SGreg Ungerer #ifndef __ASSEMBLY__ 20138ff346SGreg Ungerer 21138ff346SGreg Ungerer /* 22138ff346SGreg Ungerer * These are used to make use of C type-checking.. 23138ff346SGreg Ungerer */ 2460e50f34SMike Rapoport #if !defined(CONFIG_MMU) || CONFIG_PGTABLE_LEVELS == 3 25ef22d8abSPeter Zijlstra typedef struct { unsigned long pmd; } pmd_t; 26ef22d8abSPeter Zijlstra #define pmd_val(x) ((&x)->pmd) 27ef22d8abSPeter Zijlstra #define __pmd(x) ((pmd_t) { (x) } ) 2860e50f34SMike Rapoport #endif 2960e50f34SMike Rapoport 3060e50f34SMike Rapoport typedef struct { unsigned long pte; } pte_t; 31138ff346SGreg Ungerer typedef struct { unsigned long pgd; } pgd_t; 32138ff346SGreg Ungerer typedef struct { unsigned long pgprot; } pgprot_t; 3361c64a25SPeter Zijlstra 34de9e354eSWill Deacon #if defined(CONFIG_SUN3) 35de9e354eSWill Deacon /* 36de9e354eSWill Deacon * Sun3 still uses the asm-generic/pgalloc.h code and thus needs this 37de9e354eSWill Deacon * definition. It would be possible to unify Sun3 and ColdFire pgalloc and have 38de9e354eSWill Deacon * all of m68k use the same type. 39de9e354eSWill Deacon */ 40138ff346SGreg Ungerer typedef struct page *pgtable_t; 4161c64a25SPeter Zijlstra #else 4261c64a25SPeter Zijlstra typedef pte_t *pgtable_t; 4361c64a25SPeter Zijlstra #endif 44138ff346SGreg Ungerer 45138ff346SGreg Ungerer #define pte_val(x) ((x).pte) 46138ff346SGreg Ungerer #define pgd_val(x) ((x).pgd) 47138ff346SGreg Ungerer #define pgprot_val(x) ((x).pgprot) 48138ff346SGreg Ungerer 49138ff346SGreg Ungerer #define __pte(x) ((pte_t) { (x) } ) 50138ff346SGreg Ungerer #define __pgd(x) ((pgd_t) { (x) } ) 51138ff346SGreg Ungerer #define __pgprot(x) ((pgprot_t) { (x) } ) 52138ff346SGreg Ungerer 5388be3515SGreg Ungerer extern unsigned long _rambase; 5488be3515SGreg Ungerer extern unsigned long _ramstart; 5588be3515SGreg Ungerer extern unsigned long _ramend; 5688be3515SGreg Ungerer 57138ff346SGreg Ungerer #endif /* !__ASSEMBLY__ */ 58138ff346SGreg Ungerer 59138ff346SGreg Ungerer #ifdef CONFIG_MMU 60a1ce3928SDavid Howells #include <asm/page_mm.h> 61138ff346SGreg Ungerer #else 62a1ce3928SDavid Howells #include <asm/page_no.h> 63138ff346SGreg Ungerer #endif 64138ff346SGreg Ungerer 65138ff346SGreg Ungerer #include <asm-generic/getorder.h> 66*d82f07f0SMike Rapoport (IBM) #include <asm-generic/memory_model.h> 67138ff346SGreg Ungerer 68138ff346SGreg Ungerer #endif /* _M68K_PAGE_H */ 69