162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef _M68K_PAGE_NO_H 362306a36Sopenharmony_ci#define _M68K_PAGE_NO_H 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#ifndef __ASSEMBLY__ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ciextern unsigned long memory_start; 862306a36Sopenharmony_ciextern unsigned long memory_end; 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#define clear_page(page) memset((page), 0, PAGE_SIZE) 1162306a36Sopenharmony_ci#define copy_page(to,from) memcpy((to), (from), PAGE_SIZE) 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#define clear_user_page(page, vaddr, pg) clear_page(page) 1462306a36Sopenharmony_ci#define copy_user_page(to, from, vaddr, pg) copy_page(to, from) 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci#define vma_alloc_zeroed_movable_folio(vma, vaddr) \ 1762306a36Sopenharmony_ci vma_alloc_folio(GFP_HIGHUSER_MOVABLE | __GFP_ZERO, 0, vma, vaddr, false) 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#define __pa(vaddr) ((unsigned long)(vaddr)) 2062306a36Sopenharmony_ci#define __va(paddr) ((void *)((unsigned long)(paddr))) 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_cistatic inline unsigned long virt_to_pfn(const void *kaddr) 2362306a36Sopenharmony_ci{ 2462306a36Sopenharmony_ci return __pa(kaddr) >> PAGE_SHIFT; 2562306a36Sopenharmony_ci} 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_cistatic inline void *pfn_to_virt(unsigned long pfn) 2862306a36Sopenharmony_ci{ 2962306a36Sopenharmony_ci return __va(pfn << PAGE_SHIFT); 3062306a36Sopenharmony_ci} 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci#define virt_to_page(addr) (mem_map + (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT)) 3362306a36Sopenharmony_ci#define page_to_virt(page) __va(((((page) - mem_map) << PAGE_SHIFT) + PAGE_OFFSET)) 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci#define virt_addr_valid(kaddr) (((unsigned long)(kaddr) >= PAGE_OFFSET) && \ 3662306a36Sopenharmony_ci ((unsigned long)(kaddr) < memory_end)) 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci#define ARCH_PFN_OFFSET PHYS_PFN(PAGE_OFFSET_RAW) 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci#endif /* __ASSEMBLY__ */ 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci#endif /* _M68K_PAGE_NO_H */ 43