opnsense-src/sys/powerpc/include
Alan Cox 3153e878dd Add support to the virtual memory system for configuring machine-
dependent memory attributes:

Rename vm_cache_mode_t to vm_memattr_t.  The new name reflects the
fact that there are machine-dependent memory attributes that have
nothing to do with controlling the cache's behavior.

Introduce vm_object_set_memattr() for setting the default memory
attributes that will be given to an object's pages.

Introduce and use pmap_page_{get,set}_memattr() for getting and
setting a page's machine-dependent memory attributes.  Add full
support for these functions on amd64 and i386 and stubs for them on
the other architectures.  The function pmap_page_set_memattr() is also
responsible for any other machine-dependent aspects of changing a
page's memory attributes, such as flushing the cache or updating the
direct map.  The uses include kmem_alloc_contig(), vm_page_alloc(),
and the device pager:

  kmem_alloc_contig() can now be used to allocate kernel memory with
  non-default memory attributes on amd64 and i386.

  vm_page_alloc() and the device pager will set the memory attributes
  for the real or fictitious page according to the object's default
  memory attributes.

Update the various pmap functions on amd64 and i386 that map pages to
incorporate each page's memory attributes in the mapping.

Notes: (1) Inherent to this design are safety features that prevent
the specification of inconsistent memory attributes by different
mappings on amd64 and i386.  In addition, the device pager provides a
warning when a device driver creates a fictitious page with memory
attributes that are inconsistent with the real page that the
fictitious page is an alias for. (2) Storing the machine-dependent
memory attributes for amd64 and i386 as a dedicated "int" in "struct
md_page" represents a compromise between space efficiency and the ease
of MFCing these changes to RELENG_7.

In collaboration with: jhb

