Home | History | Annotate | Download | only in include
History log of /src/sys/arch/mips/include/proc.h
RevisionDateAuthorComments
 1.33  06-Dec-2020  christos don't expose vaddr_t to userland.
 1.32  04-Sep-2020  mrg branches: 1.32.2;
include machine/vmparam.h vs mips/vmparam.h to make sure we get
platform-specific defines first.

fixes build issue for playstation2.
 1.31  26-Aug-2020  simonb Define a UPAGES_MAX constant to size the a md_upte array in MIPS's
struct mdlwp. This is exposed to userland, so we can't use something
based on PAGE_SIZE.
 1.30  23-Aug-2020  simonb Use a 16kB USPACE (and larger kernel stack) for LP64 kernels. Invert
the logic for setting the USPACE size. Define a desired USPACE size
(16kB for LP64, 8kB otherwise) then divide by PAGE_SIZE to get UPAGES.

Fixes random segmap lossage, since the uarea usually sits immediately
above the segmap for a process. Thanks to mrg@, skrll@ and dholland@
for testing, debugging and general help tracking down this problem.
 1.29  26-Jul-2020  simonb #define<tab>
Nuke trailing whitespace.
 1.28  30-Jun-2015  matt Make vmparam.h change work with RUMP
 1.27  20-Feb-2011  matt branches: 1.27.14; 1.27.32;
Major merge forward from matt-nb5-mips64.
New fixup code.
New common SPL code.
New common interrupt code.
Move related variables into structures.
Cleanup locore (move MD variable into it).
Kill StudlyCaps
Use PCU for FPU
 1.26  14-Jan-2011  rmind branches: 1.26.2; 1.26.4;
Retire struct user, remove sys/user.h inclusions. Note sys/user.h header
as obsolete. Remove USER_TO_UAREA/UAREA_TO_USER macros.

Various #include fixes and review by matt@.
 1.25  14-Dec-2009  matt branches: 1.25.4;
Merge from matt-nb5-mips64
Merge mips-specific arch files.
 1.24  21-Nov-2009  rmind Use lwp_getpcb() on mips, powerpc and sh3, clean from struct user usage.
 1.23  20-Aug-2009  cliff include mips/vmparam.h to get PAGE_SIZE
 1.22  17-Aug-2009  matt Only include md_uptes if USPACE > PAGE_SIZE
 1.21  16-Nov-2007  skrll branches: 1.21.18; 1.21.36;
s/proc/lwp/ in comment
 1.20  09-Feb-2007  ad branches: 1.20.6; 1.20.16; 1.20.22; 1.20.24; 1.20.28; 1.20.30;
Merge newlock2 to head.
 1.19  24-Dec-2005  perry branches: 1.19.20;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.18  11-Dec-2005  christos merge ktrace-lwp.
 1.17  07-Aug-2003  agc branches: 1.17.16;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.16  17-Jan-2003  thorpej branches: 1.16.2;
Merge the nathanw_sa branch.
 1.15  09-Nov-2002  thorpej Make md_ss_addr a vaddr_t.
 1.14  05-Mar-2002  simonb ANSIfy.
 1.13  16-Oct-2001  uch branches: 1.13.4;
R5900 support.
COP0_SYNC
In R5900 mtc0, tlbr, tlbp, tlbwi, tlbwr must be followed by sync.p.
if defined MIPS3_5900, COP0_SYNC is defined as sync.p. else nothing.
IPL_ICU_MASK
mask interrupt directly ICU instead of SR.IM.
I've added this feature to support software interrupt for R5900.
and this option may be useful for platform which has cascaded ICU.
 1.12  16-Jan-2001  thorpej branches: 1.12.4;
New syscall entry implementation based on the Alpha version
as hacked by mycroft.
- Use syscall_intern() to give a process a plain or fancy
syscall based on ktrace flags.
- Avoid copying from the trapframe into a local array as much
as possible.

