--- common/lib/modules/fglrx/build_mod/firegl_public.c 2008-12-09 15:17:27.000000000 +0000 +++ common/lib/modules/fglrx/build_mod/firegl_public.c 2008-12-09 15:12:34.000000000 +0000 @@ -31,6 +31,9 @@ #include #if !defined(CONFIG_X86_PC) +#if !defined(CONFIG_X86_PC_XEN) +#if !defined(CONFIG_X86_XEN) +#if !defined(CONFIG_X86_64_XEN) #if !defined(CONFIG_X86_64) #if !defined(CONFIG_X86_VOYAGER) #if !defined(CONFIG_X86_NUMAQ) @@ -47,6 +50,9 @@ #endif #endif #endif +#endif +#endif +#endif /* The dirty-page-tracking patch included in NLD 9 SMP kernels defines * a static inline function that uses a GPL-only symbol in a header --- common/lib/modules/fglrx/build_mod/firegl_public.h 2008-12-09 15:17:27.000000000 +0000 +++ common/lib/modules/fglrx/build_mod/firegl_public.h 2008-12-09 15:15:45.000000000 +0000 @@ -30,9 +30,13 @@ #endif #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,9) - +#ifdef CONFIG_XEN +#define REMAP_PAGE_RANGE_FN io_remap_pfn_range +#define REMAP_PAGE_RANGE_STR "io_remap_pfn_range" +#else #define REMAP_PAGE_RANGE_FN remap_pfn_range #define REMAP_PAGE_RANGE_STR "remap_pfn_range" +#endif #define REMAP_PAGE_RANGE_OFF(offset) ((offset) >> PAGE_SHIFT) #else /* LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,9) */ @@ -43,13 +47,21 @@ #endif /* LINUX_VERSION_CODE > KERNEL_VERSION(2,6,9) */ +#ifdef CONFIG_XEN +#define REMAP_PAGE_RANGE(vma,offset) \ + REMAP_PAGE_RANGE_FN((vma), \ + (vma)->vm_start, \ + REMAP_PAGE_RANGE_OFF(offset), \ + (vma)->vm_end - (vma)->vm_start, \ + (vma)->vm_page_prot) +#else #define REMAP_PAGE_RANGE(vma,offset) \ REMAP_PAGE_RANGE_FN(FGL_VMA_API_PASS \ (vma)->vm_start, \ REMAP_PAGE_RANGE_OFF(offset), \ (vma)->vm_end - (vma)->vm_start, \ (vma)->vm_page_prot) - +#endif /* Page table macros */