freebsd-dev/sys/alpha/include
John Baldwin 36412d79b4 - Make the mutex code almost completely machine independent. This greatly
reducues the maintenance load for the mutex code.  The only MD portions
  of the mutex code are in machine/mutex.h now, which include the assembly
  macros for handling mutexes as well as optionally overriding the mutex
  micro-operations.  For example, we use optimized micro-ops on the x86
  platform #ifndef I386_CPU.
- Change the behavior of the SMP_DEBUG kernel option.  In the new code,
  mtx_assert() only depends on INVARIANTS, allowing other kernel developers
  to have working mutex assertiions without having to include all of the
  mutex debugging code.  The SMP_DEBUG kernel option has been renamed to
  MUTEX_DEBUG and now just controls extra mutex debugging code.
- Abolish the ugly mtx_f hack.  Instead, we dynamically allocate
  seperate mtx_debug structures on the fly in mtx_init, except for mutexes
  that are initiated very early in the boot process.   These mutexes
  are declared using a special MUTEX_DECLARE() macro, and use a new
  flag MTX_COLD when calling mtx_init.  This is still somewhat hackish,
  but it is less evil than the mtx_f filler struct, and the mtx struct is
  now the same size with and without mutex debugging code.
- Add some micro-micro-operation macros for doing the actual atomic
  operations on the mutex mtx_lock field to make it easier for other archs
  to override/optimize mutex ops if needed.  These new tiny ops also clean
  up the code in some places by replacing long atomic operation function
  calls that spanned 2-3 lines with a short 1-line macro call.
- Don't call mi_switch() from mtx_enter_hard() when we block while trying
  to obtain a sleep mutex.  Calling mi_switch() would bogusly release
  Giant before switching to the next process.  Instead, inline most of the
  code from mi_switch() in the mtx_enter_hard() function.  Note that when
  we finally kill Giant we can back this out and go back to calling
  mi_switch().
2000-10-20 07:26:37 +00:00
..
pc Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
_limits.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
alpha_cpu.h Implement inline assembler wrappers for PALcode calls and for alpha 1999-11-29 19:57:51 +00:00
ansi.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
asm.h Fix problems booting large kernels on alphas. The symptom is that the kernel 2000-10-16 20:15:43 +00:00
atomic.h - Expand the set of atomic operations to optionally include memory barriers 2000-10-20 07:00:48 +00:00
bootinfo.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
bus_memio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
bus_pio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
bus.h Axe the barrier_{read,write,rw}() helper functions as this method of 2000-10-20 06:45:48 +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 Move DELAY() from <machine/clock.h> to <sys/systm.h> 2000-10-15 09:51:49 +00:00
clockvar.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
console.h Initiate deorbit burn sequence for <machine/console.h>. 2000-10-08 21:34:00 +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
cpuconf.h - Heavyweight interrupt threads on the alpha for device I/O interrupts. 2000-10-05 23:09:57 +00:00
cpufunc.h Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
db_machdep.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 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
exec.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
float.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
floatingpoint.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
fpu.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
frame.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
globaldata.h Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +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
ieee.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
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 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
intr.h - Heavyweight interrupt threads on the alpha for device I/O interrupts. 2000-10-05 23:09:57 +00:00
intrcnt.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
ioctl_bt848.h Add include files to alpha/include directory. 2000-04-15 08:07:56 +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 Add include files to alpha/include directory. 2000-04-15 08:07:56 +00:00
ipl.h - Heavyweight interrupt threads on the alpha for device I/O interrupts. 2000-10-05 23:09:57 +00:00
limits.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
lock.h Move MAXCPU from machine/smp.h to machine/param.h to fix breakage 2000-09-23 12:18:06 +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 Initiate deorbit burn sequence for <machine/mouse.h>. 2000-10-09 08:08:36 +00:00
mutex.h - Make the mutex code almost completely machine independent. This greatly 2000-10-20 07:26:37 +00:00
pal.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
param.h Implement write combining for crashdumps. This is useful when 2000-10-17 10:05:49 +00:00
pcb.h Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
pcpu.h Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
pmap.h Move MAXCPU from machine/smp.h to machine/param.h to fix breakage 2000-09-23 12:18:06 +00:00
proc.h Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
profile.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
prom.h Alpha 8200: Add prototype from promcnattach. 2000-03-18 08:00:51 +00:00
psl.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
pte.h Zap some latent problems hidden by differences between KERNEL and _KERNEL. 1999-11-22 15:14:56 +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 Remove offensive language. 2000-06-25 09:30:53 +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 Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +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 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
sigframe.h sigset_t change (part 3 of 5) 1999-09-29 15:06:27 +00:00
signal.h Re-introduction of sigcontext. 1999-10-04 19:33:58 +00:00
smp.h Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
stdarg.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
swiz.h * Completely rewrite the alpha busspace to hide the implementation from 2000-08-28 21:48:13 +00:00
sysarch.h The kernel side of per-process unaligned access control (printing, fixing & 2000-01-16 07:07:33 +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
ucontext.h Don't include <machine/frame.h>. 1999-10-08 09:09:13 +00:00
varargs.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
vmparam.h Make sysv-style shared memory tuneable params fully runtime adjustable 2000-03-30 07:17:05 +00:00