freebsd-dev/sys/i386/include
John Baldwin 6c56727456 - Change fast interrupts on x86 to push a full interrupt frame and to
return through doreti to handle ast's.  This is necessary for the
  clock interrupts to work properly.
- Change the clock interrupts on the x86 to be fast instead of threaded.
  This is needed because both hardclock() and statclock() need to run in
  the context of the current process, not in a separate thread context.
- Kill the prevproc hack as it is no longer needed.
- We really need Giant when we call psignal(), but we don't want to block
  during the clock interrupt.  Instead, use two p_flag's in the proc struct
  to mark the current process as having a pending SIGVTALRM or a SIGPROF
  and let them be delivered during ast() when hardclock() has finished
  running.
- Remove CLKF_BASEPRI, which was #ifdef'd out on the x86 anyways.  It was
  broken on the x86 if it was turned on since cpl is gone.  It's only use
  was to bogusly run softclock() directly during hardclock() rather than
  scheduling an SWI.
- Remove the COM_LOCK simplelock and replace it with a clock_lock spin
  mutex.  Since the spin mutex already handles disabling/restoring
  interrupts appropriately, this also lets us axe all the *_intr() fu.
- Back out the hacks in the APIC_IO x86 cpu_initclocks() code to use
  temporary fast interrupts for the APIC trial.
- Add two new process flags P_ALRMPEND and P_PROFPEND to mark the pending
  signals in hardclock() that are to be delivered in ast().

