freebsd-dev/sys/sparc64/include
Matthew Dillon d74ac6819b Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt
disablement assumptions in kern_fork.c by adding another API call,
cpu_critical_fork_exit().  Cleanup the td_savecrit field by moving it
from MI to MD.  Temporarily move cpu_critical*() from <arch>/include/cpufunc.h
to <arch>/<arch>/critical.c (stage-2 will clean this up).

Implement interrupt deferral for i386 that allows interrupts to remain
enabled inside critical sections.  This also fixes an IPI interlock bug,
and requires uses of icu_lock to be enclosed in a true interrupt disablement.

This is the stage-1 commit.  Stage-2 will occur after stage-1 has stabilized,
and will move cpu_critical*() into its own header file(s) + other things.
This commit may break non-i386 architectures in trivial ways.  This should
be temporary.

Reviewed by:	core
Approved by:	core
2002-03-27 05:39:23 +00:00
..
_inttypes.h o Add new header <sys/stdint.h>. 2001-11-02 18:05:43 +00:00
_limits.h o Add new header <sys/stdint.h>. 2001-11-02 18:05:43 +00:00
ansi.h Guard against redefining __gnuc_va_list. 2002-03-24 11:25:46 +00:00
asi.h Add asis for the upa config reg, which contains the hardware cpu id, and 2002-01-08 04:29:50 +00:00
asm.h ASM versions of __FBSDID. 2002-03-23 02:01:27 +00:00
asmacros.h Fix ifdef LOCORE protection. 2002-03-13 06:04:36 +00:00
atomic.h Use ASI_P instead of ASI_N if _KERNEL isn't defined so that these 2001-12-29 06:48:43 +00:00
bus_common.h Add support for the counter-timer which is included in the Sun U2S and 2002-02-13 16:16:36 +00:00
bus_memio.h Add bus_space and busdma support for sparc64. 2001-11-09 20:05:53 +00:00
bus_pio.h Add bus_space and busdma support for sparc64. 2001-11-09 20:05:53 +00:00
bus_private.h Revamp the busdma implementation a bit: 2002-03-24 02:50:53 +00:00
bus.h Revamp the busdma implementation a bit: 2002-03-24 02:50:53 +00:00
cache.h Remove __P. 2002-03-21 00:06:55 +00:00
ccr.h Add definitions for the number of bits in the icc and xcc fields 2001-12-29 06:50:25 +00:00
clock.h Add missing declarations. 2002-03-25 04:53:18 +00:00
cpu.h Define CKLF_PC in terms of TRAPF_PC. 2002-01-08 04:36:53 +00:00
cpufunc.h Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
db_machdep.h 1. Remove kdbframe. Bad idea. 2001-11-18 03:41:12 +00:00
elf.h Implement elf_reloc. This makes klds work. 2001-10-27 07:09:40 +00:00
endian.h o Don't require long long support in bswap64() functions. 2002-03-09 21:02:16 +00:00
exec.h The author isn't a [UC] Regents. Correct the copyright language. 2001-08-09 02:09:34 +00:00
float.h Remove __P. 2002-03-21 00:06:55 +00:00
floatingpoint.h Add this FreeBSD standard header. 2002-02-10 14:27:20 +00:00
fp.h Change fpblock to be an array of ints instead longs. 2001-12-29 06:53:19 +00:00
frame.h Add a macro for shift of an integer (1 << shift == sizeof). Move the pointer 2002-02-27 00:21:04 +00:00
fsr.h Fix the type of some constants, and make some macros safer by casting 2002-03-11 03:04:28 +00:00
idprom.h Add a structure defintion for the id prom contents. 2001-11-18 20:50:11 +00:00
ieee.h Add kernel headers needed to build libc. Some are bogus and/or just enough 2001-11-18 17:56:46 +00:00
ieeefp.h Standardize idempotentcy ifdefs. 2001-11-18 20:30:16 +00:00
in_cksum.h Add optimized implementations of in_cksum_skip() and related functions 2001-11-06 20:05:01 +00:00
instr.h Add convenience macros to extract the cc0 and cc1 from format 2 and 3 2002-03-11 03:03:35 +00:00
intr_machdep.h Avoid crashing in early boot when WITNESS is enabled by moving the 2002-02-13 16:36:44 +00:00
iommureg.h Add a delta missed in the last iommu.c commit. This unbreaks the sparc64 2002-02-15 14:48:54 +00:00
iommuvar.h Revamp the busdma implementation a bit: 2002-03-24 02:50:53 +00:00
ktr.h Remove an unused macro arg. 2001-10-20 15:57:39 +00:00
limits.h o Add new header <sys/stdint.h>. 2001-11-02 18:05:43 +00:00
lsu.h Add definitions for bits in condition code register and the load store 2001-08-20 23:34:46 +00:00
md_var.h Make cpu_identify take the value of the ver register and cpuid as arguments 2002-02-27 06:05:50 +00:00
metadata.h Add metadata types for dtlb and itlb data, and number of slots used. 2002-02-23 17:43:44 +00:00
mutex.h Modify the critical section API as follows: 2001-12-18 00:27:18 +00:00
nexusvar.h Correct the defintion of struct ofw_upa_regs, and use it instead of 2002-01-02 18:27:13 +00:00
ofw_bus.h Make the OpenFirmware interrupt mapping code more generic, to reduce 2002-03-24 02:11:06 +00:00
ofw_machdep.h Add support for starting and stopping cpus with ipis. 2002-03-13 04:59:01 +00:00
ofw_nexus.h Correct the defintion of struct ofw_upa_regs, and use it instead of 2002-01-02 18:27:13 +00:00
ofw_upa.h Correct the defintion of struct ofw_upa_regs, and use it instead of 2002-01-02 18:27:13 +00:00
param.h Parameterize the number of pages to allocate for the per-cpu area on 2002-02-27 06:08:13 +00:00
pcb.h Remove pcb_y. It has moved to trapframe. 2001-12-29 07:00:30 +00:00
pcpu.h Add support for starting secondary cpus in kernel, as opposed to relying 2002-03-04 07:12:36 +00:00
pmap.h Allocate tlb contexts on the fly in cpu_switch, instead of statically 1 to 1 2002-03-04 05:20:29 +00:00
proc.h Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
profile.h Add kernel headers needed to build libc. Some are bogus and/or just enough 2001-11-18 17:56:46 +00:00
pstate.h Define PSTATE_MM_MASK in terms of PSTATE_MM_SIZE. 2001-12-29 07:01:34 +00:00
ptrace.h Move the definition of PT_[GS]ET{,DB,FP}REGS from the MD ptrace.h to the 2002-03-16 00:25:53 +00:00
pv.h Remove references to vm_zone.h and switch over to the new uma API. 2002-03-21 02:30:27 +00:00
reg.h Remove __P. 2002-03-21 00:06:55 +00:00
reloc.h Add kernel headers needed to build libc. Some are bogus and/or just enough 2001-11-18 17:56:46 +00:00
resource.h
setjmp.h jmpbuf is no longer a ucontext_t since it does not need to be passed 2001-12-29 07:03:09 +00:00
sigframe.h Implement signals. 2001-09-03 22:41:40 +00:00
signal.h Don't use types that require other headers. 2001-09-30 18:52:17 +00:00
smp.h Make IPI_WAIT use a bit mask of the cpus that a pmap is active on and only 2002-03-13 03:43:00 +00:00
stdarg.h
sysarch.h Implement sysarch(SPARC_UTRAP_INSTALL). 2002-01-01 20:57:51 +00:00
tick.h Add support for driving the clocks on secondary cpus. 2002-03-13 04:38:33 +00:00
tlb.h Fix a deadlock condition with tlb shootdown ipi delivery. Since ipis are 2002-03-23 04:20:00 +00:00
trap.h Add a panic stack, which is used as a known good stack when there is 2002-01-01 20:26:46 +00:00
tsb.h Minimal testing has shown that a 4 page tsb is a nice sweet spot for current 2002-02-27 06:18:02 +00:00
tstate.h Add definitions for TSTATE_MM_* and TSTATE_{I,X}CC_*. 2001-12-29 07:11:00 +00:00
tte.h Modify the tte format to not include the tlb context number and to store the 2002-02-25 04:56:50 +00:00
types.h style(9) 2001-12-09 19:12:07 +00:00
ucontext.h 1. Remove bootinfo and just pass loader metadata to the kernel. 2001-11-18 03:02:53 +00:00
upa.h Add support for starting secondary cpus in kernel, as opposed to relying 2002-03-04 07:12:36 +00:00
utrap.h Add a define for the fp restore soft trap type. 2002-01-01 21:19:46 +00:00
varargs.h Standardize idempotentcy ifdefs. 2001-11-18 20:30:16 +00:00
ver.h Define constants for the CPU implementation id; export the dectected id 2002-02-13 15:47:12 +00:00
vmparam.h Increase VM_KMEM_SIZE to 16 megs from 12. Define VM_KMEM_SIZE_SCALE so that 2002-03-09 23:35:50 +00:00
watch.h Add code for supporting hardware watch points. 2001-08-20 23:50:08 +00:00
wstate.h Implement a nested window state. This avoids attempting to spill a user 2002-02-25 18:37:17 +00:00