freebsd-nq/sys/alpha/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
..
pc Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +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
alpha_cpu.h Block out all interrupts, even machine checks, for critical_enter() 2001-04-21 21:44:39 +00:00
ansi.h Guard against redefining __gnuc_va_list. 2002-03-24 11:25:46 +00:00
asm.h ASM versions of __FBSDID. 2002-03-23 02:01:27 +00:00
atomic.h Be conservative and always perform an mb after an atomic_cmpset operation. 2001-06-22 21:13:20 +00:00
bootinfo.h Remove __P(). This was tested on the GENERIC kernel. 2002-03-20 18:58:47 +00:00
bus_memio.h
bus_pio.h
bus.h Add the following functions/macros to support byte order conversions and 2002-02-27 17:16:18 +00:00
bwx.h * Completely rewrite the alpha busspace to hide the implementation from 2000-08-28 21:48:13 +00:00
chipset.h * Completely rewrite the alpha busspace to hide the implementation from 2000-08-28 21:48:13 +00:00
clock.h Remove __P(). This was tested on the GENERIC kernel. 2002-03-20 18:58:47 +00:00
clockvar.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
cpu.h Remove __P(). This was tested on the GENERIC kernel. 2002-03-20 18:58:47 +00:00
cpuconf.h Remove __P(). This was tested on the GENERIC kernel. 2002-03-20 18:58:47 +00:00
cpufunc.h Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
db_machdep.h Remove __P(). This was tested on the GENERIC kernel. 2002-03-20 18:58:47 +00:00
elf.h Make MAXTSIZ, DFLDSIZ, MAXDSIZ, DFLSSIZ, MAXSSIZ, SGROWSIZ loader 2001-10-10 23:06:54 +00:00
endian.h o Don't require long long support in bswap64() functions. 2002-03-09 21:02:16 +00:00
exec.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
float.h Remove __P(). This was tested on the GENERIC kernel. 2002-03-20 18:58:47 +00:00
floatingpoint.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
fpu.h KSE Milestone 2 2001-09-12 08:38:13 +00:00
frame.h * Move exception_return to exception.s which is a more logical home for it. 2001-02-02 10:20:30 +00:00
ieee.h
ieeefp.h Finish moving all IEEE fp types to be the same on all arch's. 2000-05-10 19:41:40 +00:00
in_cksum.h Make in_cksum() a macro call to in_cksum_skip(), since it provides the 2000-05-06 18:18:32 +00:00
inst.h
intr.h Introduce a standard name for the lock protecting an interrupt controller 2001-12-20 23:48:31 +00:00
intrcnt.h Clean up the code exporting interrupt statistics via sysctl a bit: 2001-06-01 13:23:28 +00:00
ioctl_bt848.h Merge from i386: Add MSP ioctl 2000-10-27 07:07:24 +00:00
ioctl_meteor.h Add include files to alpha/include directory. 2000-04-15 08:07:56 +00:00
limits.h o Add new header <sys/stdint.h>. 2001-11-02 18:05:43 +00:00
md_var.h Remove __P(). This was tested on the GENERIC kernel. 2002-03-20 18:58:47 +00:00
mutex.h Modify the critical section API as follows: 2001-12-18 00:27:18 +00:00
pal.h
param.h Whitespace fixes. 2001-09-12 22:00:06 +00:00
pcb.h Overhaul the per-CPU support a bit: 2001-12-11 23:33:44 +00:00
pcpu.h Overhaul the per-CPU support a bit: 2001-12-11 23:33:44 +00:00
pmap.h Remove __P(). This was tested on the GENERIC kernel. 2002-03-20 18:58:47 +00:00
proc.h Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
profile.h Remove __P(). This was tested on the GENERIC kernel. 2002-03-20 18:58:47 +00:00
prom.h Remove __P(). This was tested on the GENERIC kernel. 2002-03-20 18:58:47 +00:00
psl.h
pte.h Zap some latent problems hidden by differences between KERNEL and _KERNEL. 1999-11-22 15:14:56 +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
reg.h Remove __P(). This was tested on the GENERIC kernel. 2002-03-20 18:58:47 +00:00
reloc.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
resource.h * Implement bus_set/get/delete_resource for pci. 1999-10-14 21:38:33 +00:00
rpb.h Recognize a few newer cpus (pca57, ev67 & ev68) and update systypes to 2001-03-30 22:04:08 +00:00
setjmp.h Work around a bug by adding struct tags. gcc-2.95 apparently gets the 2000-10-06 11:53:32 +00:00
sgmap.h
sigframe.h Use struct __ucontext in prototypes and associated functions instead of 2002-02-17 17:40:34 +00:00
signal.h Use struct __ucontext in prototypes and associated functions instead of 2002-02-17 17:40:34 +00:00
smp.h Remove IPI_HALT to make way for a more correct fix for halts and restarts 2001-08-13 22:41:15 +00:00
stdarg.h
swiz.h * Completely rewrite the alpha busspace to hide the implementation from 2000-08-28 21:48:13 +00:00
sysarch.h Remove __P(). This was tested on the GENERIC kernel. 2002-03-20 18:58:47 +00:00
types.h style(9) 2001-12-09 19:12:07 +00:00
ucontext.h Use a spare slot in the machine context to identify the context format 2002-01-10 02:36:30 +00:00
varargs.h
vmparam.h KSE Milestone 2 2001-09-12 08:38:13 +00:00