WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] merge

# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID dfdb9cfc8b7969cb9ea4fd4995c68cdfdb3acdac
# Parent  1d36cca98fc3710643483e5a5648b7ae317c735d
# Parent  6526a91d55553b712cb210cbefb363e71b380679
merge

diff -r 1d36cca98fc3 -r dfdb9cfc8b79 
linux-2.6-xen-sparse/arch/ia64/kernel/setup.c
--- a/linux-2.6-xen-sparse/arch/ia64/kernel/setup.c     Fri Feb 10 11:35:19 2006
+++ b/linux-2.6-xen-sparse/arch/ia64/kernel/setup.c     Fri Feb 10 15:37:14 2006
@@ -61,6 +61,9 @@
 #include <asm/system.h>
 #include <asm/unistd.h>
 #include <asm/system.h>
+#ifdef CONFIG_XEN
+#include <asm/hypervisor.h>
+#endif
 
 #if defined(CONFIG_SMP) && (IA64_CPU_SIZE > PAGE_SIZE)
 # error "struct cpuinfo_ia64 too big!"
@@ -240,6 +243,12 @@
        rsvd_region[n].start = (unsigned long) ia64_imva((void *)KERNEL_START);
        rsvd_region[n].end   = (unsigned long) ia64_imva(_end);
        n++;
+
+#ifdef CONFIG_XEN
+       rsvd_region[n].start = (unsigned long) 
(HYPERVISOR_shared_info->arch.start_info_pfn << PAGE_SHIFT);
+       rsvd_region[n].end   = rsvd_region[n].start + PAGE_SIZE;
+       n++;
+#endif
 
 #ifdef CONFIG_BLK_DEV_INITRD
        if (ia64_boot_param->initrd_start) {
diff -r 1d36cca98fc3 -r dfdb9cfc8b79 
linux-2.6-xen-sparse/arch/ia64/xen/drivers/evtchn_ia64.c
--- a/linux-2.6-xen-sparse/arch/ia64/xen/drivers/evtchn_ia64.c  Fri Feb 10 
11:35:19 2006
+++ b/linux-2.6-xen-sparse/arch/ia64/xen/drivers/evtchn_ia64.c  Fri Feb 10 
15:37:14 2006
@@ -106,8 +106,10 @@
     BUG_ON(HYPERVISOR_event_channel_op(&op) != 0 );
     evtchn = op.u.bind_virq.port;
 
-    if (!unbound_irq(evtchn))
-       return -EINVAL;
+    if (!unbound_irq(evtchn)) {
+        evtchn = -EINVAL;
+        goto out;
+    }
 
     evtchns[evtchn].handler = handler;
     evtchns[evtchn].dev_id = dev_id;
@@ -115,6 +117,7 @@
     irq_info[evtchn] = mk_irq_info(IRQT_VIRQ, virq, evtchn);
 
     unmask_evtchn(evtchn);
+out:
     spin_unlock(&irq_mapping_update_lock);
     return evtchn;
 }
@@ -125,8 +128,10 @@
 {
     spin_lock(&irq_mapping_update_lock);
 
-    if (!unbound_irq(evtchn))
-       return -EINVAL;
+    if (!unbound_irq(evtchn)) {
+       evtchn = -EINVAL;
+       goto out;
+    }
 
     evtchns[evtchn].handler = handler;
     evtchns[evtchn].dev_id = dev_id;
@@ -134,6 +139,7 @@
     irq_info[evtchn] = mk_irq_info(IRQT_EVTCHN, 0, evtchn);
 
     unmask_evtchn(evtchn);
+out:
     spin_unlock(&irq_mapping_update_lock);
     return evtchn;
 }
@@ -158,7 +164,7 @@
     spin_lock(&irq_mapping_update_lock);
 
     if (unbound_irq(irq))
-        return;
+        goto out;
 
     op.cmd = EVTCHNOP_close;
     op.u.close.port = evtchn;
@@ -179,6 +185,7 @@
     evtchns[evtchn].handler = NULL;
     evtchns[evtchn].opened = 0;
 
+out:
     spin_unlock(&irq_mapping_update_lock);
 }
 