Approved by:	re (kib)
2009-07-12 23:31:20 +00:00
..
_bus.h Redefine bus_space_tag_t on PowerPC from a 32-bit integral to 2007-12-19 18:00:50 +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
altivec.h Add Altivec support for supported CPUs. This is derived from the FPU support 2009-02-20 17:48:40 +00:00
asm.h Align functions to 16-byte boundaries due to profiling granularity. 2008-04-03 17:40:20 +00:00
atomic.h Unbreak previous commit. 2008-11-22 22:15:34 +00:00
bat.h
bootinfo.h Obtain TSEC h/w address from the parent bus (OCP) and not rely blindly on what 2008-03-12 16:32:08 +00:00
bus.h Redefine bus_space_tag_t on PowerPC from a 32-bit integral to 2007-12-19 18:00:50 +00:00
bus_dma.h Refactor the bus_dma header files so that the interface is described in 2005-03-14 16:46:28 +00:00
clock.h The "free-lance" timer in the i8254 is only used for the speaker 2008-03-26 20:09:21 +00:00
cpu.h Declare btext and etext. Needed by sys/kern/subr_prof.c for 2008-10-27 00:26:07 +00:00
cpufunc.h Improve style(9) 2009-05-14 16:56:56 +00:00
db_machdep.h
dbdma.h Expand the DBDMA API to allow setting device-dependent control bits. While 2008-09-27 15:41:16 +00:00
elf.h Add AT_EXECPATH ELF auxinfo entry type. The value's a_ptr is a pointer 2009-03-17 12:50:16 +00:00
endian.h Add support for little-endian compilations to this file. 2008-10-30 03:31:33 +00:00
exec.h
float.h Define LDBL_EPSILON, LDBL_MAX and LDBL_MIN as long double constants. 2008-11-16 19:20:29 +00:00
floatingpoint.h
fpu.h Rename OEA to AIM. The former means nothing as it applies to all 2007-12-16 00:45:56 +00:00
frame.h Make Book-E debug register state part of the PCB context. 2009-02-27 12:08:24 +00:00
gdb_machdep.h Make remote GDB work for AIM processors. For BookE, the kernel 2008-03-17 00:46:52 +00:00
hid.h Centralize setting HID0/1 for E500. Rename HID defines which are specific 2009-04-22 13:11:38 +00:00
ieee.h
ieeefp.h
in_cksum.h
intr.h First round of cleanups. There's a lot of NetBSDism in this header. 2009-04-04 22:03:19 +00:00
intr_machdep.h Add suppport for ISA and ISA interrupts to make the ATA 2009-04-24 03:51:11 +00:00
kdb.h Unify and generalize PowerPC headers, adjust AIM code accordingly. 2008-03-02 17:05:57 +00:00
limits.h
md_var.h PowerPC common SMP startup and time base rework. 2009-05-14 16:48:25 +00:00
memdev.h Remove the unused M_MEMDEV from the kernel. 2008-06-25 07:52:10 +00:00
metadata.h Define the bootinfo structure for FreeBSD. It is not used on 2008-02-23 18:01:45 +00:00
mmuvar.h Initial support for Freescale PowerQUICC III MPC85xx system-on-chip family. 2008-03-03 17:17:00 +00:00
mutex.h Initial support for SMP on PowerPC MPC85xx. 2009-05-21 11:43:37 +00:00
ocpbus.h Initial version of the sec(4) driver for the integrated security engine found 2009-06-06 09:37:55 +00:00
ofw_machdep.h Factor out platform dependent things unrelated to device drivers into a 2009-05-14 00:34:26 +00:00
openpicreg.h Add PIC support for IPIs. When registering an interrupt handler, 2008-02-12 18:14:46 +00:00
openpicvar.h Add support for the BUS_CONFIG_INTR() method to the platform and to 2008-03-07 22:08:43 +00:00
param.h Cleanup ALIGNED_POINTER: 2009-07-05 17:45:48 +00:00
pcb.h Make Book-E debug register state part of the PCB context. 2009-02-27 12:08:24 +00:00
pcpu.h Initial support for SMP on PowerPC MPC85xx. 2009-05-21 11:43:37 +00:00
pio.h Provide 64-bit big endian bus space operations for PowerPC. They are required 2009-06-06 09:33:32 +00:00
platform.h Factor out platform dependent things unrelated to device drivers into a 2009-05-14 00:34:26 +00:00
platformvar.h Factor out platform dependent things unrelated to device drivers into a 2009-05-14 00:34:26 +00:00
pmap.h Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
pmc_mdep.h Add stubs to unbreak LINT. 2007-12-07 13:45:47 +00:00
proc.h Divorce critical sections from spinlocks. Critical sections as denoted by 2005-04-04 21:53:56 +00:00
profile.h Add support for kernel profiling for both AIM and BookE. 2008-10-27 02:36:03 +00:00
psl.h Rework and extend PowerPC headers definitons towards Book-E/e500 CPUs support. 2008-03-03 13:20:52 +00:00
pte.h Remove PTE_FAKE and PTE_ISFAKE(). 2009-04-24 02:55:20 +00:00
ptrace.h
reg.h
reloc.h Remove 3rd clause, renumber, ok per email 2007-01-12 07:26:21 +00:00
resource.h
runq.h
sc_machdep.h
setjmp.h
sf_buf.h Add support for 64-bit PowerPC CPUs operating in the 64-bit bridge mode 2009-04-04 00:22:44 +00:00
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 Factor out platform dependent things unrelated to device drivers into a 2009-05-14 00:34:26 +00:00
spr.h Fix copy/paste typo in last revision. PMC0 control should be shifted 8 2009-06-23 04:02:36 +00:00
sr.h
stack.h Break out stack(9) from ddb(4): 2007-12-02 20:40:35 +00:00
stdarg.h Use __builtin_va_start instead of __builtin_stdarg_start. GCC4 obsoletes 2006-09-21 01:37:02 +00:00
sysarch.h Add sysarch.h. It's included by drm(4). 2009-04-04 22:05:36 +00:00
tlb.h Rework BookE pmap towards multi-core support. 2009-01-13 15:41:58 +00:00
trap.h Rework and extend PowerPC headers definitons towards Book-E/e500 CPUs support. 2008-03-03 13:20:52 +00:00
trap_aim.h Fix a typo in the SRR1 comparison for program exceptions. While here, 2009-04-19 06:30:00 +00:00
trap_booke.h Rework and extend PowerPC headers definitons towards Book-E/e500 CPUs support. 2008-03-03 13:20:52 +00:00
ucontext.h
varargs.h
vm.h Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
vmparam.h Lower VM_MAX_KERNEL_ADDRESS to 0xf8000000. We actually have 2009-04-21 17:08:02 +00:00