Home | History | Annotate | Download | only in include
History log of /src/sys/arch/powerpc/include/userret.h
RevisionDateAuthorComments
 1.31  06-Jul-2020  rin Style and cosmetic changes. No binary changes intended.
 1.30  06-Jul-2015  matt Don't clear PSL_FP/PSL_VEC
 1.29  06-Jul-2015  matt Add a check to make sure that if PSL_FP is set, we own the FPU.
 1.28  10-Mar-2014  matt branches: 1.28.4; 1.28.6;
same typo
 1.27  10-Mar-2014  matt Typo
 1.26  09-Mar-2014  matt Make sure to clear PSL_SE before going to usermode on BOOKE
Revert back to testing PSL_SE in the trapframe and not mdlwp md_flags
 1.25  09-Mar-2014  matt Don't test for PSL_SE in tf_srr1 since will be cleared on the next exception.
Keep a copy of it in l_md.md_flags which will be preserved.
 1.24  26-May-2012  matt branches: 1.24.2; 1.24.4;
Add __HAVE_RAS support. Do it in userret.
 1.23  17-May-2012  matt Add an KASSERT to check that PSL_PR is always set.
 1.22  27-Sep-2011  jym branches: 1.22.2; 1.22.6; 1.22.8;
Modify *ASSERTMSG() so they are now used as variadic macros. The main goal
is to provide routines that do as KASSERT(9) says: append a message
to the panic format string when the assertion triggers, with optional
arguments.

Fix call sites to reflect the new definition.

Discussed on tech-kern@. See
http://mail-index.netbsd.org/tech-kern/2011/09/07/msg011427.html
 1.21  20-Jun-2011  matt Explicitly include <powerpc/psl.h>
 1.20  02-May-2011  matt branches: 1.20.2;
Move powerpc to use pcu to manage FPU/AltiVec/SPE.
 1.19  19-Feb-2011  matt Compare ci_veclwp against &lwp0, not NULL.
 1.18  17-Feb-2011  matt add begging of single step support. Since BookE doesn't support PSL_SE, if
userret find PSL_SE set in SRR1, it will call booke_sstep to setup the
debug registers.
 1.17  18-Jan-2011  matt branches: 1.17.2;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.
 1.16  21-Nov-2009  rmind branches: 1.16.4; 1.16.6;
Use lwp_getpcb() on mips, powerpc and sh3, clean from struct user usage.
 1.15  06-Nov-2007  simonb branches: 1.15.18; 1.15.40;
Fix unused variable warning for the non-FPU/altivec case.
 1.14  05-Nov-2007  ad branches: 1.14.2;
Don't set l_usrpri / spc_curpriority here. mi_userret() does it.
 1.13  16-Feb-2006  perry branches: 1.13.24; 1.13.42; 1.13.44; 1.13.48;
Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.
 1.12  24-Dec-2005  perry branches: 1.12.2; 1.12.4; 1.12.6;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.11  11-Dec-2005  christos merge ktrace-lwp.
 1.10  16-Apr-2004  hannken branches: 1.10.12;
Make it compile when PPC_HAVE_FPU is not defined.
 1.9  15-Apr-2004  matt Revamp how user MSR/SRR1 are dealt with.
Add a PSL_USEROK_P(psl) macro which valids the bits (replaces the use of
PSL_USERSTATIC).
Add a PSL_USERSRR1 mask which is used to mask out status bits in the upper
half of SRR1.
Make sure PSL_VEC is set appropriately in userret(). PSL_VEC is in the same
region as SSR1 status bits so it's not preserved on exceptions. Thus we
need to make to set it.
When returning a MSR/SRR1 to userland, always clear the status bits.
Add emulation of the mfpvr, mtmsr, and mfmsr instructions.
 1.8  06-Apr-2004  matt When seeing if the FP or VEC unit has been stolen by another process, check
PSL_{FP|VEC} instead of PCB_{FP|VEC}. The former will only be set if the
process owned the {FP,VEC} unit when it trapped into the kernel. The latter
would be set if the lwp ever used the {FP,VEC} unit.
 1.7  04-Apr-2004  matt When returning back to user mode, if the lwp has lost the FPU, not only
