Module Name: src Committed By: chs Date: Wed Jul 7 01:23:08 UTC 2010
Modified Files: src/sys/arch/m68k/m68k: switch_subr.s src/sys/arch/sun3/sun3: genassym.cf src/sys/arch/sun3/sun3x: genassym.cf Log Message: enable usermode RAS for sun[23] also. To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.25 src/sys/arch/m68k/m68k/switch_subr.s cvs rdiff -u -r1.12 -r1.13 src/sys/arch/sun3/sun3/genassym.cf cvs rdiff -u -r1.11 -r1.12 src/sys/arch/sun3/sun3x/genassym.cf Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/m68k/m68k/switch_subr.s diff -u src/sys/arch/m68k/m68k/switch_subr.s:1.24 src/sys/arch/m68k/m68k/switch_subr.s:1.25 --- src/sys/arch/m68k/m68k/switch_subr.s:1.24 Sun Jun 6 04:50:07 2010 +++ src/sys/arch/m68k/m68k/switch_subr.s Wed Jul 7 01:23:08 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: switch_subr.s,v 1.24 2010/06/06 04:50:07 mrg Exp $ */ +/* $NetBSD: switch_subr.s,v 1.25 2010/07/07 01:23:08 chs Exp $ */ /* * Copyright (c) 2001 The NetBSD Foundation. @@ -191,6 +191,7 @@ tstl %a2 | vm == VM_MAP_NULL? jeq Lcpu_switch_badsw | panic #endif + pea %a0@ | save newlwp #if !defined(_SUN3X_) || defined(PMAP_DEBUG) movl %a2@(VM_PMAP),%...@- | push vm->vm_map.pmap jbsr _C_LABEL(_pmap_switch) | _pmap_switch(pmap) @@ -220,6 +221,9 @@ */ pea %a0@ | push newlwp jbsr _C_LABEL(pmap_activate) | pmap_activate(newlwp) + /* Note that newlwp will be popped off the stack later. */ +#endif + /* * Check for restartable atomic sequences (RAS) */ @@ -237,11 +241,10 @@ jeq 1f movl _C_LABEL(curlwp),%a1 movl %a1@(L_MD_REGS),%a1 - movel %a0,%a1@(TF_PC) + movl %a0,%a1@(TF_PC) 1: movl %...@+,%d0 | restore newlwp movl _C_LABEL(curpcb),%a1 | restore pcb -#endif movl %sp@(4),%d1 | restore oldlwp for a return value lea _ASM_LABEL(tmpstk),%sp | now goto a tmp stack for NMI @@ -410,5 +413,3 @@ moveml %...@+,#0x7FFF | restore most user regs addql #8,%sp | toss SP and stack adjust jra _ASM_LABEL(rei) | and return - - Index: src/sys/arch/sun3/sun3/genassym.cf diff -u src/sys/arch/sun3/sun3/genassym.cf:1.12 src/sys/arch/sun3/sun3/genassym.cf:1.13 --- src/sys/arch/sun3/sun3/genassym.cf:1.12 Thu Dec 10 05:10:04 2009 +++ src/sys/arch/sun3/sun3/genassym.cf Wed Jul 7 01:23:08 2010 @@ -1,4 +1,4 @@ -# $NetBSD: genassym.cf,v 1.12 2009/12/10 05:10:04 rmind Exp $ +# $NetBSD: genassym.cf,v 1.13 2010/07/07 01:23:08 chs Exp $ # # Copyright (c) 1982, 1990, 1993 @@ -162,6 +162,7 @@ define L_MD_REGS offsetof(struct lwp, l_md.md_regs) define L_MD_FLAGS offsetof(struct lwp, l_md.md_flags) define P_FLAG offsetof(struct proc, p_flag) +define P_RASLIST offsetof(struct proc, p_raslist) define P_VMSPACE offsetof(struct proc, p_vmspace) # lwp fields and values @@ -187,6 +188,9 @@ define PCB_FPCTX offsetof(struct pcb, pcb_fpregs) define SIZEOF_PCB sizeof(struct pcb) +# frame offsets +define TF_PC offsetof(struct frame, f_pc) + # exception frame offset/sizes define FR_SP offsetof(struct trapframe, tf_regs[15]) define FR_ADJ offsetof(struct trapframe, tf_stackadj) Index: src/sys/arch/sun3/sun3x/genassym.cf diff -u src/sys/arch/sun3/sun3x/genassym.cf:1.11 src/sys/arch/sun3/sun3x/genassym.cf:1.12 --- src/sys/arch/sun3/sun3x/genassym.cf:1.11 Thu Dec 10 05:10:04 2009 +++ src/sys/arch/sun3/sun3x/genassym.cf Wed Jul 7 01:23:08 2010 @@ -1,4 +1,4 @@ -# $NetBSD: genassym.cf,v 1.11 2009/12/10 05:10:04 rmind Exp $ +# $NetBSD: genassym.cf,v 1.12 2010/07/07 01:23:08 chs Exp $ # # Copyright (c) 1982, 1990, 1993 @@ -153,6 +153,7 @@ define L_MD_REGS offsetof(struct lwp, l_md.md_regs) define L_MD_FLAGS offsetof(struct lwp, l_md.md_flags) define P_FLAG offsetof(struct proc, p_flag) +define P_RASLIST offsetof(struct proc, p_raslist) define P_VMSPACE offsetof(struct proc, p_vmspace) # lwp fields and values @@ -177,6 +178,9 @@ define PCB_FPCTX offsetof(struct pcb, pcb_fpregs) define SIZEOF_PCB sizeof(struct pcb) +# frame offsets +define TF_PC offsetof(struct frame, f_pc) + # exception frame offset/sizes define FR_SP offsetof(struct trapframe, tf_regs[15]) define FR_ADJ offsetof(struct trapframe, tf_stackadj)