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