diff -r 1d36cca98fc3 -r dfdb9cfc8b79 xen/arch/ia64/vmx/vmx_init.c
--- a/xen/arch/ia64/vmx/vmx_init.c      Fri Feb 10 11:35:19 2006
+++ b/xen/arch/ia64/vmx/vmx_init.c      Fri Feb 10 15:37:14 2006
@@ -317,7 +317,7 @@
            for (j = io_ranges[i].start;
                 j < io_ranges[i].start + io_ranges[i].size;
                 j += PAGE_SIZE)
-               map_domain_page(d, j, io_ranges[i].type);
+               assign_domain_page(d, j, io_ranges[i].type);
        }
 
        conf_nr = VMX_CONFIG_PAGES(d);
@@ -334,14 +334,14 @@
        for (i = 0;
             i < (end < MMIO_START ? end : MMIO_START);
             i += PAGE_SIZE, pgnr++)
-           map_domain_page(d, i, pgnr << PAGE_SHIFT);
+           assign_domain_page(d, i, pgnr << PAGE_SHIFT);
 
        /* Map normal memory beyond 4G */
        if (unlikely(end > MMIO_START)) {
            start = 4 * MEM_G;
            end = start + (end - 3 * MEM_G);
            for (i = start; i < end; i += PAGE_SIZE, pgnr++)
-               map_domain_page(d, i, pgnr << PAGE_SHIFT);
+               assign_domain_page(d, i, pgnr << PAGE_SHIFT);
        }
 
        d->arch.max_pfn = end >> PAGE_SHIFT;
@@ -356,7 +356,7 @@
        /* Map guest firmware */
        pgnr = page_to_mfn(page);
        for (i = GFW_START; i < GFW_START + GFW_SIZE; i += PAGE_SIZE, pgnr++)
-           map_domain_page(d, i, pgnr << PAGE_SHIFT);
+           assign_domain_page(d, i, pgnr << PAGE_SHIFT);
 
        if (unlikely((page = alloc_domheap_pages(d, 1, 0)) == NULL)) {
            printk("Could not allocate order=1 pages for vmx contig alloc\n");
@@ -365,9 +365,9 @@
 
        /* Map for shared I/O page and xenstore */
        pgnr = page_to_mfn(page);
-       map_domain_page(d, IO_PAGE_START, pgnr << PAGE_SHIFT);
+       assign_domain_page(d, IO_PAGE_START, pgnr << PAGE_SHIFT);
        pgnr++;
-       map_domain_page(d, STORE_PAGE_START, pgnr << PAGE_SHIFT);
+       assign_domain_page(d, STORE_PAGE_START, pgnr << PAGE_SHIFT);
 
        set_bit(ARCH_VMX_CONTIG_MEM, &v->arch.arch_vmx.flags);
        return 0;
diff -r 1d36cca98fc3 -r dfdb9cfc8b79 xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.c        Fri Feb 10 11:35:19 2006
+++ b/xen/arch/ia64/xen/domain.c        Fri Feb 10 15:37:14 2006
@@ -389,7 +389,7 @@
 }
 
 /* allocate new page for domain and map it to the specified metaphysical addr 
*/
-struct page * map_new_domain_page(struct domain *d, unsigned long mpaddr)
+struct page * assign_new_domain_page(struct domain *d, unsigned long mpaddr)
 {
        struct mm_struct *mm = d->arch.mm;
        struct page *p = (struct page *)0;
@@ -400,7 +400,7 @@
 extern unsigned long vhpt_paddr, vhpt_pend;
 
        if (!mm->pgd) {
-               printk("map_new_domain_page: domain pgd must exist!\n");
+               printk("assign_new_domain_page: domain pgd must exist!\n");
                return(p);
        }
        pgd = pgd_offset(mm,mpaddr);
@@ -428,21 +428,21 @@
                        if (p) memset(__va(page_to_maddr(p)),0,PAGE_SIZE);
                }
                if (unlikely(!p)) {
-printf("map_new_domain_page: Can't alloc!!!! Aaaargh!\n");
+printf("assign_new_domain_page: Can't alloc!!!! Aaaargh!\n");
                        return(p);
                }
 if (unlikely(page_to_maddr(p) > vhpt_paddr && page_to_maddr(p) < vhpt_pend)) {
-  printf("map_new_domain_page: reassigned vhpt page %p!!\n",page_to_maddr(p));
+  printf("assign_new_domain_page: reassigned vhpt page 
%p!!\n",page_to_maddr(p));
 }
                set_pte(pte, pfn_pte(page_to_maddr(p) >> PAGE_SHIFT,
                        __pgprot(__DIRTY_BITS | _PAGE_PL_2 | _PAGE_AR_RWX)));
        }
