page_32.h 1.0 KB
Newer Older
H
H. Peter Anvin 已提交
1 2
#ifndef _ASM_X86_PAGE_32_H
#define _ASM_X86_PAGE_32_H
3

4
#include <asm/page_32_types.h>
I
Ingo Molnar 已提交
5

6 7 8
#ifdef CONFIG_HUGETLB_PAGE
#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA
#endif
L
Linus Torvalds 已提交
9

10
#define __phys_addr_nodebug(x)	((x) - PAGE_OFFSET)
J
Jiri Slaby 已提交
11
#ifdef CONFIG_DEBUG_VIRTUAL
J
Jiri Slaby 已提交
12
extern unsigned long __phys_addr(unsigned long);
J
Jiri Slaby 已提交
13
#else
14
#define __phys_addr(x)		__phys_addr_nodebug(x)
J
Jiri Slaby 已提交
15
#endif
16 17 18 19 20 21
#define __phys_reloc_hide(x)	RELOC_HIDE((x), 0)

#ifdef CONFIG_FLATMEM
#define pfn_valid(pfn)		((pfn) < max_mapnr)
#endif /* CONFIG_FLATMEM */

22
#ifndef __ASSEMBLY__
23

24 25
#ifdef CONFIG_X86_USE_3DNOW
#include <asm/mmx.h>
26

27 28 29 30
static inline void clear_page(void *page)
{
	mmx_clear_page(page);
}
L
Linus Torvalds 已提交
31

32 33 34 35 36 37
static inline void copy_page(void *to, void *from)
{
	mmx_copy_page(to, from);
}
#else  /* !CONFIG_X86_USE_3DNOW */
#include <linux/string.h>
L
Linus Torvalds 已提交
38

39 40 41 42
static inline void clear_page(void *page)
{
	memset(page, 0, PAGE_SIZE);
}
43

44 45 46 47 48 49
static inline void copy_page(void *to, void *from)
{
	memcpy(to, from, PAGE_SIZE);
}
#endif	/* CONFIG_X86_3DNOW */
#endif	/* !__ASSEMBLY__ */
50

H
H. Peter Anvin 已提交
51
#endif /* _ASM_X86_PAGE_32_H */