From 5258d0f312fbc17260ecdd8c8e87feb182366a05 Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Wed, 19 Jul 2006 19:19:50 +0000 Subject: [PATCH] - proper one instead of propagating i386 internals everywhere Changed files: XFree86-page_h.patch -> 1.3 --- XFree86-page_h.patch | 193 +++---------------------------------------- 1 file changed, 12 insertions(+), 181 deletions(-) diff --git a/XFree86-page_h.patch b/XFree86-page_h.patch index 6ea3346..59558c6 100644 --- a/XFree86-page_h.patch +++ b/XFree86-page_h.patch @@ -1,188 +1,19 @@ --- xc/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c.orig 2006-03-16 17:50:24.000000000 +0100 -+++ xc/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c 2006-06-11 09:00:06.306443728 +0200 -@@ -14,7 +14,7 @@ ++++ xc/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c 2006-07-19 21:10:52.676789250 +0200 +@@ -1,5 +1,7 @@ + /* $XFree86: xc/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c,v 1.35 2006/03/16 16:50:24 dawes Exp $ */ + ++#include /* #define for PAGE_* */ ++ + /* all driver need this */ + #include "xf86.h" + #include "xf86_OSproc.h" +@@ -14,8 +16,6 @@ #include "fbdevhw.h" #include "fbpriv.h" -#include "asm/page.h" /* #define for PAGE_* */ -+#include "page.h" /* #define for PAGE_* */ - +- #include "globals.h" #define DPMS_SERVER ---- xc/programs/Xserver/hw/xfree86/fbdevhw/page.h.old 2006-05-19 10:06:31.436211880 +0200 -+++ xc/programs/Xserver/hw/xfree86/fbdevhw/page.h 2006-04-18 01:30:30.230704088 +0200 -@@ -0,0 +1,174 @@ -+#ifndef _I386_PAGE_H -+#define _I386_PAGE_H -+ -+/* PAGE_SHIFT determines the page size */ -+#define PAGE_SHIFT 12 -+#define PAGE_SIZE (1UL << PAGE_SHIFT) -+#define PAGE_MASK (~(PAGE_SIZE-1)) -+ -+#define LARGE_PAGE_MASK (~(LARGE_PAGE_SIZE-1)) -+#define LARGE_PAGE_SIZE (1UL << PMD_SHIFT) -+ -+#ifdef __KERNEL__ -+#ifndef __ASSEMBLY__ -+ -+#include -+ -+#ifdef CONFIG_X86_USE_3DNOW -+ -+#include -+ -+#define clear_page(page) mmx_clear_page((void *)(page)) -+#define copy_page(to,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 ? -+ */ -+ -+#define clear_page(page) memset((void *)(page), 0, PAGE_SIZE) -+#define copy_page(to,from) memcpy((void *)(to), (void *)(from), PAGE_SIZE) -+ -+#endif -+ -+#define clear_user_page(page, vaddr, pg) clear_page(page) -+#define copy_user_page(to, from, vaddr, pg) copy_page(to, from) -+ -+#define alloc_zeroed_user_highpage(vma, vaddr) alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO, vma, vaddr) -+#define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE -+ -+/* -+ * These are used to make use of C type-checking.. -+ */ -+extern int nx_enabled; -+#ifdef CONFIG_X86_PAE -+extern unsigned long long __supported_pte_mask; -+typedef struct { unsigned long pte_low, pte_high; } pte_t; -+typedef struct { unsigned long long pmd; } pmd_t; -+typedef struct { unsigned long long pgd; } pgd_t; -+typedef struct { unsigned long long pgprot; } pgprot_t; -+#define pmd_val(x) ((x).pmd) -+#define pte_val(x) ((x).pte_low | ((unsigned long long)(x).pte_high << 32)) -+#define __pmd(x) ((pmd_t) { (x) } ) -+#define HPAGE_SHIFT 21 -+#else -+typedef struct { unsigned long pte_low; } pte_t; -+typedef struct { unsigned long pgd; } pgd_t; -+typedef struct { unsigned long pgprot; } pgprot_t; -+#define boot_pte_t pte_t /* or would you rather have a typedef */ -+#define pte_val(x) ((x).pte_low) -+#define HPAGE_SHIFT 22 -+#endif -+#define PTE_MASK PAGE_MASK -+ -+#ifdef CONFIG_HUGETLB_PAGE -+#define HPAGE_SIZE ((1UL) << HPAGE_SHIFT) -+#define HPAGE_MASK (~(HPAGE_SIZE - 1)) -+#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT) -+#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA -+#endif -+ -+#define pgd_val(x) ((x).pgd) -+#define pgprot_val(x) ((x).pgprot) -+ -+#define __pte(x) ((pte_t) { (x) } ) -+#define __pgd(x) ((pgd_t) { (x) } ) -+#define __pgprot(x) ((pgprot_t) { (x) } ) -+ -+#endif /* !__ASSEMBLY__ */ -+ -+/* to align the pointer to the (next) page boundary */ -+#define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK) -+ -+/* -+ * This handles the memory map.. We could make this a config -+ * option, but too many people screw it up, and too few need -+ * it. -+ * -+ * A __PAGE_OFFSET of 0xC0000000 means that the kernel has -+ * a virtual address space of one gigabyte, which limits the -+ * amount of physical memory you can use to about 950MB. -+ * -+ * If you want more physical memory than this then see the CONFIG_HIGHMEM4G -+ * and CONFIG_HIGHMEM64G options in the kernel configuration. -+ */ -+ -+#ifndef __ASSEMBLY__ -+ -+/* -+ * This much address space is reserved for vmalloc() and iomap() -+ * as well as fixmap mappings. -+ */ -+extern unsigned int __VMALLOC_RESERVE; -+ -+extern int sysctl_legacy_va_layout; -+ -+extern int page_is_ram(unsigned long pagenr); -+ -+#endif /* __ASSEMBLY__ */ -+ -+#if defined(CONFIG_VMSPLIT_3G_OPT) /* defined CONFIG_VMSPLIT_3G_OPT */ -+#ifdef __ASSEMBLY__ -+#define __PAGE_OFFSET (0xB0000000) -+#define __PHYSICAL_START CONFIG_PHYSICAL_START -+#else -+#define __PAGE_OFFSET (0xB0000000UL) -+#define __PHYSICAL_START ((unsigned long)CONFIG_PHYSICAL_START) -+#endif -+#elif defined(CONFIG_VMSPLIT_2G) /* defined CONFIG_VMSPLIT_2G */ -+#ifdef __ASSEMBLY__ -+#define __PAGE_OFFSET (0x78000000) -+#define __PHYSICAL_START CONFIG_PHYSICAL_START -+#else -+#define __PAGE_OFFSET (0x78000000UL) -+#define __PHYSICAL_START ((unsigned long)CONFIG_PHYSICAL_START) -+#endif -+#elif defined(CONFIG_VMSPLIT_1G) /* defined CONFIG_VMSPLIT_1G */ -+#ifdef __ASSEMBLY__ -+#define __PAGE_OFFSET (0x40000000) -+#define __PHYSICAL_START CONFIG_PHYSICAL_START -+#else -+#define __PAGE_OFFSET (0x40000000UL) -+#define __PHYSICAL_START ((unsigned long)CONFIG_PHYSICAL_START) -+#endif -+#else /* defined CONFIG_VMSPLIT_3G */ -+#ifdef __ASSEMBLY__ -+#define __PAGE_OFFSET (0xC0000000) -+#define __PHYSICAL_START CONFIG_PHYSICAL_START -+#else -+#define __PAGE_OFFSET (0xC0000000UL) -+#define __PHYSICAL_START ((unsigned long)CONFIG_PHYSICAL_START) -+#endif -+#endif /* end */ -+ -+ -+#define __KERNEL_START (__PAGE_OFFSET + __PHYSICAL_START) -+ -+ -+#define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET) -+#define VMALLOC_RESERVE ((unsigned long)__VMALLOC_RESERVE) -+#define MAXMEM (-__PAGE_OFFSET-__VMALLOC_RESERVE) -+#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET) -+#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) -+#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) -+#ifdef CONFIG_FLATMEM -+#define pfn_to_page(pfn) (mem_map + (pfn)) -+#define page_to_pfn(page) ((unsigned long)((page) - mem_map)) -+#define pfn_valid(pfn) ((pfn) < max_mapnr) -+#endif /* CONFIG_FLATMEM */ -+#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) -+ -+#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) -+ -+#define VM_DATA_DEFAULT_FLAGS \ -+ (VM_READ | VM_WRITE | \ -+ ((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \ -+ VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) -+ -+#endif /* __KERNEL__ */ -+ -+#include -+ -+#endif /* _I386_PAGE_H */ + #include -- 2.44.0