-       else printk("map_new_domain_page: mpaddr %lx already mapped!\n",mpaddr);
+       else printk("assign_new_domain_page: mpaddr %lx already 
mapped!\n",mpaddr);
        return p;
 }
 
 /* map a physical address to the specified metaphysical addr */
-void map_domain_page(struct domain *d, unsigned long mpaddr, unsigned long 
physaddr)
+void assign_domain_page(struct domain *d, unsigned long mpaddr, unsigned long 
physaddr)
 {
        struct mm_struct *mm = d->arch.mm;
        pgd_t *pgd;
@@ -451,7 +451,7 @@
        pte_t *pte;
 
        if (!mm->pgd) {
-               printk("map_domain_page: domain pgd must exist!\n");
+               printk("assign_domain_page: domain pgd must exist!\n");
                return;
        }
        pgd = pgd_offset(mm,mpaddr);
@@ -472,11 +472,11 @@
                set_pte(pte, pfn_pte(physaddr >> PAGE_SHIFT,
                        __pgprot(__DIRTY_BITS | _PAGE_PL_2 | _PAGE_AR_RWX)));
        }
-       else printk("map_domain_page: mpaddr %lx already mapped!\n",mpaddr);
+       else printk("assign_domain_page: mpaddr %lx already mapped!\n",mpaddr);
 }
 #if 0
 /* map a physical address with specified I/O flag */
-void map_domain_io_page(struct domain *d, unsigned long mpaddr, unsigned long 
flags)
+void assign_domain_io_page(struct domain *d, unsigned long mpaddr, unsigned 
long flags)
 {
        struct mm_struct *mm = d->arch.mm;
        pgd_t *pgd;
@@ -486,7 +486,7 @@
        pte_t io_pte;
 
        if (!mm->pgd) {
-               printk("map_domain_page: domain pgd must exist!\n");
+               printk("assign_domain_page: domain pgd must exist!\n");
                return;
        }
        ASSERT(flags & GPFN_IO_MASK);
@@ -509,7 +509,7 @@
                pte_val(io_pte) = flags;
                set_pte(pte, io_pte);
        }
-       else printk("map_domain_page: mpaddr %lx already mapped!\n",mpaddr);
+       else printk("assign_domain_page: mpaddr %lx already mapped!\n",mpaddr);
 }
 #endif
 void mpafoo(unsigned long mpaddr)
@@ -557,7 +557,7 @@
        }
        /* if lookup fails and mpaddr is "legal", "create" the page */
        if ((mpaddr >> PAGE_SHIFT) < d->max_pages) {
-               if (map_new_domain_page(d,mpaddr)) goto tryagain;
+               if (assign_new_domain_page(d,mpaddr)) goto tryagain;
        }
        printk("lookup_domain_mpa: bad mpa %p (> %p\n",
                mpaddr,d->max_pages<<PAGE_SHIFT);
