freebsd-nq/sys/sparc64/include
Alan Cox 3cad40e517 Add pmap_clear_write() to the interface between the virtual memory
system's machine-dependent and machine-independent layers.  Once
pmap_clear_write() is implemented on all of our supported
architectures, I intend to replace all calls to pmap_page_protect() by
calls to pmap_clear_write().  Why?  Both the use and implementation of
pmap_page_protect() in our virtual memory system has subtle errors,
specifically, the management of execute permission is broken on some
architectures.  The "prot" argument to pmap_page_protect() should
behave differently from the "prot" argument to other pmap functions.
Instead of meaning, "give the specified access rights to all of the
physical page's mappings," it means "don't take away the specified
access rights from all of the physical page's mappings, but do take
away the ones that aren't specified."  However, owing to our i386
legacy, i.e., no support for no-execute rights, all but one invocation
of pmap_page_protect() specifies VM_PROT_READ only, when the intent
is, in fact, to remove only write permission.  Consequently, a
faithful implementation of pmap_page_protect(), e.g., ia64, would
remove execute permission as well as write permission.  On the other
hand, some architectures that support execute permission have
basically ignored whether or not VM_PROT_EXECUTE is passed to
pmap_page_protect(), e.g., amd64 and sparc64.  This change represents
the first step in replacing pmap_page_protect() by the less subtle
pmap_clear_write() that is already implemented on amd64, i386, and
sparc64.

Discussed with: grehan@ and marcel@
2006-07-20 17:48:41 +00:00
..
_bus.h - Complete breaking out the definition of bus_space_{tag,handle}_t by 2006-06-13 19:18:09 +00:00
_inttypes.h
_limits.h Move MINSIGSTKSZ from <machine/signal.h> to <machine/_limits.h> and rename 2005-08-20 16:44:41 +00:00
_stdint.h
_types.h
asi.h Add convenience macros for the bits in ASI_ESTATE_ERROR_EN_REG (used 2006-03-29 00:08:48 +00:00
asm.h
asmacros.h
atomic.h Add a new atomic_fetchadd() primitive that atomically adds a value to a 2005-09-27 17:39:11 +00:00
bus_common.h
bus_dma.h Refactor the bus_dma header files so that the interface is described in 2005-03-14 16:46:28 +00:00
bus_private.h
bus.h - Complete breaking out the definition of bus_space_{tag,handle}_t by 2006-06-13 19:18:09 +00:00
cache.h
ccr.h
clock.h
cpu.h Clean out sysctl machdep.* related defines. 2006-05-11 17:29:25 +00:00
cpufunc.h Add extra constraints to tell the compiler that the memory be modified 2005-07-27 20:01:45 +00:00
db_machdep.h
elf.h style(9) nits 2005-12-07 03:41:12 +00:00
endian.h
exec.h
float.h
floatingpoint.h
fp.h
frame.h Tweak how the MD code calls the fooclock() methods some. Instead of 2005-12-22 22:16:09 +00:00
fsr.h
gdb_machdep.h
idprom.h
ieee.h
ieeefp.h
in_cksum.h - The inline asm in this file uses output operands before all input 2006-01-12 11:40:39 +00:00
instr.h
intr_machdep.h Reorganize the interrupt handling code a bit to make a few things cleaner 2005-10-25 19:48:48 +00:00
iommureg.h
iommuvar.h
kdb.h Eliminate HAVE_STOPPEDPCBS. On ia64 the PCPU holds a pointer to the 2006-04-03 22:51:47 +00:00
kerneldump.h
ktr.h Use <sys/ktr.h> directly in .S files instead of exporting the 2005-12-06 16:38:08 +00:00
limits.h Addendum to netchild's C compiler abstraction mega-patch which somehow 2005-03-04 21:26:07 +00:00
lsu.h
md_var.h
memdev.h
metadata.h
mutex.h
nexusvar.h
ofw_bus.h
ofw_machdep.h
ofw_mem.h
ofw_nexus.h - Move the declaration of struct upa_ranges and the UPA_RANGE_* macros 2005-12-03 19:52:20 +00:00
ofw_upa.h - Move the declaration of struct upa_ranges and the UPA_RANGE_* macros 2005-12-03 19:52:20 +00:00
param.h Drop _MACHINE_ARCH and _MACHINE defines (not to be confused with 2005-12-06 13:27:21 +00:00
pcb.h
pcpu.h - Add a workaround for a bug in BlackBird CPUs (said to be part of the 2005-04-16 14:57:38 +00:00
pmap.h Add pmap_clear_write() to the interface between the virtual memory 2006-07-20 17:48:41 +00:00
pmc_mdep.h MFP4: 2005-06-09 19:45:09 +00:00
proc.h Divorce critical sections from spinlocks. Critical sections as denoted by 2005-04-04 21:53:56 +00:00
profile.h
pstate.h
ptrace.h
reg.h
reloc.h
resource.h
runq.h
sc_machdep.h
setjmp.h
sf_buf.h
sigframe.h
signal.h Move MINSIGSTKSZ from <machine/signal.h> to <machine/_limits.h> and rename 2005-08-20 16:44:41 +00:00
smp.h Add stoppcbs[] arrays on Alpha and sparc64 and have each CPU save its 2005-11-03 21:08:20 +00:00
stdarg.h
sysarch.h
tick.h - Add a workaround for a bug in BlackBird CPUs (said to be part of the 2005-04-16 14:57:38 +00:00
tlb.h
trap.h Correct typos (s/OFERFLOW/OVERFLOW/). 2006-01-16 01:35:25 +00:00
tsb.h
tstate.h
tte.h
ucontext.h
upa.h
utrap.h Correct typos (s/OFERFLOW/OVERFLOW/). 2006-01-16 01:35:25 +00:00
varargs.h
ver.h
vmparam.h
watch.h
wstate.h