Yields roughly 5% improvement on a 25MHz R3000 (DECstation 5000/200)
on a simple syscall benchmark.

There's still some work that can be done using __HAVE_MINIMAL_EMUL.
 1.11  14-Jan-2001  thorpej Make the astpending flag per-process.
 1.10  28-Mar-2000  simonb Don't `extern' function declarations. While we're there, remove trailing
blank lines and white space.
 1.9  14-Jan-1999  castor branches: 1.9.8;
* Create mips_reg_t data type to allow register size to be
decoupled from long or int or long long. Define macros in asm.h to facilitate
choosing these on a port by port basis.

* Create <machine/pubassym.h> mechanism to allow jmp_buf structure size
to be calculated at system build time.

* Define _MIPS_BSD_SIM macro which specifies what calling style is appropritae
for the architecture. For 64-bit oriented systems set the Status Register
to allow 64-bit instructions.

* Remove UADDR related macros because kernel U structure is now mapped
normally.
* Separate cpu.h into cpu.h and cpuarch.h to keep things neat.
* Add support for QED 52xx processors
 1.8  07-Jul-1997  jonathan branches: 1.8.10;
DDB for mips.
Add DDB interface to /sys/arch/mips/mips..
Rework heuristic stack traceback to work with DDB.
Add hooks to print exception log from DDB.
Add hooks from pmax console drivers: call Debugger()
after break from serial console, or 'DO' key from LK-xxx.
 1.7  15-Jun-1997  mhitch From Toru Nishimura: user pcb/proc changes for exception handling and
removing access through UADDR.
 1.6  02-Jun-1997  jonathan Add #ifdef _KERNEL/#endif around prototype of mips single-step emulator.

Add "struct proc;" inside the ifdef: <sys/proc.h> includes <machine/proc.h>
before declaring struct proc.
 1.5  25-May-1997  jonathan Rename cpu_singlstep() to mips_singlestep() and add prototype.