@@ -655,15 +655,9 @@
        else
 #endif
        while (memsz > 0) {
-#ifdef DOMU_AUTO_RESTART
-               pteval = lookup_domain_mpa(d,dom_mpaddr);
-               if (pteval) dom_imva = __va(pteval & _PFN_MASK);
-               else { printf("loaddomainelfimage: BAD!\n"); while(1); }
-#else
-               p = map_new_domain_page(d,dom_mpaddr);
+               p = assign_new_domain_page(d,dom_mpaddr);
                if (unlikely(!p)) BUG();
                dom_imva = __va(page_to_maddr(p));
-#endif
                if (filesz > 0) {
                        if (filesz >= PAGE_SIZE)
                                copy_memory(dom_imva,elfaddr,PAGE_SIZE);
@@ -788,16 +782,15 @@
        unsigned long pkern_entry;
        unsigned long pkern_end;
        unsigned long pinitrd_start = 0;
+       unsigned long pstart_info;
        unsigned long ret, progress = 0;
 
 //printf("construct_dom0: starting\n");
 
-#ifndef CLONE_DOMAIN0
        /* Sanity! */
        BUG_ON(d != dom0);
        BUG_ON(d->vcpu[0] == NULL);
        BUG_ON(test_bit(_VCPUF_initialised, &v->vcpu_flags));
-#endif
 
        memset(&dsi, 0, sizeof(struct domain_setup_info));
 
@@ -847,13 +840,18 @@
                           (PAGE_ALIGN(initrd_len) + 4*1024*1024);
 
              memcpy(__va(pinitrd_start),initrd_start,initrd_len);
+             pstart_info = PAGE_ALIGN(pinitrd_start + initrd_len);
+        } else {
+             pstart_info = PAGE_ALIGN(pkern_end);
         }
 
        printk("METAPHYSICAL MEMORY ARRANGEMENT:\n"
               " Kernel image:  %lx->%lx\n"
               " Entry address: %lx\n"
-               " Init. ramdisk: %lx len %lx\n",
-               pkern_start, pkern_end, pkern_entry, pinitrd_start, initrd_len);
+              " Init. ramdisk: %lx len %lx\n"
+              " Start info.:   %lx->%lx\n",
+              pkern_start, pkern_end, pkern_entry, pinitrd_start, initrd_len,
+              pstart_info, pstart_info + PAGE_SIZE);
 
        if ( (pkern_end - pkern_start) > (d->max_pages * PAGE_SIZE) )
        {
@@ -908,9 +906,9 @@
 
 
        /* Set up start info area. */
-       si = (start_info_t *)alloc_xenheap_page();
+       d->shared_info->arch.start_info_pfn = pstart_info >> PAGE_SHIFT;
+       si = __va(pstart_info);
        memset(si, 0, PAGE_SIZE);
-       d->shared_info->arch.start_info_pfn = __pa(si) >> PAGE_SHIFT;
        sprintf(si->magic, "xen-%i.%i-ia64", XEN_VERSION, XEN_SUBVERSION);
        si->nr_pages     = d->tot_pages;
 
@@ -962,9 +960,6 @@
        sync_split_caches();
 
        // FIXME: Hack for keyboard input
-#ifdef CLONE_DOMAIN0
-if (d == dom0)
-#endif
        serial_input_init();
        if (d == dom0) {
                VCPU(v, delivery_mask[0]) = -1L;
@@ -977,65 +972,6 @@
        return 0;
 }
 
-// FIXME: When dom0 can construct domains, this goes away (or is rewritten)
-int construct_domU(struct domain *d,
-                  unsigned long image_start, unsigned long image_len,
-                  unsigned long initrd_start, unsigned long initrd_len,
-                  char *cmdline)
-{
-       int i, rc;
-       struct vcpu *v = d->vcpu[0];
-       unsigned long pkern_entry;
-
-#ifndef DOMU_AUTO_RESTART
-       BUG_ON(test_bit(_VCPUF_initialised, &v->vcpu_flags));
-#endif
-
-       printk("*** LOADING DOMAIN %d ***\n",d->domain_id);
-
-       d->max_pages = dom0_size/PAGE_SIZE;     // FIXME: use dom0 size
-       // FIXME: use domain0 command line
-       rc = parsedomainelfimage(image_start, image_len, &pkern_entry);
-       printk("parsedomainelfimage returns %d\n",rc);
-       if ( rc != 0 ) return rc;
-
-       /* Mask all upcalls... */
-       for ( i = 0; i < MAX_VIRT_CPUS; i++ )
-               d->shared_info->vcpu_info[i].evtchn_upcall_mask = 1;
-
-       /* Copy the OS image. */
-       printk("calling loaddomainelfimage(%p,%p)\n",d,image_start);
-       loaddomainelfimage(d,image_start);
-       printk("loaddomainelfimage returns\n");
-
-       set_bit(_VCPUF_initialised, &v->vcpu_flags);
-
-       printk("calling new_thread, entry=%p\n",pkern_entry);
-#ifdef DOMU_AUTO_RESTART
-       v->domain->arch.image_start = image_start;
-       v->domain->arch.image_len = image_len;
-       v->domain->arch.entry = pkern_entry;
-#endif
-       new_thread(v, pkern_entry, 0, 0);
-       printk("new_thread returns\n");
-       sync_split_caches();
-       __set_bit(0x30, VCPU(v, delivery_mask));
-
-       return 0;
-}
-
-#ifdef DOMU_AUTO_RESTART
-void reconstruct_domU(struct vcpu *v)
-{
-       /* re-copy the OS image to reset data values to original */
-       printk("reconstruct_domU: restarting domain %d...\n",
-               v->domain->domain_id);
-       loaddomainelfimage(v->domain,v->domain->arch.image_start);
-       new_thread(v, v->domain->arch.entry, 0, 0);
-       sync_split_caches();
-}
-#endif
-
 void machine_restart(char * __unused)
 {
        if (platform_is_hp_ski()) dummy();
diff -r 1d36cca98fc3 -r dfdb9cfc8b79 xen/arch/ia64/xen/hypercall.c
--- a/xen/arch/ia64/xen/hypercall.c     Fri Feb 10 11:35:19 2006
+++ b/xen/arch/ia64/xen/hypercall.c     Fri Feb 10 15:37:14 2006
@@ -9,6 +9,7 @@
 #include <xen/config.h>
 #include <xen/sched.h>
 #include <xen/hypercall.h>
+#include <xen/multicall.h>
 
 #include <linux/efi.h> /* FOR EFI_UNIMPLEMENTED */
 #include <asm/sal.h>   /* FOR struct ia64_sal_retval */
@@ -22,6 +23,42 @@
 
 unsigned long idle_when_pending = 0;
 unsigned long pal_halt_light_count = 0;
+
+hypercall_t ia64_hypercall_table[] =
+       {
+       (hypercall_t)do_ni_hypercall,           /* do_set_trap_table */         
/*  0 */
+       (hypercall_t)do_ni_hypercall,           /* do_mmu_update */
+       (hypercall_t)do_ni_hypercall,           /* do_set_gdt */
+       (hypercall_t)do_ni_hypercall,           /* do_stack_switch */
+       (hypercall_t)do_ni_hypercall,           /* do_set_callbacks */
+       (hypercall_t)do_ni_hypercall,           /* do_fpu_taskswitch */         
/*  5 */
+       (hypercall_t)do_ni_hypercall,           /* do_sched_op */
+       (hypercall_t)do_dom0_op,
+       (hypercall_t)do_ni_hypercall,           /* do_set_debugreg */
+       (hypercall_t)do_ni_hypercall,           /* do_get_debugreg */
+       (hypercall_t)do_ni_hypercall,           /* do_update_descriptor */      
/* 10 */
+       (hypercall_t)do_ni_hypercall,           /* do_ni_hypercall */
+       (hypercall_t)do_memory_op,
+       (hypercall_t)do_multicall,
+       (hypercall_t)do_ni_hypercall,           /* do_update_va_mapping */
+       (hypercall_t)do_ni_hypercall,           /* do_set_timer_op */           
/* 15 */
+       (hypercall_t)do_event_channel_op,
+       (hypercall_t)do_xen_version,
+       (hypercall_t)do_console_io,
+       (hypercall_t)do_ni_hypercall,           /* do_physdev_op */
+       (hypercall_t)do_grant_table_op,                                         
/* 20 */
+       (hypercall_t)do_ni_hypercall,           /* do_vm_assist */
+       (hypercall_t)do_ni_hypercall,           /* 
do_update_va_mapping_otherdomain */
+       (hypercall_t)do_ni_hypercall,           /* (x86 only) */
+       (hypercall_t)do_ni_hypercall,           /* do_vcpu_op */
+       (hypercall_t)do_ni_hypercall,           /* (x86_64 only) */             
/* 25 */
+       (hypercall_t)do_ni_hypercall,           /* do_mmuext_op */
+       (hypercall_t)do_ni_hypercall,           /* do_acm_op */
+       (hypercall_t)do_ni_hypercall,           /* do_nmi_op */
+       (hypercall_t)do_ni_hypercall,           /*  */
+       (hypercall_t)do_ni_hypercall,           /*  */                          
/* 30 */
+       (hypercall_t)do_ni_hypercall            /*  */
+       };
 
 int
 ia64_hypercall (struct pt_regs *regs)
@@ -94,15 +131,8 @@
                        printf("(by dom0)\n ");
                        (*efi.reset_system)(EFI_RESET_WARM,0,0,NULL);
                }
-#ifdef DOMU_AUTO_RESTART
-               else {
-                       reconstruct_domU(current);
-                       return 0;  // don't increment ip!
-               }
-#else  
                printf("(not supported for non-0 domain)\n");
                regs->r8 = EFI_UNSUPPORTED;
-#endif
                break;
            case FW_HYPERCALL_EFI_GET_TIME:
                tv = vcpu_get_gr(v,32);
@@ -181,9 +211,13 @@
                regs->r8 = do_xen_version(regs->r14, regs->r15);
                break;
 
+           case __HYPERVISOR_multicall:
+               regs->r8 = do_multicall(regs->r14, regs->r15);
+               break;
+
            default:
                printf("unknown hypercall %x\n", regs->r2);
-               regs->r8 = (unsigned long)-1;
+               regs->r8 = do_ni_hypercall();
        }
        return 1;
 }
