# HG changeset patch # User yamahata@xxxxxxxxxxxxx # Date 1192602584 -32400 # Node ID 208908de6975954de268fdbc42db8067f5b64eeb # Parent 11666b14a1102ad8e8558cf79b4206c0a9a7682a make ia64 qemu-dm use of hvm param. use xc_get_hvm_param() PATCHNAME: ia64_qemu_dm_boot_use_xc_get_hvm_param Signed-off-by: Isaku Yamahata diff -r 11666b14a110 -r 208908de6975 tools/ioemu/vl.c --- a/tools/ioemu/vl.c Mon Oct 22 11:51:17 2007 +0900 +++ b/tools/ioemu/vl.c Wed Oct 17 15:29:44 2007 +0900 @@ -7807,25 +7807,40 @@ int main(int argc, char **argv) #elif defined(__ia64__) - nr_pages = ram_size/PAGE_SIZE; + xc_get_hvm_param(xc_handle, domid, HVM_PARAM_IOREQ_PFN, &ioreq_pfn); + fprintf(logfile, "shared page at pfn %lx\n", ioreq_pfn); + shared_page = xc_map_foreign_range(xc_handle, domid, PAGE_SIZE, + PROT_READ|PROT_WRITE, ioreq_pfn); + if (shared_page == NULL) { + fprintf(logfile, "map shared IO page returned error %d\n", errno); + exit(-1); + } + + xc_get_hvm_param(xc_handle, domid, HVM_PARAM_BUFIOREQ_PFN, &ioreq_pfn); + fprintf(logfile, "buffered io page at pfn %lx\n", ioreq_pfn); + buffered_io_page = xc_map_foreign_range(xc_handle, domid, PAGE_SIZE, + PROT_READ|PROT_WRITE, ioreq_pfn); + if (buffered_io_page == NULL) { + fprintf(logfile, "map buffered IO page returned error %d\n", errno); + exit(-1); + } + + xc_get_hvm_param(xc_handle, domid, HVM_PARAM_BUFPIOREQ_PFN, &ioreq_pfn); + fprintf(logfile, "buffered pio page at pfn %lx\n", ioreq_pfn); + buffered_pio_page = xc_map_foreign_range(xc_handle, domid, PAGE_SIZE, + PROT_READ|PROT_WRITE, ioreq_pfn); + if (buffered_pio_page == NULL) { + fprintf(logfile, "map buffered PIO page returned error %d\n", errno); + exit(-1); + } + + 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); - - buffered_pio_page = xc_map_foreign_range(xc_handle, domid, PAGE_SIZE, - PROT_READ|PROT_WRITE, - BUFFER_PIO_PAGE_START >> PAGE_SHIFT); for (i = 0; i < nr_pages; i++) page_array[i] = i;