unsigned long size);
  extern void early_iounmap(void __iomem *addr, unsigned long size);
  extern void fixup_early_ioremap(void);
 +extern bool is_early_ioremap_ptep(pte_t *ptep);
  
+ #ifdef CONFIG_XEN
+ struct bio_vec;
+ 
+ extern bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
+                                     const struct bio_vec *vec2);
+ 
+ #define BIOVEC_PHYS_MERGEABLE(vec1, vec2)                             \
+       (__BIOVEC_PHYS_MERGEABLE(vec1, vec2) &&                         \
+        (!xen_domain() || xen_biovec_phys_mergeable(vec1, vec2)))
+ #endif        /* CONFIG_XEN */
+ 
  #define IO_SPACE_LIMIT 0xffff
  
  #endif /* _ASM_X86_IO_H */
 
        local_irq_disable();
        early_boot_irqs_off();
  
 +      memblock_init();
 +
        xen_raw_console_write("mapping kernel into physical memory\n");
        pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages);
+       xen_ident_map_ISA();
  
 +      /* Allocate and initialize top and mid mfn levels for p2m structure */
 +      xen_build_mfn_list_list();
 +
        init_mm.pgd = pgd;
  
        /* keep using Xen gdt for now; no urgent need to change it */
 
  
  obj-$(CONFIG_PCI_STUB) += pci-stub.o
  
 -ifeq ($(CONFIG_PCI_DEBUG),y)
 -EXTRA_CFLAGS += -DDEBUG
 -endif
+ obj-$(CONFIG_XEN_PCIDEV_FRONTEND) += xen-pcifront.o
+ 
 +ccflags-$(CONFIG_PCI_DEBUG) := -DDEBUG