diff -r 1d36cca98fc3 -r dfdb9cfc8b79 xen/arch/ia64/xen/xenmisc.c
--- a/xen/arch/ia64/xen/xenmisc.c       Fri Feb 10 11:35:19 2006
+++ b/xen/arch/ia64/xen/xenmisc.c       Fri Feb 10 15:37:14 2006
@@ -168,7 +168,11 @@
 
 void *pgtable_quicklist_alloc(void)
 {
-       return alloc_xenheap_pages(0);
+    void *p;
+    p = alloc_xenheap_pages(0);
+    if (p) 
+        clear_page(p);
+    return p;
 }
 
 void pgtable_quicklist_free(void *pgtable_entry)
diff -r 1d36cca98fc3 -r dfdb9cfc8b79 xen/arch/ia64/xen/xensetup.c
--- a/xen/arch/ia64/xen/xensetup.c      Fri Feb 10 11:35:19 2006
+++ b/xen/arch/ia64/xen/xensetup.c      Fri Feb 10 15:37:14 2006
@@ -31,9 +31,6 @@
 
 cpumask_t cpu_present_map;
 
-#ifdef CLONE_DOMAIN0
-struct domain *clones[CLONE_DOMAIN0];
-#endif
 extern unsigned long domain0_ready;
 
 int find_max_pfn (unsigned long, unsigned long, void *);