(it's not part of the standard interface to MD code.)

XXX Consider moving into process_machdep.c when the mips3 changes are merged.
 1.4  26-Oct-1994  cgd new RCS ID format.
 1.3  27-May-1994  glass bsd 4.4-lite pmax port as ported to NetBSD
 1.2  27-May-1994  glass upgrade to bsd 4.4-lite code base. only mod is rcsids
 1.1  12-Oct-1993  deraadt branches: 1.1.1;
Initial revision
 1.1.1.1  12-Oct-1993  deraadt pmax code from <ralphc@pyramid.com> & <rick@snowhite.cis.uoguelph.ca>
 1.8.10.1  19-Nov-1998  nisimura - Forgot to commit many files for vm_offset_t purge last Monday.
 1.9.8.2  18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.9.8.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.12.4.2  16-Mar-2002  jdolecek Catch up with -current.
 1.12.4.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.13.4.7  20-Nov-2002  wdk md_ss_addr is now vaddr_t.
 1.13.4.6  11-Nov-2002  nathanw Catch up to -current
 1.13.4.5  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.13.4.4  28-Nov-2001  wdk #include <sys/param.h> which is required for definition of UPAGES
 1.13.4.3  19-Nov-2001  wdk forward decl of "struct proc" should be "struct lwp"
 1.13.4.2  17-Nov-2001  wdk Split mdproc components into lwp-specific structure struct mdlwp
 1.13.4.1  16-Oct-2001  wdk file proc.h was added on branch nathanw_sa on 2001-11-17 23:18:22 +0000
 1.16.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.16.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.16.2.1  03-Aug-2004  skrll Sync with HEAD
 1.17.16.3  07-Dec-2007  yamt sync with head
 1.17.16.2  26-Feb-2007  yamt sync with head.
 1.17.16.1  21-Jun-2006  yamt sync with head.
 1.19.20.3  02-Feb-2007  ad The TLB miss handler doesn't need to worry about RAS, oops.
 1.19.20.2  27-Jan-2007  ad Make mips systems work.
 1.19.20.1  29-Dec-2006  ad Checkpoint work in progress.
 1.20.30.1  19-Nov-2007  mjf Sync with HEAD.
 1.20.28.1  18-Nov-2007  bouyer Sync with HEAD
 1.20.24.1  09-Jan-2008  matt sync with HEAD
 1.20.22.1  21-Nov-2007  joerg Sync with HEAD.
 1.20.16.1  18-Jul-2007  matt Change last argument for plain/fancy syscall to vaddr_t (since it's the
address of the opcode). Add a md_abi field.
 1.20.6.1  03-Dec-2007  ad Sync with HEAD.
 1.21.36.11  27-Dec-2011  matt Make these play nice with modules.
 1.21.36.10  29-Apr-2011  matt Major merge to/from current.
Adds MIPS32/MIPS64 R2 support (24k, 74k, etc.) including COP0_USERLOCAL
Adds support for emulation of rdhwr $3,$29 instruction.
Major cleanup of SMP code. (stable on multi-core / single thread per core)
llsc locking code only used in MP capable kernels.
 1.21.36.9  09-Jun-2010  matt Add support for setting/clearing PK_32 on _LP64 kernels. Make cpu_proc_fork
a real function and add it to vm_machdep.c and let it copy PK_32 on fork.
Properly clear/set PK_32 depending on ABI in setregs. Lack of PX_32 use
tracked down by Cliff Neighbors. [Ya! ps now works!]
 1.21.36.8  15-May-2010  matt Add kernel support for MIPS TLS. Use rdhwr rt, $29 as defined by the MIPS
TLS spec so that Linux MIPS binaries will work. Use sysarch(MIPS_TINFOSET, v)
to set the pointer.
 1.21.36.7  11-Mar-2010  matt Change md_astpending to u_int
 1.21.36.6  28-Feb-2010  matt Split FPU support into separate file and keep internals private to that file.
Make it MPSAFE. Change interface to be very similar to what's used on other
architectures.
Add l_md.md_fpcpu to mdlwp (needed for MPSAFE)
Move pridtab from <mips/cpu.h> to <mips/locore.h>
Add initial common IPI dispatcher.
Split cpu_* routines from mips_machdep.c into cpu_subr.c
Add cpu_startup_common which has the code replicated in half-dozen
plus machdep.c files.
 1.21.36.5  01-Feb-2010  matt Merge frame into trapframe. While this costs a bit more stack space on
kernel exceptions, the resulting simplifications are worth it. This is
a step to fast softints and kernel preemption.

trapframe now includes a struct reg instead of a separate array of registers.
 1.21.36.4  30-Dec-2009  matt Please segtab lookups into separate file.
Add mips_add_physload
Add mips_init_lwp0_uarea
cleanup lwp0/cpu_info_store initialization.
 1.21.36.3  05-Sep-2009  matt Make sure this is quad-word (16 byte) aligned. Thus when one is allocated
on the stack, the stack stays 16 byte aligned.
 1.21.36.2  21-Aug-2009  matt No need for md_fancy anymore since p_trace_enabled already has what we want.
 1.21.36.1  20-Aug-2009  matt Change md_regs in mdlwp to struct frame * from void *. Every use just casts
it to struct frame * anyways so enforce the type.
Add p_abi which indicates the ABI of the process.
 1.21.18.3  11-Mar-2010  yamt sync with head
 1.21.18.2  16-Sep-2009  yamt sync with head
 1.21.18.1  19-Aug-2009  yamt sync with head.
 1.25.4.1  05-Mar-2011  rmind sync with head
 1.26.4.1  05-Mar-2011  bouyer Sync with HEAD
 1.26.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.27.32.1  22-Sep-2015  skrll Sync with HEAD
 1.27.14.1  03-Dec-2017  jdolecek update from HEAD
 1.32.2.1  14-Dec-2020  thorpej Sync w/ HEAD.

RSS XML Feed