aboutsummaryrefslogtreecommitdiff
path: root/sys/alpha/include/pmap.h
Commit message (Collapse)AuthorAgeFilesLines
* First pass at removing Alpha kernel support.John Baldwin2006-05-111-250/+0
| | | | Notes: svn path=/head/; revision=158458
* - Cleanup whitespace and extra ()s in vtophys() macros.John Baldwin2005-12-061-2/+1
| | | | | | | | | | | | | | - Move vtophys() macros next to vtopte() where vtopte() exists to match comments above vtopte(). - Remove references to the alternate address space in the comment above vtopte(). amd64 never had the alternate address space, and i386 lost it prior to PAE support being added. - s/entires/entries/ in comments. Reviewed by: alc Notes: svn path=/head/; revision=153179
* Protect includes for kernel specific use from userland.Bernd Walter2005-09-191-0/+2
| | | | Notes: svn path=/head/; revision=150352
* Relocate direct map specs into struct alpha_chipset.Bernd Walter2005-09-191-3/+10
| | | | | | | | Prepare for PCI Scatter-Gather map. Panic if driver tries alpha_XXX_dmamap() out of range. Notes: svn path=/head/; revision=150323
* Begin all license/copyright comments with /*- or #-Warner Losh2005-01-051-1/+1
| | | | Notes: svn path=/head/; revision=139727
* - Eliminate the pte object from the pmap. Instead, page table pages areAlan Cox2004-07-191-1/+0
| | | | | | | | | | | | | | | | allocated as "no object" pages. Similar changes were made to the amd64 and i386 pmap last year. The primary reason being that maintaining a pte object leads to lock order violations. A secondary reason being that the pte object is redundant, i.e., the page table itself can be used to lookup page table pages. (Historical note: The pte object predates our ability to allocate "no object" pages. Thus, the pte object was a necessary evil.) - Unconditionally check the vm object lock's status in vm_page_remove(). Previously, this assertion could not be made on Alpha due to its use of a pte object. Notes: svn path=/head/; revision=132414
* MFamd64/i386Alan Cox2004-07-051-0/+14
| | | | | | | | | Add partial pmap locking. Tested by: kensmith@ Notes: svn path=/head/; revision=131633
* - Remove unused definitions.Alan Cox2004-06-231-5/+2
| | | | | | | - Move a definition inside the scope of a #ifdef _KERNEL. Notes: svn path=/head/; revision=130965
* Remove avail_end. It is not used.Alan Cox2004-04-111-1/+0
| | | | Notes: svn path=/head/; revision=128101
* - pmap_kenter_temporary() is unused by machine-independent code. Therefore,Alan Cox2004-04-101-0/+1
| | | | | | | | | | | move its declaration to the machine-dependent header file on those machines that use it. In principle, only i386 should have it. Alpha and AMD64 should use their direct virtual-to-physical mapping. - Remove pmap_kenter_temporary() from ia64. It is unused. Approved by: marcel@ Notes: svn path=/head/; revision=128097
* Remove the advertsing clause, per the Regent's letter dated July 22, 1999.Warner Losh2004-04-051-4/+0
| | | | | | | Approved by: core Notes: svn path=/head/; revision=127910
* Remove avail_start on those platforms that no longer use it. (Only amd64Alan Cox2004-04-051-1/+0
| | | | | | | does anything with it beyond simple initialization.) Notes: svn path=/head/; revision=127875
* Remove CADDR1 and CMAP1. They are unused.Alan Cox2004-04-031-2/+0
| | | | Notes: svn path=/head/; revision=127812
* Remove unused declarations. (Some time ago, these variables became fieldsAlan Cox2004-03-071-2/+0
| | | | | | | of vm/vm.h's struct kva_md_info.) Notes: svn path=/head/; revision=126715
* Move pmap_resident_count() from the MD pmap.h to the MI pmap.h.Bruce M Simpson2003-10-061-1/+0
| | | | | | | | | | | Add a definition of pmap_wired_count(). Add a definition of vmspace_wired_count(). Reviewed by: truckman Discussed with: peter Notes: svn path=/head/; revision=120831
* - Kill the pv_flags member of the alpha mdpage since it stop being usedJohn Baldwin2003-04-101-1/+0
| | | | | | | | | in rev 1.61 of pmap.c. - Now that pmap_page_is_free() is empty and since it is just a hack for the Alpha pmap, remove it. Notes: svn path=/head/; revision=113343
* Fix the osf1 abi module on SMP systems by making the size ofAndrew Gallatin2003-03-291-1/+1
| | | | | | | | | | | | | | | | | | | a struct pmap be the same on both SMP and UP kernels. It turns out that the size of a struct pmap is much larger on alpha SMP systems due to the number of pm_asn's being dependant on MAX_CPU. Since modules are supposed to be SMP agnostic, this has the affect of moving around the "interesting bits" of the vmspace (daddr, dsize) that the osf1 module wants to frob. So the module ends up scribbling in a pmap struct, and the user either sees a panic, or an application failure. While here, I've also shrunk MAXCPU to 8 now that it affects the size of pmap structs on UP systesm. This should be plenty, as I'm unware of any hardware we currently run in which supports more than 8 CPUs. Notes: svn path=/head/; revision=112809
* Made the prototypes for pmap_kenter and pmap_kremove MD. These functionsJake Burkholder2003-03-161-0/+2
| | | | | | | | | | | | are machine dependent because they are not required to update the tlb when mappings are added or removed, and doing so is machine dependent. In addition, an implementation may require that pages mapped with pmap_kenter have a backing vm_page_t, which is not necessarily true of all physical pages, and so may choose to pass the vm_page_t to pmap_kenter instead of the physical address in order to make this requirement clear. Notes: svn path=/head/; revision=112312
* MFi386 revision 1.88Alan Cox2003-03-011-6/+0
| | | | | | | Remove some long unused declarations. Notes: svn path=/head/; revision=111697
* o Introduce pmap_page_is_mapped(). Its purpose is to obsoleteAlan Cox2002-08-071-0/+1
| | | | | | | the PG_MAPPED flag. Notes: svn path=/head/; revision=101479
* ptvmmap does not exist on alpha.Peter Wemm2002-08-021-1/+0
| | | | Notes: svn path=/head/; revision=101234
* Tidy up some loose ends.Peter Wemm2002-04-291-3/+2
| | | | | | | | | | | | | | | i386/ia64/alpha - catch up to sparc64/ppc: - replace pmap_kernel() with refs to kernel_pmap - change kernel_pmap pointer to (&kernel_pmap_store) (this is a speedup since ld can set these at compile/link time) all platforms (as suggested by jake): - gc unused pmap_reference - gc unused pmap_destroy - gc unused struct pmap.pm_count (we never used pm_count - we track address space sharing at the vmspace) Notes: svn path=/head/; revision=95710
* Remove __P(). This was tested on the GENERIC kernel.David E. O'Brien2002-03-201-13/+13
| | | | Notes: svn path=/head/; revision=92816
* Fixes for alpha pmap on SMP machines:John Baldwin2002-02-061-2/+7
| | | | | | | | | | | | | | | | | | | | | | | - Create a private list of active pmaps rather than abusing the list of all processes when we need to look up pmaps. The process list needs a sx lock and we can't be getting sx locks in the middle of cpu_switch() (pmap_activate() can call pmap_get_asn() from cpu_switch()). Instead, we protect the list with a spinlock. This also means the list is shorter since a pmap can be used by more than one process and we could (at least in thoery) dink with pmap's more than once, but now we only touch each pmap once when we have to update all of them. - Wrap pmap_activate()'s code to get a new ASN in an explicit critical section so that when it is called while doing an exec() we can't get preempted. - Replace splhigh() in pmap_growkernel() with a critical section to prevent preemption while we are adjusting the kernel page tables. - Fixes abuse of PCPU_GET(), which doesn't return an L-value. - Also adds some slight cleanups to the ASN handling by adding some macros instead of magic numbers in relation to the ASN and ASN generations. Reviewed by: dfr Notes: svn path=/head/; revision=90278
* Add missing prototype for pmap_unmapdev().John Baldwin2002-01-111-0/+1
| | | | Notes: svn path=/head/; revision=89248
* KSE Milestone 2Julian Elischer2001-09-121-2/+4
| | | | | | | | | | | | | | | | | Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process. Sorry john! (your next MFC will be a doosie!) Reviewed by: peter@freebsd.org, dillon@freebsd.org X-MFC after: ha ha ha ha Notes: svn path=/head/; revision=83366
* Simplify the implementation of pmap_emulate_reference(). The new versionDoug Rabson2001-07-241-4/+0
| | | | | | | | | | simply manipulates the pte which faulted instead of traversing the mapping list for that page. This makes it possible to complete the trap without needing locks and incidentally improves the accuracy of some statistics used by the VM system. Notes: svn path=/head/; revision=80250
* Move MAXCPU from machine/smp.h to machine/param.h to fix breakagePaul Saab2000-09-231-1/+1
| | | | | | | | with !SMP kernels. Also, replace NCPUS with MAXCPU since they are redundant. Notes: svn path=/head/; revision=66296
* Major update to the way synchronization is done in the kernel. HighlightsJason Evans2000-09-071-3/+5
| | | | | | | | | | | | | | | | | | include: * Mutual exclusion is used instead of spl*(). See mutex(9). (Note: The alpha port is still in transition and currently uses both.) * Per-CPU idle processes. * Interrupts are run in their own separate kernel threads and can be preempted (i386 only). Partially contributed by: BSDi (BSD/OS) Submissions by (at least): cp, dfr, dillon, grog, jake, jhb, sheldonh Notes: svn path=/head/; revision=65557
* Back out the previous change to the queue(3) interface.Jake Burkholder2000-05-261-4/+4
| | | | | | | | | It was not discussed and should probably not happen. Requested by: msmith and others Notes: svn path=/head/; revision=60938
* Change the way that the queue(3) structures are declared; don't assume thatJake Burkholder2000-05-231-4/+4
| | | | | | | | | | | the type argument to *_HEAD and *_ENTRY is a struct. Suggested by: phk Reviewed by: phk Approved by: mdodd Notes: svn path=/head/; revision=60833
* Implement an optimization of the VM<->pmap API. Pass vm_page_t's directlyPeter Wemm2000-05-211-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to various pmap_*() functions instead of looking up the physical address and passing that. In many cases, the first thing the pmap code was doing was going to a lot of trouble to get back the original vm_page_t, or it's shadow pv_table entry. Inspired by: John Dyson's 1998 patches. Also: Eliminate pv_table as a seperate thing and build it into a machine dependent part of vm_page_t. This eliminates having a seperate set of structions that shadow each other in a 1:1 fashion that we often went to a lot of trouble to translate from one to the other. (see above) This happens to save 4 bytes of physical memory for each page in the system. (8 bytes on the Alpha). Eliminate the use of the phys_avail[] array to determine if a page is managed (ie: it has pv_entries etc). Store this information in a flag. Things like device_pager set it because they create vm_page_t's on the fly that do not have pv_entries. This makes it easier to "unmanage" a page of physical memory (this will be taken advantage of in subsequent commits). Add a function to add a new page to the freelist. This could be used for reclaiming the previously wasted pages left over from preloaded loader(8) files. Reviewed by: dillon Notes: svn path=/head/; revision=60755
* Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"Peter Wemm1999-12-291-6/+6
| | | | | | | | | is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come. Notes: svn path=/head/; revision=55205
* $Id$ -> $FreeBSD$Peter Wemm1999-08-281-1/+1
| | | | Notes: svn path=/head/; revision=50477
* Allow chipset drivers to specify the direct-mapped DMA window's mask inAndrew Gallatin1999-05-261-1/+9
| | | | | | | | | | | | | preparation for tsunami support. Previous chipsets' direct-mapped DMA mask was always 1024*1024*1024. The Tsunami chipset needs it to be 2*1024*1024*1024 These changes should not affect the i386 port Reviewed by: Doug Rabson <dfr@nlsystems.com> Notes: svn path=/head/; revision=47529
* Use address space numbers to reduce TLB flushes.Doug Rabson1998-08-231-1/+4
| | | | Notes: svn path=/head/; revision=38492
* Add initial support for the FreeBSD/alpha kernel. This is very much aDoug Rabson1998-06-101-82/+173
| | | | | | | | | | | | | work in progress and has never booted a real machine. Initial development and testing was done using SimOS (see http://simos.stanford.edu for details). On the SimOS simulator, this port successfully reaches single-user mode and has been tested with loads as high as one copy of /bin/ls :-). Obtained from: partly from NetBSD/alpha Notes: svn path=/head/; revision=36849
* Import NetBSD/Alpha headers needed to get the FreeBSD userland to compileJohn Birrell1998-03-091-0/+140
(and even run). These files don't necessarily make sense for a FreeBSD/Alpha kernel build. That will come later and these files will be changed accordingly. Notes: svn path=/cvs2svn/branches/JB/; revision=34368