| /* SPDX-License-Identifier: GPL-2.0 */ | 
 | #ifndef _ASM_X86_PAGE_32_H | 
 | #define _ASM_X86_PAGE_32_H | 
 |  | 
 | #include <asm/page_32_types.h> | 
 |  | 
 | #ifndef __ASSEMBLY__ | 
 |  | 
 | #define __phys_addr_nodebug(x)	((x) - PAGE_OFFSET) | 
 | #ifdef CONFIG_DEBUG_VIRTUAL | 
 | extern unsigned long __phys_addr(unsigned long); | 
 | #else | 
 | #define __phys_addr(x)		__phys_addr_nodebug(x) | 
 | #endif | 
 | #define __phys_addr_symbol(x)	__phys_addr(x) | 
 | #define __phys_reloc_hide(x)	RELOC_HIDE((x), 0) | 
 |  | 
 | #ifdef CONFIG_FLATMEM | 
 | #define pfn_valid(pfn)		((pfn) < max_mapnr) | 
 | #endif /* CONFIG_FLATMEM */ | 
 |  | 
 | #ifdef CONFIG_X86_USE_3DNOW | 
 | #include <asm/mmx.h> | 
 |  | 
 | static inline void clear_page(void *page) | 
 | { | 
 | 	mmx_clear_page(page); | 
 | } | 
 |  | 
 | static inline void copy_page(void *to, void *from) | 
 | { | 
 | 	mmx_copy_page(to, from); | 
 | } | 
 | #else  /* !CONFIG_X86_USE_3DNOW */ | 
 | #include <linux/string.h> | 
 |  | 
 | static inline void clear_page(void *page) | 
 | { | 
 | 	memset(page, 0, PAGE_SIZE); | 
 | } | 
 |  | 
 | static inline void copy_page(void *to, void *from) | 
 | { | 
 | 	memcpy(to, from, PAGE_SIZE); | 
 | } | 
 | #endif	/* CONFIG_X86_3DNOW */ | 
 | #endif	/* !__ASSEMBLY__ */ | 
 |  | 
 | #endif /* _ASM_X86_PAGE_32_H */ |