clear PSL_FP bit (to force a FPU Unavailable exception) but clear
PSL_FE0 and PSL_FE1 so that the FP execption mode is changes to ignore.
This will prevent spurious FP exceptions being made when the running lwp
doesn't own the FPU.
 1.6  13-Feb-2004  wiz Uppercase CPU, plural is CPUs.
 1.5  31-Oct-2003  cl Reduce code duplication by adding mi_userret() in sys/userret.h
containing signal posting, kernel-exit handling and sa_upcall processing.

XXX the pc532, sparc, sparc64 and vax ports should have their
XXX userret() code rearranged to use this.
 1.4  18-Jan-2003  thorpej branches: 1.4.2;
Merge the nathanw_sa branch.
 1.3  08-Aug-2002  chs branches: 1.3.2; 1.3.4;
it's PPC_HAVE_FPU, not PPC_HAS_FPU.
also, include the headers that turn on FPU and AltiVec features
in case no one else does.
 1.2  06-Aug-2002  chs branches: 1.2.2;
actually we shouldn't hold kernel_lock while calling postsig().
 1.1  02-Aug-2002  chs use a completely separate trap handler for syscall traps.
this reduces syscall overhead by 10% to 20% depending on cpu type.
 1.2.2.6  26-Sep-2002  nathanw Change "if (l->l_flag & L_SA_UPCALL)" to "while (l->l_flag & L_SA_UPCALL)"
in userret() functions or equivalent, to permit delivery of multiple upcalls
in a single kernel entry.

XXX It's getting crowded in here. Collapsing posting signals, upcalls, and
XXX kernel-exit handling into one mechanism would be nice.
 1.2.2.5  09-Aug-2002  nathanw Pull up PPC_HAVE_FPU fix.
 1.2.2.4  06-Aug-2002  nathanw A little more LWP.
 1.2.2.3  06-Aug-2002  nathanw Finish LWPifying.
 1.2.2.2  06-Aug-2002  nathanw Catch up with powerpc rototilling.
 1.2.2.1  06-Aug-2002  nathanw file userret.h was added on branch nathanw_sa on 2002-08-06 22:47:10 +0000
 1.3.4.2  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.3.4.1  08-Aug-2002  jdolecek file userret.h was added on branch kqueue on 2002-09-06 08:39:18 +0000
 1.3.2.2  31-Aug-2002  gehenna catch up with -current.
 1.3.2.1  08-Aug-2002  gehenna file userret.h was added on branch gehenna-devsw on 2002-08-31 13:45:46 +0000
 1.4.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.4.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.4.2.1  03-Aug-2004  skrll Sync with HEAD
 1.10.12.2  15-Nov-2007  yamt sync with head.
 1.10.12.1  21-Jun-2006  yamt sync with head.
 1.12.6.1  22-Apr-2006  simonb Sync with head.
 1.12.4.1  09-Sep-2006  rpaulo sync with head
 1.12.2.1  18-Feb-2006  yamt sync with head.
 1.13.48.1  13-Nov-2007  bouyer Sync with HEAD
 1.13.44.1  06-Nov-2007  matt sync with HEAD
 1.13.42.1  06-Nov-2007  joerg Sync with HEAD.
 1.13.24.2  03-Dec-2007  ad Sync with HEAD.
 1.13.24.1  03-Dec-2007  ad Sync with HEAD.
 1.14.2.1  19-Nov-2007  mjf Sync with HEAD.
 1.15.40.2  17-Jan-2011  matt Add SPE (signal processing engine) support for mpc85xx/booke. Think of it
