NetBSD/sys/arch/sh3/include
jdolecek 089abdad44 Rearrange process exit path to avoid need to free resources from different
process context ('reaper').

From within the exiting process context:
* deactivate pmap and free vmspace while we can still block
* introduce MD cpu_lwp_free() - this cleans all MD-specific context (such
  as FPU state), and is the last potentially blocking operation;
  all of cpu_wait(), and most of cpu_exit(), is now folded into cpu_lwp_free()
* process is now immediatelly marked as zombie and made available for pickup
  by parent; the remaining last lwp continues the exit as fully detached
* MI (rather than MD) code bumps uvmexp.swtch, cpu_exit() is now same
  for both 'process' and 'lwp' exit

uvm_lwp_exit() is modified to never block; the u-area memory is now
always just linked to the list of available u-areas. Introduce (blocking)
uvm_uarea_drain(), which is called to release the excessive u-area memory;
this is called by parent within wait4(), or by pagedaemon on memory shortage.
uvm_uarea_free() is now private function within uvm_glue.c.

MD process/lwp exit code now always calls lwp_exit2() immediatelly after
switching away from the exiting lwp.

g/c now unneeded routines and variables, including the reaper kernel thread
2004-01-04 11:33:29 +00:00
..
adcreg.h Use 'CH' for channel select in the ADCSR bits format string for consistency. 2003-10-15 22:55:07 +00:00
ansi.h Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
aout_machdep.h
asm.h Definition of __KERNEL_RCSID for asm files. 2003-11-24 04:07:22 +00:00
bscreg.h
bswap.h
bus.h
cache_sh3.h
cache_sh4.h
cache.h
cdefs.h
clock.h
coff_machdep.h
cpgreg.h
cpu.h Rearrange process exit path to avoid need to free resources from different 2004-01-04 11:33:29 +00:00
cputypes.h
dacreg.h Register definitions for SH7709 DAC. 2003-11-05 03:08:13 +00:00
db_machdep.h Add a BKPT_ADDR() macro which gives MD code a chance to munge a 2003-04-29 17:06:03 +00:00
devreg.h
disklabel.h Overhaul MBR handling (part 1): 2003-10-08 04:25:43 +00:00
elf_machdep.h
endian_machdep.h
endian.h
exception.h
float.h Rename <sys/float_ieee.h> to <sys/float_ieee754.h>, following libc's 2003-05-12 15:22:53 +00:00
frame.h Implement siginfo for sh3. 2003-11-23 23:13:11 +00:00
ieee.h Use <sys/ieee754.h> where applicable. 2003-10-26 20:55:30 +00:00
ieeefp.h
int_const.h
int_fmtio.h
int_limits.h
int_mwgwtypes.h
int_types.h Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
intcreg.h Add definitions for IRR0 bits. 2003-10-07 01:24:32 +00:00
intr.h Redo a quick hack for intc_intr_disable() and intc_intr_enable() to have 2003-11-04 03:13:48 +00:00
limits.h Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
lock.h Move __cpu_simple_lock_t and __SIMPLELOCK_{UN,}LOCKED to machine/types.h 2003-09-26 22:45:41 +00:00
locore.h Whitespace nit. 2003-10-01 21:51:15 +00:00
Makefile
math.h
mcontext.h Add _UC_SETSTACK, _UC_CLRSTACK flags. Add __fpr_fpul to __fpregset_t 2003-11-22 17:05:53 +00:00
mmu_sh3.h
mmu_sh4.h
mmu.h
param.h Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
pcb.h
pfcreg.h
pmap.h
pmc.h
proc.h Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
profile.h
psl.h Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
pte.h fix typos in comments. 2003-08-10 02:03:31 +00:00
ptrace.h
reg.h Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
rtcreg.h
scifreg.h
scireg.h Correct the macro name for SCP0DT bit. 2003-07-01 11:49:37 +00:00
setjmp.h
sh_opcode.h
signal.h bye, bye _MCONTEXT_TO_SIGCONTEXT and vice versa. 2003-11-25 23:11:52 +00:00
stdarg.h Add a new feature-test macro, _NETBSD_SOURCE. If this is defined 2003-04-28 23:16:11 +00:00
tmureg.h
types.h Move __cpu_simple_lock_t and __SIMPLELOCK_{UN,}LOCKED to machine/types.h 2003-09-26 22:45:41 +00:00
ubcreg.h
userret.h Reduce code duplication by adding mi_userret() in sys/userret.h 2003-10-31 16:44:34 +00:00
va-sh.h
varargs.h
vmparam.h Use PAGE_SIZE rather than NBPG. 2003-04-02 07:35:54 +00:00
wdogvar.h
wdtreg.h