Submitted by:	jakeb (making statclock safe in a fast interrupt)
Submitted by:	cp (concept of delaying signals until ast())
2000-10-06 02:20:21 +00:00
..
pc More updates to the ACPI code: 2000-09-30 20:12:27 +00:00
_limits.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
acpi_machdep.h Add ACPI_BUS_SPACE stuff definitions in acpi_machdep.h. 2000-09-02 15:06:54 +00:00
acpica_osd.h Fix StallOp implementaion. I've noticed that StallOp corresponds to 2000-10-02 08:58:50 +00:00
ansi.h Protect the i386 machine-dependant type definitions of __int64_t 2000-01-14 10:41:39 +00:00
apic.h Optimize two cases in the MP locking code. First, it is not necessary 1999-11-19 16:49:30 +00:00
apicreg.h Optimize two cases in the MP locking code. First, it is not necessary 1999-11-19 16:49:30 +00:00
apm_bios.h Add output of per battery information to apm(1). 2000-08-13 17:05:27 +00:00
apm_segments.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
asc_ioctl.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
asm.h Fixed the profiling version ALTENTRY(). Again. The previous version 2000-01-25 09:01:55 +00:00
asmacros.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
asnames.h - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
atomic.h Add atomic_readandclear_int and atomic_readandclear_long. 2000-10-05 22:19:50 +00:00
bootinfo.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
bus_at386.h Fixed syntax errors and style bugs in previous commit. The syntax 2000-06-14 18:48:39 +00:00
bus_dma.h Fixed syntax errors and style bugs in previous commit. The syntax 2000-06-14 18:48:39 +00:00
bus_memio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
bus_pc98.h Fixed syntax errors and style bugs in previous commit. The syntax 2000-06-14 18:48:39 +00:00
bus_pio_ind.h Added indirect pio into the bus space stuff for the NEC PC-98. bus.h 2000-03-29 03:15:22 +00:00
bus_pio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
bus.h Added indirect pio into the bus space stuff for the NEC PC-98. bus.h 2000-03-29 03:15:22 +00:00
cdk.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
clock.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
comstats.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
console.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
cpu.h - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
cpufunc.h Replace loadandclear() with atomic_readandclear_int(). 2000-10-05 22:22:31 +00:00
cputypes.h First shot at identifying the Pentum 4 acording to our reading of the 2000-09-29 04:38:35 +00:00
cronyx.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
db_machdep.h Fix style bug: order includes 1999-10-04 13:55:35 +00:00
dvcfg.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
elf.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
endian.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
exec.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
float.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
floatingpoint.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
frame.h Interrupt frames don't include the saved cpl anymore since cpl is dead. 2000-10-06 01:57:28 +00:00
globaldata.h - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
globals.h - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
gsc.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
i4b_cause.h update to isdn4bsd beta release 0.90 1999-12-14 20:54:38 +00:00
i4b_debug.h update to isdn4bsd beta release 0.90 1999-12-14 20:54:38 +00:00
i4b_ioctl.h update to isdn4bsd beta release 0.90 1999-12-14 20:54:38 +00:00
i4b_rbch_ioctl.h update to isdn4bsd beta release 0.90 1999-12-14 20:54:38 +00:00
i4b_tel_ioctl.h update to isdn4bsd beta release 0.90 1999-12-14 20:54:38 +00:00
i4b_trace.h update to isdn4bsd beta release 0.90 1999-12-14 20:54:38 +00:00
ieeefp.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
if_wavelan_ieee.h Add support for WEP (encryption) for silver and gold WaveLAN/IEEE turbo cards. 2000-02-02 17:59:13 +00:00
if_wl_wavelan.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
iic.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +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
ioctl_bt848.h Add multiple #include protection 2000-04-04 16:46:19 +00:00
ioctl_ctx.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ioctl_fd.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
ioctl_meteor.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
ipl.h - Heavyweight interrupt threads on the alpha for device I/O interrupts. 2000-10-05 23:09:57 +00:00
legacyvar.h Get out the roto-rooter and clean up the abuse of nexus ivars by the 2000-09-28 00:37:32 +00:00
limits.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
lock.h - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
md_var.h - Heavyweight interrupt threads on the alpha for device I/O interrupts. 2000-10-05 23:09:57 +00:00
mouse.h - Add Support for the following PS/2 mice: 2000-03-18 15:21:40 +00:00
mpapic.h Remove the NCPU, NAPIC, NBUS, NINTR config options. Make NAPIC, 2000-09-22 23:40:10 +00:00
mptable.h - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
mtpr.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
mutex.h - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
nexusvar.h Get out the roto-rooter and clean up the abuse of nexus ivars by the 2000-09-28 00:37:32 +00:00
npx.h Change the default FPU control word so that exceptions for new 2000-03-10 17:56:33 +00:00
param.h Move MAXCPU from machine/smp.h to machine/param.h to fix breakage 2000-09-23 12:18:06 +00:00
pcaudioio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
pcb_ext.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
pcb.h Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
pci_cfgreg.h Move the i386 PCI attachment code out of i386/isa back into i386/pci. 2000-10-02 07:11:13 +00:00
pcpu.h - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
pcvt_ioctl.h Add support for "green" saver mode. 2000-03-31 08:29:21 +00:00
perfmon.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
pmap.h Prepare for a cleanup of pmap module API pollution introduced by the 2000-08-16 21:24:44 +00:00
proc.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
profile.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
psl.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ptrace.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
reg.h Add a couple of debug register helper functions to assist in setting 2000-09-21 17:07:27 +00:00
reloc.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
resource.h * Implement bus_set/get/delete_resource for pci. 1999-10-14 21:38:33 +00:00
segments.h currentldt is now a "special" global-data variable, and as such, there 2000-10-06 01:59:07 +00:00
setjmp.h sigset_t change (part 3 of 5) 1999-09-29 15:06:27 +00:00
sigframe.h Fix type of sf_addr. 1999-12-04 10:40:24 +00:00
signal.h Reserve space for FPU state in struct sigcontext. Fix some style bugs 1999-11-12 13:52:11 +00:00
smb.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
smp.h Move MAXCPU from machine/smp.h to machine/param.h to fix breakage 2000-09-23 12:18:06 +00:00
smptests.h - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
speaker.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
specialreg.h Add the CR4 values for P3 SIMD enabling support. FXSR tells the cpu that 1999-09-10 15:51:44 +00:00
spigot.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
stdarg.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
sysarch.h Add a couple of debug register helper functions to assist in setting 2000-09-21 17:07:27 +00:00
trap.h Exchange numerical values for FPE_INTDIV and FPE_INTOVF, so that they 2000-03-20 10:22:19 +00:00
tss.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
types.h - Remove the inthand2_t type and use the equivalent driver_intr_t type from 2000-09-13 18:33:25 +00:00
uc_device.h Update sysinstall to use struct uc_device instead of struct isa_device 2000-03-24 22:24:09 +00:00
ucontext.h Add a per-signal flag to mark handlers registered with osigaction, so we 1999-10-11 20:33:17 +00:00
varargs.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
vm86.h Some reorganization of sysarch() interface: 1999-09-02 20:59:50 +00:00
vmparam.h Make sysv-style shared memory tuneable params fully runtime adjustable 2000-03-30 07:17:05 +00:00
wtio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00