freebsd-dev/sys/i386/include
John Baldwin 688ebe120c - Close races with signals and other AST's being triggered while we are in
the process of exiting the kernel.  The ast() function now loops as long
  as the PS_ASTPENDING or PS_NEEDRESCHED flags are set.  It returns with
  preemption disabled so that any further AST's that arrive via an
  interrupt will be delayed until the low-level MD code returns to user
  mode.
- Use u_int's to store the tick counts for profiling purposes so that we
  do not need sched_lock just to read p_sticks.  This also closes a
  problem where the call to addupc_task() could screw up the arithmetic
  due to non-atomic reads of p_sticks.
- Axe need_proftick(), aston(), astoff(), astpending(), need_resched(),
  clear_resched(), and resched_wanted() in favor of direct bit operations
  on p_sflag.
- Fix up locking with sched_lock some.  In addupc_intr(), use sched_lock
  to ensure pr_addr and pr_ticks are updated atomically with setting
  PS_OWEUPC.  In ast() we clear pr_ticks atomically with clearing
  PS_OWEUPC.  We also do not grab the lock just to test a flag.
- Simplify the handling of Giant in ast() slightly.

Reviewed by:	bde (mostly)
2001-08-10 22:53:32 +00:00
..
pc Add PCI BIOS function codes for IRQ routing fetch and route. 2000-10-19 08:02:46 +00:00
_limits.h Our SHRT_MIN definition was actually 4 bits too big. 2000-11-04 21:01:44 +00:00
ansi.h Make _BSD_TIME_T_ (time_t) an int' rather than long'. This will help 2001-05-18 01:43:25 +00:00
apic.h Remove constants defining the bitmasks of the old giant kernel lock. 2001-04-10 22:22:01 +00:00
apicreg.h Remove constants defining the bitmasks of the old giant kernel lock. 2001-04-10 22:22:01 +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
asc_ioctl.h
asm.h
asmacros.h Always use the ELF naming after the demise of asnames.h. 2001-02-25 07:23:03 +00:00
atomic.h RIP <machine/lock.h>. 2001-02-11 10:44:09 +00:00
bootinfo.h
bus_at386.h Fix "alignemnt" typo. 2001-06-16 15:28:28 +00:00
bus_dma.h Fix "alignemnt" typo. 2001-06-16 15:28:28 +00:00
bus_memio.h
bus_pc98.h Merged from sys/i386/include/bus_at386.h revision 1.14. 2001-06-26 11:36:45 +00:00
bus_pio_ind.h
bus_pio.h
bus.h
cdk.h
clock.h Move DELAY() from <machine/clock.h> to <sys/systm.h> 2000-10-15 09:51:49 +00:00
comstats.h
cpu.h - Close races with signals and other AST's being triggered while we are in 2001-08-10 22:53:32 +00:00
cpufunc.h Provide access to the IA32 hardware debug registers from the ddb 2001-06-28 02:08:13 +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
db_machdep.h
dvcfg.h
elf.h Use a machine dependent type, Elf_Hashelt, for the elements of the elf 2001-07-31 03:46:39 +00:00
endian.h Back out wrapping the asm ... ; bits in #ifndef lint macros. There 2001-04-14 20:42:04 +00:00
exec.h
float.h
floatingpoint.h
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 Overhaul of the SMP code. Several portions of the SMP kernel support have 2001-04-27 19:28:25 +00:00
globals.h Implement optimized PCPU accessors. These are necessary to support a 2001-01-21 03:11:03 +00:00
gsc.h
i4b_cause.h update to i4b version 0.95.04 2000-10-09 13:18:17 +00:00
i4b_debug.h Submitted by: Juha-Matti Liukkonen (Cubical Solutions Ltd) (jml@cubical.fi) 2001-05-25 08:43:30 +00:00
i4b_ioctl.h update step. 2001-07-21 11:31:27 +00:00
i4b_isppp.h update to i4b version 0.95.04 2000-10-09 13:18:17 +00:00
i4b_rbch_ioctl.h
i4b_tel_ioctl.h update to i4b version 0.95.04 2000-10-09 13:18:17 +00:00
i4b_trace.h update to i4b version 0.95.04 2000-10-09 13:18:17 +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 These files are mpsafe. 2000-11-25 03:01:05 +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 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 Our SHRT_MIN definition was actually 4 bits too big. 2000-11-04 21:01:44 +00:00
md_var.h Activate SSE/SIMD. This is the extra context switching support that 2001-07-12 06:32:51 +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 - Do not handle the per-CPU containers in mbuf code as though the cpuids 2001-07-26 18:47:46 +00:00
mtpr.h
mutex.h Properly wrap mtx_intr_enable() macro in "do $bla while (0)" 2001-06-02 08:17:42 +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 Activate SSE/SIMD. This is the extra context switching support that 2001-07-12 06:32:51 +00:00
param.h Fix CMSG and ALIGN macro usage. 2000-11-08 16:59:25 +00:00
pcaudioio.h
pcb_ext.h - Use sched_lock and critical regions to ensure that LDT updates are thread 2001-05-10 17:03:03 +00:00
pcb.h The #define for pcb_savefpu seems to do more harm than good. 2001-07-12 12:48:08 +00:00
pci_cfgreg.h Add types and prototypes. 2000-10-16 19:49:30 +00:00
pcpu.h Overhaul of the SMP code. Several portions of the SMP kernel support have 2001-04-27 19:28:25 +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
physio_proc.h Use queue macros. 2001-01-24 00:01:42 +00:00
pmap.h Increase NKPT from 17 to 30. This fixes the 4GB ram boot panic on both 2000-11-30 01:53:02 +00:00
proc.h Add a new MI pointer to the process' trapframe p_frame instead of using 2001-06-29 11:10:41 +00:00
profile.h Fix MCOUNT_ENTER() so it actually compiles in the profiling case. 2001-07-14 21:40:53 +00:00
psl.h
ptrace.h Zap 'ptrace(PT_READ_U, ...)' and 'ptrace(PT_WRITE_U, ...)' since they 2001-08-08 05:25:15 +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
resource.h
segments.h Declare or #define per-cpu globals in <machine/globals.h> in all cases. 2000-10-27 08:30:59 +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
sigframe.h
signal.h Make MINSIGSTKSZ machine dependent, and have the sigaltstack 2000-11-09 08:25:48 +00:00
smb.h
smp.h Overhaul of the SMP code. Several portions of the SMP kernel support have 2001-04-27 19:28:25 +00:00
smptests.h Remove the BETTER_CLOCK #ifdef's. The code is on by default and is here 2001-04-10 21:34:13 +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
sysarch.h Add a couple of debug register helper functions to assist in setting 2000-09-21 17:07:27 +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 Declare or #define per-cpu globals in <machine/globals.h> in all cases. 2000-10-27 08:30:59 +00:00
types.h - Add the new critical_t type used to save state inside of critical 2001-03-28 02:31:54 +00:00
uc_device.h
ucontext.h
varargs.h
vm86.h
vmparam.h
wtio.h