freebsd-nq/sys/i386/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 Fixed to draw mouse cursor. The syscons driver for PC98 uses different 2001-12-14 15:27:15 +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
apic.h Introduce a standard name for the lock protecting an interrupt controller 2001-12-20 23:48:31 +00:00
apicreg.h Introduce a standard name for the lock protecting an interrupt controller 2001-12-20 23:48:31 +00:00
apm_bios.h Remove __P. 2002-03-20 05:48:58 +00:00
apm_segments.h
asc_ioctl.h
asm.h ASM versions of __FBSDID. 2002-03-23 02:01:27 +00:00
asmacros.h Overhaul the per-CPU support a bit: 2001-12-11 23:33:44 +00:00
atomic.h Make MPLOCKED work again in asm files and stringify it explicitly 2002-02-28 06:17:05 +00:00
bootinfo.h
bus_at386.h Add stubs for bus_space_unmap() and bus_space_free(). They are needed to 2002-02-18 13:43:19 +00:00
bus_dma.h - Moved the bus_dma declarations from bus_{at386,pc98}.h into bus_dma.h. 2001-10-06 16:27:21 +00:00
bus_memio.h
bus_pc98.h Remove __P. 2002-03-20 05:48:58 +00:00
bus_pio.h
bus.h Add the following functions/macros to support byte order conversions and 2002-02-27 17:16:18 +00:00
cdk.h
clock.h Remove __P. 2002-03-20 05:48:58 +00:00
comstats.h
cpu.h Remove __P. 2002-03-20 05:48:58 +00:00
cpufunc.h Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
cputypes.h
cronyx.h
db_machdep.h Fill out some gaps in ia64 DDB support. This involves generalising DDB's 2001-09-15 11:06:07 +00:00
dvcfg.h Remove __P. 2002-03-20 05:48:58 +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
float.h
floatingpoint.h
frame.h Remove __P. 2002-03-20 05:48:58 +00:00
gsc.h
i4b_cause.h Clean up the i4b kernel part: remove unmaintained #if(def)s for NetBSD, 2002-03-17 09:33:15 +00:00
i4b_debug.h Clean up the i4b kernel part: remove unmaintained #if(def)s for NetBSD, 2002-03-17 09:33:15 +00:00
i4b_ioctl.h Add support for Q.931 subaddresses. 2002-03-26 15:13:54 +00:00
i4b_rbch_ioctl.h Clean up the i4b kernel part: remove unmaintained #if(def)s for NetBSD, 2002-03-17 09:33:15 +00:00
i4b_tel_ioctl.h Clean up the i4b kernel part: remove unmaintained #if(def)s for NetBSD, 2002-03-17 09:33:15 +00:00
i4b_trace.h Clean up the i4b kernel part: remove unmaintained #if(def)s for NetBSD, 2002-03-17 09:33:15 +00:00
ieeefp.h
if_wl_wavelan.h Fix typo: compatability -> compatibility. 2001-02-06 12:05:58 +00:00
iic.h
in_cksum.h Remove __P. 2002-03-20 05:48:58 +00:00
ioctl_bt848.h Fix typo in comments 2000-10-31 14:30:29 +00:00
ioctl_ctx.h
ioctl_meteor.h
legacyvar.h
limits.h o Add new header <sys/stdint.h>. 2001-11-02 18:05:43 +00:00
md_var.h Fixed some style bugs in the removal of __P(()). The main ones were 2002-03-23 15:09:35 +00:00
mpapic.h Remove the old APIC I/O higher level IPI API in favor of the newer MI 2001-04-10 22:18:21 +00:00
mptable.h Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
mtpr.h
mutex.h Make MPLOCKED work again in asm files and stringify it explicitly 2002-02-28 06:17:05 +00:00
nexusvar.h
npx.h Remove __P. 2002-03-20 05:48:58 +00:00
param.h KSE Milestone 2 2001-09-12 08:38:13 +00:00
pcaudioio.h
pcb_ext.h Remove __P. 2002-03-20 05:48:58 +00:00
pcb.h Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
pci_cfgreg.h Detect a certain type of PCIBIOS brain damage. For some reason, 2001-08-21 03:10:55 +00:00
pcpu.h Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
pcvt_ioctl.h
pecoff_machdep.h Add PECOFF (WIN32 Execution file format) support. 2000-12-20 12:51:08 +00:00
perfmon.h Remove __P. 2002-03-20 05:48:58 +00:00
physio_proc.h Remove __P. 2002-03-20 05:48:58 +00:00
pmap.h Remove __P. 2002-03-20 05:48:58 +00:00
privatespace.h Overhaul the per-CPU support a bit: 2001-12-11 23:33:44 +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. 2002-03-20 05:48:58 +00:00
psl.h Allow bit 21 of EFLAGS register (PSL_ID) be changed in the use-mode without 2001-11-15 23:01:29 +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. 2002-03-20 05:48:58 +00:00
reloc.h
resource.h
segments.h Fixed some style bugs in the removal of __P(()). The main ones were 2002-03-23 15:09:35 +00:00
setjmp.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
smb.h
smp.h Fixed some style bugs in the removal of __P(()). The main ones were 2002-03-23 15:09:35 +00:00
smptests.h Back out all the pmap related stuff I've touched over the last few days. 2002-02-27 09:51:33 +00:00
speaker.h
specialreg.h Activate SSE/SIMD. This is the extra context switching support that 2001-07-12 06:32:51 +00:00
spigot.h
stdarg.h With GCC 3, we *must* use the GCC stdarg.h. We can no longer just make 2001-12-18 03:28:08 +00:00
sysarch.h Remove __P. 2002-03-20 05:48:58 +00:00
trap.h Activate SSE/SIMD. This is the extra context switching support that 2001-07-12 06:32:51 +00:00
tss.h
types.h Remove __P. 2002-03-20 05:48:58 +00:00
uc_device.h
ucontext.h Use a spare slot in the machine context for a flags word to indicate 2002-01-10 02:32:30 +00:00
varargs.h
vm86.h Remove __P. 2002-03-20 05:48:58 +00:00
vmparam.h
wtio.h