@@ -342,16 +339,6 @@
 printk("About to call domain_create()\n");
     dom0 = domain_create(0, 0);
 
-#ifdef CLONE_DOMAIN0
-    {
-    int i;
-    for (i = 0; i < CLONE_DOMAIN0; i++) {
-       clones[i] = domain_create(i+1, 0);
-        if ( clones[i] == NULL )
-            panic("Error creating domain0 clone %d\n",i);
-    }
-    }
-#endif
     if ( dom0 == NULL )
         panic("Error creating domain 0\n");
 
@@ -376,22 +363,6 @@
     /* PIN domain0 on CPU 0.  */
     dom0->vcpu[0]->cpu_affinity = cpumask_of_cpu(0);
 
-#ifdef CLONE_DOMAIN0
-    {
-    int i;
-    dom0_memory_start = __va(ia64_boot_param->domain_start);
-    dom0_memory_size = ia64_boot_param->domain_size;
-
-    for (i = 0; i < CLONE_DOMAIN0; i++) {
-      printk("CONSTRUCTING DOMAIN0 CLONE #%d\n",i+1);
-      if ( construct_domU(clones[i], dom0_memory_start, dom0_memory_size,
-                         dom0_initrd_start,dom0_initrd_size,
-                         0) != 0)
-            panic("Could not set up DOM0 clone %d\n",i);
-    }
-    }
-#endif
-
     /* The stash space for the initial kernel image can now be freed up. */
     init_domheap_pages(ia64_boot_param->domain_start,
                        ia64_boot_param->domain_size);
