Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 80165
b: refs/heads/master
c: 345b904
h: refs/heads/master
i:
  80163: 3493250
v: v3
  • Loading branch information
Jeremy Fitzhardinge authored and Ingo Molnar committed Jan 30, 2008
1 parent 2718f39 commit 6f3f0d5
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 74 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 83a5101bf2fa7dcf09ffd436078a021d32c97f85
refs/heads/master: 345b904c3f7c24fbfadfee7cddd5896d13b176d9
55 changes: 55 additions & 0 deletions trunk/include/asm-x86/page.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,11 @@
#define KERNEL_TEXT_SIZE (40*1024*1024)
#define KERNEL_TEXT_START _AC(0xffffffff80000000, UL)

#ifndef __ASSEMBLY__
void clear_page(void *page);
void copy_page(void *to, void *from);
#endif /* !__ASSEMBLY__ */

#endif /* CONFIG_X86_64 */

#ifdef CONFIG_X86_32
Expand Down Expand Up @@ -98,6 +103,34 @@
#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA
#endif

#ifndef __ASSEMBLY__
#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 /* CONFIG_X86_32 */

#define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
Expand All @@ -107,6 +140,28 @@
VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)


#ifndef __ASSEMBLY__
struct page;

static void inline clear_user_page(void *page, unsigned long vaddr,
struct page *pg)
{
clear_page(page);
}

static void inline copy_user_page(void *to, void *from, unsigned long vaddr,
struct page *topage)
{
copy_page(to, from);
}

#define __alloc_zeroed_user_highpage(movableflags, vma, vaddr) \
alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO | movableflags, vma, vaddr)
#define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE

#endif /* __ASSEMBLY__ */


#ifdef CONFIG_X86_32
# include "page_32.h"
#else
Expand Down
53 changes: 0 additions & 53 deletions trunk/include/asm-x86/page_32.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,59 +4,6 @@
#ifdef __KERNEL__
#ifndef __ASSEMBLY__

#include <linux/string.h>

#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

/*
* On older X86 processors it's not a win to use MMX here it seems.
* Maybe the K6-III ?
*/

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

struct page;

static void inline clear_user_page(void *page, unsigned long vaddr,
struct page *pg)
{
clear_page(page);
}

static void inline copy_user_page(void *to, void *from, unsigned long vaddr,
struct page *topage)
{
copy_page(to, from);
}

#define __alloc_zeroed_user_highpage(movableflags, vma, vaddr) \
alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO | movableflags, vma, vaddr)
#define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE

/*
* These are used to make use of C type-checking..
*/
Expand Down
20 changes: 0 additions & 20 deletions trunk/include/asm-x86/page_64.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,6 @@
extern unsigned long end_pfn;
extern unsigned long end_pfn_map;

void clear_page(void *page);
void copy_page(void *to, void *from);

struct page;

static void inline clear_user_page(void *page, unsigned long vaddr,
struct page *pg)
{
clear_page(page);
}

static void inline copy_user_page(void *to, void *from, unsigned long vaddr,
struct page *topage)
{
copy_page(to, from);
}

#define __alloc_zeroed_user_highpage(movableflags, vma, vaddr) \
alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO | movableflags, vma, vaddr)
#define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE
/*
* These are used to make use of C type-checking..
*/
Expand Down

0 comments on commit 6f3f0d5

Please sign in to comment.