<vm/pglist.h> -> <uvm/uvm_pglist.h>
<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
<vm/vm_object.h> -> nothing
<vm/vm_pager.h> -> into <uvm/uvm_pager.h>
also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes. Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".
Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
#defines in asm.h to use them, and convert code which needs to use C labels
to use _C_LABEL as well. (I can't see any reason why the label vs. function
differentiation shouldn't be GC'd; i only added uses of _C_LABEL.) This
should help if this port is converted to use ELF, and was checked by
compiling all kernels in arm32/conf (with some driver removals and some
MI header fixups re: common blocks) with an arm-linux ELF toolchain.
emulation of managed pages. This required the following `interesting' changes:
* File system buffers must be entered with an access type of
VM_PROT_READ|VM_PROT_WRITE, so that the pages will be accessible immediately.
Otherwise we would have to teach pagemove() to update the R/M information.
Since they're never eligible for paging, the latter is overkill.
* We must insure that pages allocated before the pmap is completely set up
(that is, pages allocated early by the VM system) are not eligible for R/M
emulation, since the memory needed for this isn't available. We do this by
allocating the pmap's internal memory with uvm_pageboot_alloc(). This also
fixes an absolutely horrible hack where the pmap only worked because page 0
happened to be mapped.
to be mapped.
Also:
* Push the wired page counting into the p->v list maintenance functions. This
avoids code duplication, and fixes some cases where we were confused about
which pages to do it with.
* Fix lots of problems associated with pmap_nightmare() (and rename it to
pmap_vac_me_harder()).
* Since the early pages are no longer considered `managed', just make
pmap_*_pv() panic if !pmap_initialized.
- returned EOPNOTSUPP rather than -1.
- no check for negative offset.
many of these fix potential security problems in these drivers.
XXX XXX XXX
the d_mmap cdev routine should be changed to have a prototype like:
paddr_t (*d_mmap) __P((dev_t, off_t, int));
by someone!
Modify current_spl_level to reflect the temporary change in interrupt
priority level which dispatching.
Don't increment the interrupt stats for every handler in the interrupt chain.
Cleaned up a number of comments.
Define soft interrupt names.
A few miscellaneous tidy ups.
Removed any remnants of soft interrupt dispatching.
Cleaned up a number of comments.
Removed a number of blank lines.
Nuked register keywords.
Made sure code is in sync with interrupt handling for other ARM hardware.
to obtains pv_addr_t structures for the proc0 L1 page table and the proc0
pagetable that maps page tables.
Use the virtual address from the pv_addr_t structure for the proc0 L1 page
table when calling pmap_bootstrap rather than relying on a special mapping
at PAGE_DIRS_BASE.
Modify ofw_construct_proc0_addrspace() for similar changes to
ofw_configmem().
Remove the kernel_pde page table in ofw_construct_proc0_addrspace() as it
it now longer needed.