@@ -412,13 +383,6 @@
     console_endboot(cmdline && strstr(cmdline, "tty0"));
 #endif
 
-#ifdef CLONE_DOMAIN0
-    {
-    int i;
-    for (i = 0; i < CLONE_DOMAIN0; i++)
-       domain_unpause_by_systemcontroller(clones[i]);
-    }
-#endif
     domain0_ready = 1;
 
     local_irq_enable();
diff -r 1d36cca98fc3 -r dfdb9cfc8b79 xen/include/asm-ia64/config.h
--- a/xen/include/asm-ia64/config.h     Fri Feb 10 11:35:19 2006
+++ b/xen/include/asm-ia64/config.h     Fri Feb 10 15:37:14 2006
@@ -3,11 +3,8 @@
 
 #undef USE_PAL_EMULATOR
 // control flags for turning on/off features under test
-#undef CLONE_DOMAIN0
-//#define CLONE_DOMAIN0 1
 #undef DOMU_BUILD_STAGING
 #define VHPT_GLOBAL
-#define DOMU_AUTO_RESTART
 
 #undef DEBUG_PFMON
 
@@ -215,9 +212,6 @@
 // see include/asm-ia64/mm.h, handle remaining page_info uses until gone
 #define page_info page
 
-// see common/memory.c
-#define set_gpfn_from_mfn(x,y) do { } while (0)
-
 // see common/keyhandler.c
 #define        nop()   asm volatile ("nop 0")
 
diff -r 1d36cca98fc3 -r dfdb9cfc8b79 xen/include/asm-ia64/domain.h
--- a/xen/include/asm-ia64/domain.h     Fri Feb 10 11:35:19 2006
+++ b/xen/include/asm-ia64/domain.h     Fri Feb 10 15:37:14 2006
@@ -32,11 +32,6 @@
     u64 xen_vastart;
     u64 xen_vaend;
     u64 shared_info_va;
-#ifdef DOMU_AUTO_RESTART
-    u64 image_start;
-    u64 image_len;
-    u64 entry;
-#endif
     unsigned long initrd_start;
     unsigned long initrd_len;
     char *cmdline;
diff -r 1d36cca98fc3 -r dfdb9cfc8b79 xen/include/asm-ia64/grant_table.h
--- a/xen/include/asm-ia64/grant_table.h        Fri Feb 10 11:35:19 2006
+++ b/xen/include/asm-ia64/grant_table.h        Fri Feb 10 15:37:14 2006
@@ -17,7 +17,7 @@
 #define gnttab_shared_gmfn(d, t, i)                                     \
     ( ((d) == dom0) ?                                                   \
       ((virt_to_maddr((t)->shared) >> PAGE_SHIFT) + (i)) :              \
-      (map_domain_page((d), 1UL<<40, virt_to_maddr((t)->shared)),       \
+      (assign_domain_page((d), 1UL<<40, virt_to_maddr((t)->shared)),       \
        1UL << (40 - PAGE_SHIFT))                                        \
     )
 
diff -r 1d36cca98fc3 -r dfdb9cfc8b79 xen/include/asm-ia64/multicall.h
--- a/xen/include/asm-ia64/multicall.h  Fri Feb 10 11:35:19 2006
+++ b/xen/include/asm-ia64/multicall.h  Fri Feb 10 15:37:14 2006
@@ -1,5 +1,27 @@
 #ifndef __ASM_IA64_MULTICALL_H__
 #define __ASM_IA64_MULTICALL_H__
 
-#define do_multicall_call(_call) BUG()
+#include <public/xen.h>
+
+typedef unsigned long (*hypercall_t)(
+                       unsigned long arg0,
+                       unsigned long arg1,
+                       unsigned long arg2,
+                       unsigned long arg3,
+                       unsigned long arg4,
+                       unsigned long arg5);
+
+extern hypercall_t ia64_hypercall_table[];
+
+static inline void do_multicall_call(multicall_entry_t *call)
+{
+       call->result = (*ia64_hypercall_table[call->op])(
+                       call->args[0],
+                       call->args[1],
+                       call->args[2],
+                       call->args[3],
+                       call->args[4],
+                       call->args[5]);
+}
+
 #endif /* __ASM_IA64_MULTICALL_H__ */

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>