version 1.154.2.5, 2007/11/15 11:42:35 |
version 1.154.2.6, 2008/01/21 09:35:37 |
|
|
#include "opt_lockdebug.h" |
#include "opt_lockdebug.h" |
#include "opt_multiprocessor.h" |
#include "opt_multiprocessor.h" |
|
|
#include <sys/types.h> |
|
#include <sys/param.h> |
#include <sys/param.h> |
|
#include <sys/types.h> |
#include <sys/kernel.h> |
#include <sys/kernel.h> |
#include <sys/systm.h> |
#include <sys/systm.h> |
#include <sys/proc.h> |
#include <sys/proc.h> |
|
|
#include <sys/user.h> |
#include <sys/user.h> |
#include <sys/pool.h> |
#include <sys/pool.h> |
#include <sys/cdefs.h> |
#include <sys/cdefs.h> |
|
#include <sys/cpu.h> |
|
|
#include <uvm/uvm.h> |
#include <uvm/uvm.h> |
|
|
Line 303 static paddr_t pmap_kernel_l2ptp_phys; |
|
Line 304 static paddr_t pmap_kernel_l2ptp_phys; |
|
*/ |
*/ |
static pt_entry_t *csrc_pte, *cdst_pte; |
static pt_entry_t *csrc_pte, *cdst_pte; |
static vaddr_t csrcp, cdstp; |
static vaddr_t csrcp, cdstp; |
char *memhook; |
vaddr_t memhook; |
extern void *msgbufaddr; |
extern void *msgbufaddr; |
|
|
/* |
/* |
Line 946 pmap_use_l1(pmap_t pm) |
|
Line 947 pmap_use_l1(pmap_t pm) |
|
* Access to an L1 by the kernel pmap must not affect |
* Access to an L1 by the kernel pmap must not affect |
* the LRU list. |
* the LRU list. |
*/ |
*/ |
if (current_intr_depth || pm == pmap_kernel()) |
if (cpu_intr_p() || pm == pmap_kernel()) |
return; |
return; |
|
|
l1 = pm->pm_l1; |
l1 = pm->pm_l1; |
Line 3963 pmap_bootstrap(pd_entry_t *kernel_l1pt, |
|
Line 3964 pmap_bootstrap(pd_entry_t *kernel_l1pt, |
|
pmap_set_pt_cache_mode(kernel_l1pt, (vaddr_t)csrc_pte); |
pmap_set_pt_cache_mode(kernel_l1pt, (vaddr_t)csrc_pte); |
pmap_alloc_specials(&virtual_avail, 1, &cdstp, &cdst_pte); |
pmap_alloc_specials(&virtual_avail, 1, &cdstp, &cdst_pte); |
pmap_set_pt_cache_mode(kernel_l1pt, (vaddr_t)cdst_pte); |
pmap_set_pt_cache_mode(kernel_l1pt, (vaddr_t)cdst_pte); |
pmap_alloc_specials(&virtual_avail, 1, (void *)&memhook, NULL); |
pmap_alloc_specials(&virtual_avail, 1, &memhook, NULL); |
pmap_alloc_specials(&virtual_avail, round_page(MSGBUFSIZE) / PAGE_SIZE, |
pmap_alloc_specials(&virtual_avail, round_page(MSGBUFSIZE) / PAGE_SIZE, |
(void *)&msgbufaddr, NULL); |
(void *)&msgbufaddr, NULL); |
|
|
Line 4985 pmap_uarea(vaddr_t va) |
|
Line 4986 pmap_uarea(vaddr_t va) |
|
} |
} |
#endif /* ARM_MMU_XSCALE == 1 */ |
#endif /* ARM_MMU_XSCALE == 1 */ |
|
|
|
/* |
|
* return the PA of the current L1 table, for use when handling a crash dump |
|
*/ |
|
uint32_t pmap_kernel_L1_addr() |
|
{ |
|
return pmap_kernel()->pm_l1->l1_physaddr; |
|
} |
|
|
#if defined(DDB) |
#if defined(DDB) |
/* |
/* |
* A couple of ddb-callable functions for dumping pmaps |
* A couple of ddb-callable functions for dumping pmaps |