Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/arch/i386/i386/locore.S,v rcsdiff: /ftp/cvs/cvsroot/src/sys/arch/i386/i386/locore.S,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.87 retrieving revision 1.91 diff -u -p -r1.87 -r1.91 --- src/sys/arch/i386/i386/locore.S 2009/05/04 11:47:29 1.87 +++ src/sys/arch/i386/i386/locore.S 2009/11/27 03:23:10 1.91 @@ -1,4 +1,4 @@ -/* $NetBSD: locore.S,v 1.87 2009/05/04 11:47:29 ad Exp $ */ +/* $NetBSD: locore.S,v 1.91 2009/11/27 03:23:10 rmind Exp $ */ /* * Copyright-o-rama! @@ -15,11 +15,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Manuel Bouyer. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES @@ -134,7 +129,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.87 2009/05/04 11:47:29 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.91 2009/11/27 03:23:10 rmind Exp $"); #include "opt_compat_oldboot.h" #include "opt_ddb.h" @@ -173,7 +168,6 @@ __KERNEL_RCSID(0, "$NetBSD: locore.S,v 1 * Xen guest identifier and loader selection */ .section __xen_guest -#ifdef XEN3 .ascii "GUEST_OS=netbsd,GUEST_VER=3.0,XEN_VER=xen-3.0" #if defined(DOM0OPS) || !defined(XEN_COMPAT_030001) .ascii ",VIRT_BASE=0xc0000000" /* KERNBASE */ @@ -190,9 +184,6 @@ __KERNEL_RCSID(0, "$NetBSD: locore.S,v 1 #ifdef PAE .ascii ",PAE=yes[extended-cr3]" #endif -#else /* !XEN3 */ - .ascii "GUEST_OS=netbsd,GUEST_VER=2.0,XEN_VER=2.0" -#endif /* XEN3 */ .ascii ",LOADER=generic" #if (NKSYMS || defined(DDB) || defined(MODULAR)) && !defined(SYMTAB_SPACE) .ascii ",BSD_SYMTAB=yes" @@ -210,7 +201,7 @@ __KERNEL_RCSID(0, "$NetBSD: locore.S,v 1 .globl _C_LABEL(esym) .globl _C_LABEL(eblob) .globl _C_LABEL(atdevbase) - .globl _C_LABEL(proc0uarea),_C_LABEL(PDPpaddr) + .globl _C_LABEL(lwp0uarea),_C_LABEL(PDPpaddr) .globl _C_LABEL(gdt) .globl _C_LABEL(idt) .globl _C_LABEL(lapic_tpr) @@ -241,7 +232,7 @@ _C_LABEL(lapic_tpr): _C_LABEL(cpu): .long 0 # are we 80486, Pentium, or.. _C_LABEL(cpuid_level): .long 0 _C_LABEL(atdevbase): .long 0 # location of start of iomem in virtual -_C_LABEL(proc0uarea): .long 0 +_C_LABEL(lwp0uarea): .long 0 _C_LABEL(PDPpaddr): .long 0 # paddr of PDP, for libkvm _C_LABEL(tablesize): .long 0 @@ -676,7 +667,7 @@ begin: /* Set up bootstrap stack. */ leal (PROC0_STK_OFF+KERNBASE)(%esi),%eax - movl %eax,_C_LABEL(proc0uarea) + movl %eax,_C_LABEL(lwp0uarea) leal (KSTACK_SIZE-FRAMESIZE)(%eax),%esp movl %esi,(KSTACK_SIZE+PCB_CR3)(%eax) # pcb->pcb_cr3 xorl %ebp,%ebp # mark end of frames @@ -727,11 +718,7 @@ start: popfl cld -#ifdef XEN3 movl %esp, %ebx # save start of available space -#else - movl %esi,%ebx # save start_info pointer -#endif movl $_RELOC(tmpstk),%esp # bootstrap stack end location /* Clear BSS first so that there are no surprises... */ @@ -763,7 +750,7 @@ start: * First avail returned by xen_pmap_bootstrap in %eax */ movl %eax, %esi; - movl %esi, _C_LABEL(proc0uarea) + movl %esi, _C_LABEL(lwp0uarea) #define PROC0PDIR ((0) * PAGE_SIZE) #define PROC0STACK ((1) * PAGE_SIZE) @@ -779,13 +766,13 @@ start: addl $4,%esp call _C_LABEL(main) -#if defined(XEN3) && !defined(XEN_COMPAT_030001) +#if defined(XEN) && !defined(XEN_COMPAT_030001) /* space for the hypercall call page */ #define HYPERCALL_PAGE_OFFSET 0x1000 .org HYPERCALL_PAGE_OFFSET ENTRY(hypercall_page) .skip 0x1000 -#endif /* defined(XEN3) && !defined(XEN_COMPAT_030001) */ +#endif /* defined(XEN) && !defined(XEN_COMPAT_030001) */ /* * void lgdt_finish(void); @@ -944,12 +931,12 @@ ENTRY(cpu_switchto) jz 1f /* Save old context. */ - movl L_ADDR(%esi),%eax + movl L_PCB(%esi),%eax movl %esp,PCB_ESP(%eax) movl %ebp,PCB_EBP(%eax) /* Switch to newlwp's stack. */ -1: movl L_ADDR(%edi),%ebx +1: movl L_PCB(%edi),%ebx movl PCB_EBP(%ebx),%ebp movl PCB_ESP(%ebx),%esp @@ -1002,13 +989,13 @@ ENTRY(cpu_switchto) jne 5f /* - * Restore cr0 (including FPU state). Raise the IPL to IPL_IPI. + * Restore cr0 (including FPU state). Raise the IPL to IPL_HIGH. * FPU IPIs can alter the LWP's saved cr0. Dropping the priority * is deferred until mi_switch(), when cpu_switchto() returns. */ 2: #ifndef XEN - movl $IPL_IPI,CPUVAR(ILEVEL) + movl $IPL_HIGH,CPUVAR(ILEVEL) movl PCB_CR0(%ebx),%ecx /* has CR0_TS clear */ movl %cr0,%edx