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.64 retrieving revision 1.67 diff -u -p -r1.64 -r1.67 --- src/sys/arch/i386/i386/locore.S 2008/01/20 12:43:00 1.64 +++ src/sys/arch/i386/i386/locore.S 2008/03/11 02:24:43 1.67 @@ -1,4 +1,4 @@ -/* $NetBSD: locore.S,v 1.64 2008/01/20 12:43:00 skrll Exp $ */ +/* $NetBSD: locore.S,v 1.67 2008/03/11 02:24:43 ad Exp $ */ /* * Copyright-o-rama! @@ -141,7 +141,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.64 2008/01/20 12:43:00 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.67 2008/03/11 02:24:43 ad Exp $"); #include "opt_compat_oldboot.h" #include "opt_ddb.h" @@ -192,6 +192,9 @@ __KERNEL_RCSID(0, "$NetBSD: locore.S,v 1 .ascii ",HYPERCALL_PAGE=0x00000101" /* (???+HYPERCALL_PAGE_OFFSET)/PAGE_SIZE) */ #endif +#ifdef PAE + .ascii ",PAE=yes[extended-cr3]" +#endif #else /* !XEN3 */ .ascii "GUEST_OS=netbsd,GUEST_VER=2.0,XEN_VER=2.0" #endif /* XEN3 */ @@ -880,22 +883,19 @@ ENTRY(longjmp) movl $1,%eax # return 1 ret +/* + * void dumpsys(void) + * + * Mimic cpu_switchto() for postmortem debugging. + */ ENTRY(dumpsys) - # mimic cpu_switchto() for postmortem debugging. - - # build a fake switch frame. - pushl %ebx - pushl %esi - pushl %edi - - # save a context. - movl $dumppcb,%eax - movl %esp,PCB_ESP(%eax) - movl %ebp,PCB_EBP(%eax) - - call _C_LABEL(dodumpsys) - - addl $(3*4), %esp # sizeof(switchframe) - sizeof(%eip) + pushl %ebx # set up fake switchframe + pushl %esi # and save context + pushl %edi + movl %esp,_C_LABEL(dumppcb)+PCB_ESP + movl %ebp,_C_LABEL(dumppcb)+PCB_EBP + call _C_LABEL(dodumpsys) # dump! + addl $(3*4), %esp # unwind switchframe ret /* @@ -1090,6 +1090,7 @@ syscall1: 1: #endif /* DIAGNOSTIC */ movl CPUVAR(CURLWP),%edx + incl CPUVAR(NSYSCALL) # count it atomically movl %esp,L_MD_REGS(%edx) # save pointer to frame movl L_PROC(%edx),%edx pushl %esp