1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _ASM_X86_PAGE_32_H 3#define _ASM_X86_PAGE_32_H 4 5#include <asm/page_32_types.h> 6 7#ifndef __ASSEMBLY__ 8 9#define __phys_addr_nodebug(x) ((x) - PAGE_OFFSET) 10#ifdef CONFIG_DEBUG_VIRTUAL 11extern unsigned long __phys_addr(unsigned long); 12#else 13#define __phys_addr(x) __phys_addr_nodebug(x) 14#endif 15#define __phys_addr_symbol(x) __phys_addr(x) 16#define __phys_reloc_hide(x) RELOC_HIDE((x), 0) 17 18#ifdef CONFIG_FLATMEM 19#define pfn_valid(pfn) ((pfn) < max_mapnr) 20#endif /* CONFIG_FLATMEM */ 21 22#ifdef CONFIG_X86_USE_3DNOW 23#include <asm/mmx.h> 24 25static inline void clear_page(void *page) 26{ 27 mmx_clear_page(page); 28} 29 30static inline void copy_page(void *to, void *from) 31{ 32 mmx_copy_page(to, from); 33} 34#else /* !CONFIG_X86_USE_3DNOW */ 35#include <linux/string.h> 36 37static inline void clear_page(void *page) 38{ 39 memset(page, 0, PAGE_SIZE); 40} 41 42static inline void copy_page(void *to, void *from) 43{ 44 memcpy(to, from, PAGE_SIZE); 45} 46#endif /* CONFIG_X86_3DNOW */ 47#endif /* !__ASSEMBLY__ */ 48 49#endif /* _ASM_X86_PAGE_32_H */ 50