⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ioemu-ia64

📁 xen虚拟机源代码安装包
💻
字号:
Index: ioemu/hw/iommu.c===================================================================--- ioemu.orig/hw/iommu.c	2007-05-11 10:00:33.000000000 +0100+++ ioemu/hw/iommu.c	2007-05-11 10:01:09.000000000 +0100@@ -82,7 +82,11 @@ #define IOPTE_VALID         0x00000002 /* IOPTE is valid */ #define IOPTE_WAZ           0x00000001 /* Write as zeros */ +#if defined(__i386__) || defined(__x86_64__) #define PAGE_SHIFT      12+#elif defined(__ia64__)+#define PAGE_SHIFT      14+#endif  #define PAGE_SIZE       (1 << PAGE_SHIFT) #define PAGE_MASK	(PAGE_SIZE - 1) Index: ioemu/vl.c===================================================================--- ioemu.orig/vl.c	2007-05-11 10:01:09.000000000 +0100+++ ioemu/vl.c	2007-05-11 10:01:09.000000000 +0100@@ -7149,6 +7149,11 @@     } #endif +#if defined (__ia64__)+    if (ram_size > MMIO_START)+        ram_size += 1 * MEM_G; /* skip 3G-4G MMIO, LEGACY_IO_SPACE etc. */+#endif+     /* init the memory */     phys_ram_size = ram_size + vga_ram_size + bios_size; @@ -7198,6 +7203,44 @@      free(page_array); +#elif defined(__ia64__)++    nr_pages = ram_size/PAGE_SIZE;++    page_array = (xen_pfn_t *)malloc(nr_pages * sizeof(xen_pfn_t));+    if (page_array == NULL) {+        fprintf(logfile, "malloc returned error %d\n", errno);+        exit(-1);+    }++    shared_page = xc_map_foreign_range(xc_handle, domid, PAGE_SIZE,+                                       PROT_READ|PROT_WRITE,+                                       IO_PAGE_START >> PAGE_SHIFT);++    buffered_io_page =xc_map_foreign_range(xc_handle, domid, PAGE_SIZE,+                                       PROT_READ|PROT_WRITE,+                                       BUFFER_IO_PAGE_START >> PAGE_SHIFT);++    for (i = 0; i < nr_pages; i++)+        page_array[i] = i;+	+    /* VTI will not use memory between 3G~4G, so we just pass a legal pfn+       to make QEMU map continuous virtual memory space */+    if (ram_size > MMIO_START) {	+        for (i = 0 ; i < (MEM_G >> PAGE_SHIFT); i++)+            page_array[(MMIO_START >> PAGE_SHIFT) + i] =+                (STORE_PAGE_START >> PAGE_SHIFT); +    }++    phys_ram_base = xc_map_foreign_batch(xc_handle, domid,+                                         PROT_READ|PROT_WRITE,+                                         page_array, nr_pages);+    if (phys_ram_base == 0) {+        fprintf(logfile, "xc_map_foreign_batch returned error %d\n", errno);+        exit(-1);+    }+    free(page_array);+#endif #else  /* !CONFIG_DM */      phys_ram_base = qemu_vmalloc(phys_ram_size);Index: ioemu/target-i386-dm/cpu.h===================================================================--- ioemu.orig/target-i386-dm/cpu.h	2007-05-11 10:01:09.000000000 +0100+++ ioemu/target-i386-dm/cpu.h	2007-05-11 10:01:09.000000000 +0100@@ -78,7 +78,11 @@ /* helper2.c */ int main_loop(void); +#if defined(__i386__) || defined(__x86_64__) #define TARGET_PAGE_BITS 12+#elif defined(__ia64__)+#define TARGET_PAGE_BITS 14+#endif  #include "cpu-all.h"  #endif /* CPU_I386_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -