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 11 extern 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 25 static inline void clear_page(void *page) 26 { 27 mmx_clear_page(page); 28 } 29 30 static 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 37 static inline void clear_page(void *page) 38 { 39 memset(page, 0, PAGE_SIZE); 40 } 41 42 static 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