as AltiVec-lite (really lite). Genercize AltiVec support so that it could
the same interface could support SPE as well. Rework the FPU support along
the same lines. Move the __asm() to their own XXX_subr.S (altivec, fpu, spe).
 1.15.40.1  07-Jan-2011  matt Deal with the trapframe changes.
 1.15.18.1  11-Mar-2010  yamt sync with head
 1.16.6.1  06-Jun-2011  jruoho Sync with HEAD.
 1.16.4.2  31-May-2011  rmind sync with head
 1.16.4.1  05-Mar-2011  rmind sync with head
 1.17.2.1  05-Mar-2011  bouyer Sync with HEAD
 1.20.2.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.22.8.5  18-May-2016  martin Pull up following revision(s) (requested by matt in ticket #1310):
sys/arch/powerpc/include/userret.h: revision 1.29-1.30
sys/arch/powerpc/include/psl.h: revision 1.20
sys/arch/powerpc/oea/oea_machdep.c: revision 1.72
(via patch)

Add a check to make sure that if PSL_FP is set, we own the FPU.
Don't clear PSL_FP/PSL_VEC
Remove PSL_SPV from BOOKE PSL_USERMOD
Don't preserve PSL_FP/PSL_VEC in cpu_setmcontext.
 1.22.8.4  19-Nov-2015  bouyer Revert ticket 1310 (second try):
> sys/arch/powerpc/include/psl.h 1.20
> sys/arch/powerpc/include/userret.h 1.29, 1.30
> sys/arch/powerpc/oea/altivec.c 1.30
> sys/arch/powerpc/oea/oea_machdep.c 1.72
> sys/arch/powerpc/powerpc/fpu.c 1.36
>
> powerpc PCU fixes

because it breaks the build:
http://releng.netbsd.org/builds/netbsd-6/201511152000Z/
 1.22.8.3  16-Nov-2015  bouyer Revert ticket 1310:
> sys/arch/powerpc/include/psl.h 1.20
> sys/arch/powerpc/include/userret.h 1.29, 1.30
> sys/arch/powerpc/oea/altivec.c 1.30
> sys/arch/powerpc/oea/oea_machdep.c 1.72
> sys/arch/powerpc/powerpc/fpu.c 1.36
>
> powerpc PCU fixes

because it breaks the build:
http://releng.netbsd.org/builds/netbsd-6/201511152000Z/
 1.22.8.2  15-Nov-2015  bouyer Pull up following revision(s) (requested by matt in ticket #1310):
sys/arch/powerpc/include/userret.h: revision 1.30
sys/arch/powerpc/powerpc/fpu.c: revision 1.36
sys/arch/powerpc/include/psl.h: revision 1.20
sys/arch/powerpc/include/userret.h: revision 1.29
sys/arch/powerpc/oea/oea_machdep.c: revision 1.72
sys/arch/powerpc/oea/altivec.c: revision 1.30
Add a check to make sure that if PSL_FP is set, we own the FPU.
Don't clear PSL_FP/PSL_VEC
Don't reload if just re-enabling
Don't reload the FPU register if this is just a re-enable.
Remove PSL_SPV from BOOKE PSL_USERMOD
Don't preserve PSL_FP/PSL_VEC in cpu_setmcontext.
 1.22.8.1  13-Jun-2012  riz Pull up following revision(s) (requested by matt in ticket #340):
sys/arch/powerpc/include/types.h: revision 1.47
sys/arch/powerpc/include/userret.h: revision 1.24
Add __HAVE_RAS support. Do it in userret.
 1.22.6.1  02-Jun-2012  mrg sync to latest -current.
 1.22.2.3  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.22.2.2  30-Oct-2012  yamt sync with head
 1.22.2.1  23-May-2012  yamt sync with head.
 1.24.4.1  18-May-2014  rmind sync with head
 1.24.2.2  03-Dec-2017  jdolecek update from HEAD
 1.24.2.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.28.6.1  22-Sep-2015  skrll Sync with HEAD
 1.28.4.1  17-Jul-2015  snj Pull up following revision(s) (requested by matt in ticket #868):
sys/arch/powerpc/include/psl.h: revision 1.20
sys/arch/powerpc/include/userret.h: revisions 1.29, 1.30
sys/arch/powerpc/oea/altivec.c: revision 1.30
sys/arch/powerpc/oea/oea_machdep.c: revision 1.72
sys/arch/powerpc/powerpc/fpu.c: revision 1.36
Add a check to make sure that if PSL_FP is set, we own the FPU.
--
Don't clear PSL_FP/PSL_VEC
--
Don't reload if just re-enabling
--
Don't reload the FPU register if this is just a re-enable.
--
Remove PSL_SPV from BOOKE PSL_USERMOD
--
Don't preserve PSL_FP/PSL_VEC in cpu_setmcontext.

RSS XML Feed